fix(downloads): use standard geoip data paths

This commit is contained in:
saltbo
2026-06-06 09:52:07 -04:00
parent 12604529b1
commit bc3ef9f512
4 changed files with 17 additions and 9 deletions
-2
View File
@@ -18,8 +18,6 @@ dist-lambda-pkg/
# Database
*.db
*.db-journal
cmd/data/*.mmdb
cmd/data/*.mmdb.gz
# Editor
.idea/
+4 -2
View File
@@ -40,11 +40,12 @@ RUN apt-get update \
&& addgroup --system zpan \
&& adduser --system --ingroup zpan --home /home/zpan zpan
COPY --from=cli-builder /out/zpan /usr/local/bin/zpan
COPY --from=geoip-db /out/geoip.mmdb /usr/share/zpan/geoip.mmdb
COPY --from=geoip-db /out/geoip.mmdb /usr/local/share/zpan/geoip.mmdb
RUN mkdir -p /home/zpan/.config/zpan /home/zpan/.local/state/zpan/downloader /downloads \
&& chown -R zpan:zpan /home/zpan /downloads
USER zpan
ENV HOME=/home/zpan
ENV ZPAN_DOWNLOADER_GEOIP_DB=/usr/local/share/zpan/geoip.mmdb
WORKDIR /downloads
ENTRYPOINT ["zpan"]
CMD ["downloader", "up"]
@@ -65,7 +66,7 @@ COPY --from=builder /app/package.json ./package.json
COPY --from=builder /app/migrations ./migrations
COPY --from=builder /app/scripts/docker-entrypoint.sh /app/scripts/docker-entrypoint.sh
COPY --from=cli-builder /out/zpan /usr/local/bin/zpan
COPY --from=geoip-db /out/geoip.mmdb /usr/share/zpan/geoip.mmdb
COPY --from=geoip-db /out/geoip.mmdb /usr/local/share/zpan/geoip.mmdb
RUN mkdir -p /data /home/zpan/.config/zpan /home/zpan/.local/state/zpan/downloader \
&& chown -R zpan:zpan /data /home/zpan
@@ -75,6 +76,7 @@ USER zpan
ENV NODE_ENV=production
ENV HOME=/home/zpan
ENV PORT=8222
ENV ZPAN_DOWNLOADER_GEOIP_DB=/usr/local/share/zpan/geoip.mmdb
EXPOSE 8222
ENTRYPOINT ["/app/scripts/docker-entrypoint.sh"]
+11 -4
View File
@@ -39,7 +39,6 @@ const (
DefaultServerURL = "http://localhost:5173"
DefaultAria2URL = "ws://127.0.0.1:6800/jsonrpc"
DefaultQBittorrentURL = "http://127.0.0.1:8080"
DefaultGeoIPDBPath = "/usr/share/zpan/geoip.mmdb"
)
func Defaults(v *viper.Viper) {
@@ -49,7 +48,7 @@ func Defaults(v *viper.Viper) {
v.SetDefault("downloader.engine", "auto")
v.SetDefault("downloader.download_dir", filepath.Join(home, "Downloads", "zpan"))
v.SetDefault("downloader.state_dir", defaultStateDir(home))
v.SetDefault("downloader.geoip_db", DefaultGeoIPDBPath)
v.SetDefault("downloader.geoip_db", defaultGeoIPDBPath(home))
v.SetDefault("downloader.poll_interval", "5s")
v.SetDefault("downloader.max_concurrent_tasks", 2)
v.SetDefault("downloader.aria2.url", DefaultAria2URL)
@@ -147,7 +146,7 @@ func WriteDefaultConfig(path string, serverURL string) error {
Engine: "auto",
DownloadDir: filepath.Join(home, "Downloads", "zpan"),
StateDir: defaultStateDir(home),
GeoIPDBPath: DefaultGeoIPDBPath,
GeoIPDBPath: defaultGeoIPDBPath(home),
PollInterval: 5 * time.Second,
MaxConcurrentTasks: 2,
SeedEnabled: true,
@@ -200,7 +199,8 @@ func configYAML(cfg Config, includeRuntimeHints bool) string {
fmt.Fprintf(&b, " engine: %s\n", yamlString(nonEmpty(cfg.Engine, "auto")))
fmt.Fprintf(&b, " download_dir: %s\n", yamlString(cfg.DownloadDir))
fmt.Fprintf(&b, " state_dir: %s\n", yamlString(cfg.StateDir))
fmt.Fprintf(&b, " geoip_db: %s\n", yamlString(nonEmpty(cfg.GeoIPDBPath, DefaultGeoIPDBPath)))
home, _ := os.UserHomeDir()
fmt.Fprintf(&b, " geoip_db: %s\n", yamlString(nonEmpty(cfg.GeoIPDBPath, defaultGeoIPDBPath(home))))
fmt.Fprintf(&b, " poll_interval: %s\n", yamlString(formatDuration(cfg.PollInterval, "5s")))
fmt.Fprintf(&b, " max_concurrent_tasks: %d\n", cfg.MaxConcurrentTasks)
b.WriteString(" seed:\n")
@@ -262,6 +262,13 @@ func nonEmpty(value string, fallback string) string {
return value
}
func defaultGeoIPDBPath(home string) string {
if dataHome := os.Getenv("XDG_DATA_HOME"); dataHome != "" {
return filepath.Join(dataHome, "zpan", "geoip.mmdb")
}
return filepath.Join(home, ".local", "share", "zpan", "geoip.mmdb")
}
func formatSeedCacheLimit(value int64) string {
if value == 10_000_000_000 {
return "10GB"
+2 -1
View File
@@ -3,7 +3,8 @@ set -eu
year_month="${GEOIP_DB_MONTH:-$(date -u +%Y-%m)}"
url="${GEOIP_DB_URL:-https://download.db-ip.com/free/dbip-city-lite-${year_month}.mmdb.gz}"
out="${GEOIP_DB_PATH:-cmd/data/geoip.mmdb}"
data_home="${XDG_DATA_HOME:-$HOME/.local/share}"
out="${GEOIP_DB_PATH:-${data_home}/zpan/geoip.mmdb}"
tmp="${out}.gz"
mkdir -p "$(dirname "$out")"