Added the data dir
This commit is contained in:
+1
-1
@@ -37,9 +37,9 @@ COPY --from=backend /build/shanty-dl/scripts/cookie_manager.py /usr/share/shanty
|
|||||||
RUN mkdir -p /config /data /music
|
RUN mkdir -p /config /data /music
|
||||||
|
|
||||||
ENV SHANTY_CONFIG=/config/config.yaml
|
ENV SHANTY_CONFIG=/config/config.yaml
|
||||||
|
ENV SHANTY_DATA_DIR=/data
|
||||||
ENV SHANTY_DATABASE_URL=sqlite:///data/shanty.db?mode=rwc
|
ENV SHANTY_DATABASE_URL=sqlite:///data/shanty.db?mode=rwc
|
||||||
ENV SHANTY_LIBRARY_PATH=/music
|
ENV SHANTY_LIBRARY_PATH=/music
|
||||||
ENV SHANTY_DOWNLOAD_PATH=/data/downloads
|
|
||||||
|
|
||||||
EXPOSE 8085 6080
|
EXPOSE 8085 6080
|
||||||
|
|
||||||
|
|||||||
+12
-13
@@ -284,18 +284,13 @@ fn default_library_path() -> PathBuf {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn default_database_url() -> String {
|
fn default_database_url() -> String {
|
||||||
let data_dir = dirs::data_dir()
|
let dd = data_dir();
|
||||||
.unwrap_or_else(|| PathBuf::from("."))
|
std::fs::create_dir_all(&dd).ok();
|
||||||
.join("shanty");
|
format!("sqlite://{}?mode=rwc", dd.join("shanty.db").display())
|
||||||
std::fs::create_dir_all(&data_dir).ok();
|
|
||||||
format!("sqlite://{}?mode=rwc", data_dir.join("shanty.db").display())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_download_path() -> PathBuf {
|
fn default_download_path() -> PathBuf {
|
||||||
let dir = dirs::data_dir()
|
let dir = data_dir().join("downloads");
|
||||||
.unwrap_or_else(|| PathBuf::from("."))
|
|
||||||
.join("shanty")
|
|
||||||
.join("downloads");
|
|
||||||
std::fs::create_dir_all(&dir).ok();
|
std::fs::create_dir_all(&dir).ok();
|
||||||
dir
|
dir
|
||||||
}
|
}
|
||||||
@@ -359,12 +354,19 @@ fn default_vnc_port() -> u16 {
|
|||||||
6080
|
6080
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Return the application data directory (e.g. ~/.local/share/shanty).
|
/// Return the application data directory.
|
||||||
|
///
|
||||||
|
/// Uses `SHANTY_DATA_DIR` env var if set, otherwise `~/.local/share/shanty`.
|
||||||
|
/// In Docker, set `SHANTY_DATA_DIR=/data` so all data goes to the persistent volume.
|
||||||
pub fn data_dir() -> PathBuf {
|
pub fn data_dir() -> PathBuf {
|
||||||
|
if let Ok(v) = std::env::var("SHANTY_DATA_DIR") {
|
||||||
|
PathBuf::from(v)
|
||||||
|
} else {
|
||||||
dirs::data_dir()
|
dirs::data_dir()
|
||||||
.unwrap_or_else(|| PathBuf::from("."))
|
.unwrap_or_else(|| PathBuf::from("."))
|
||||||
.join("shanty")
|
.join("shanty")
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// --- Loading and Saving ---
|
// --- Loading and Saving ---
|
||||||
|
|
||||||
@@ -430,9 +432,6 @@ impl AppConfig {
|
|||||||
if let Ok(v) = std::env::var("SHANTY_LIBRARY_PATH") {
|
if let Ok(v) = std::env::var("SHANTY_LIBRARY_PATH") {
|
||||||
config.library_path = PathBuf::from(v);
|
config.library_path = PathBuf::from(v);
|
||||||
}
|
}
|
||||||
if let Ok(v) = std::env::var("SHANTY_DOWNLOAD_PATH") {
|
|
||||||
config.download_path = PathBuf::from(v);
|
|
||||||
}
|
|
||||||
if let Ok(v) = std::env::var("SHANTY_WEB_PORT")
|
if let Ok(v) = std::env::var("SHANTY_WEB_PORT")
|
||||||
&& let Ok(port) = v.parse()
|
&& let Ok(port) = v.parse()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user