mirror of
https://github.com/saltbo/zpan.git
synced 2026-10-30 18:31:36 +08:00
fix(downloads): use standard geoip data paths
This commit is contained in:
@@ -18,8 +18,6 @@ dist-lambda-pkg/
|
||||
# Database
|
||||
*.db
|
||||
*.db-journal
|
||||
cmd/data/*.mmdb
|
||||
cmd/data/*.mmdb.gz
|
||||
|
||||
# Editor
|
||||
.idea/
|
||||
|
||||
+4
-2
@@ -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"]
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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")"
|
||||
|
||||
Reference in New Issue
Block a user