Production moved from the content project, beside audiobookshelf, immich and Plex, to a project called ipx, where the frontend and directory of the split (#207) will join it. The move changed ipx's network, and sign-in through the tunnel trusts that network's gateway: the new compose file pins the subnet to 192.168.64.0/20 so the gateway stays 192.168.64.1 if the network is remade, and config.toml's trusted_proxies names it instead of 192.168.16.1. Checked by sending a forged Access token from a Docker bridge: it reached the token check and was refused, which only a trusted peer does. The repo's compose file was a copy of production's that nobody else could run. It is now a sample: ipx alone, SQLite, folders beside the file. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
30 lines
1006 B
YAML
30 lines
1006 B
YAML
# A sample: ipx on its own, keeping everything in SQLite. Build the image first
|
|
# (`docker build -t ipx .`), then `docker compose up -d`, and sign in at http://<host>:8099
|
|
# as admin / ipodderx. docs/configuration.md has the rest, Postgres included.
|
|
services:
|
|
ipx:
|
|
image: ipx
|
|
container_name: ipx
|
|
restart: unless-stopped
|
|
environment:
|
|
# Who owns the files it writes. 99:100 is Unraid's nobody:users.
|
|
PUID: "99"
|
|
PGID: "100"
|
|
TZ: "UTC"
|
|
# For Postgres instead of SQLite:
|
|
# IPX_DATABASE_URL: "postgres://ipx:password@db-host:5432/ipx"
|
|
ports:
|
|
- "8099:8099" # web UI
|
|
- "6881:6881/tcp" # BitTorrent peers
|
|
- "6881:6881/udp" # DHT
|
|
volumes:
|
|
- ./config:/config # config.toml, written on first start
|
|
- ./data:/data # state.db
|
|
- ./downloads:/downloads
|
|
healthcheck:
|
|
test: ["CMD", "ipx", "status"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 10s
|