Add a log view, and Docker packaging
The Log button shows the running daemon live: feed scans, downloads, torrents and every HTTP request. It reads a ring buffer filled by a tracing layer rather than tailing a file, so it works under Docker where logs go to stdout. The access-log middleware skips /api/logs, or the panel's poll would log itself forever. Detached torrents could leave a row stuck in 'downloading' across a restart, where nothing would ever revisit it; those are requeued at startup. Dockerfile, entrypoint and compose: 114 MB runtime, config bound to 0.0.0.0 on first run since container loopback is unreachable, drops to PUID:PGID for Unraid, and a healthcheck that goes through the control socket so a wedged worker reads as unhealthy. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AdXho5tTkjFLeUXKbEjKBh
This commit is contained in:
40
docker-entrypoint.sh
Executable file
40
docker-entrypoint.sh
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# A container's loopback is not reachable from outside it, so the default bind of
|
||||
# 127.0.0.1 would leave the UI unreachable. Write a starter config that binds 0.0.0.0
|
||||
# on first run; after that the file is yours and is never rewritten.
|
||||
if [ ! -f "$IPX_CONFIG" ]; then
|
||||
mkdir -p "$(dirname "$IPX_CONFIG")"
|
||||
cat > "$IPX_CONFIG" <<TOML
|
||||
[general]
|
||||
download_dir = "/downloads"
|
||||
schedule = "every 60m"
|
||||
max_total_gb = 0
|
||||
max_age_days = 0
|
||||
|
||||
[torrent]
|
||||
enabled = true
|
||||
port_range = "6881-6889"
|
||||
|
||||
[web]
|
||||
enabled = true
|
||||
bind = "0.0.0.0:8099"
|
||||
token = ""
|
||||
TOML
|
||||
echo "ipx: wrote a starter config to $IPX_CONFIG"
|
||||
fi
|
||||
|
||||
mkdir -p "$IPX_DATA_DIR" /downloads
|
||||
|
||||
# Unraid shares expect 99:100. Running as root would leave root-owned downloads.
|
||||
if [ "$(id -u)" = "0" ] && [ -n "$PUID" ] && [ -n "$PGID" ]; then
|
||||
if ! getent group ipx >/dev/null 2>&1; then addgroup --gid "$PGID" ipx 2>/dev/null || true; fi
|
||||
if ! getent passwd ipx >/dev/null 2>&1; then
|
||||
adduser --uid "$PUID" --gid "$PGID" --disabled-password --gecos "" ipx 2>/dev/null || true
|
||||
fi
|
||||
chown -R "$PUID:$PGID" "$IPX_DATA_DIR" "$(dirname "$IPX_CONFIG")" 2>/dev/null || true
|
||||
exec gosu "$PUID:$PGID" "$@"
|
||||
fi
|
||||
|
||||
exec "$@"
|
||||
Reference in New Issue
Block a user