# filezilla Web-based FileZilla (`jlesage/filezilla` — VNC-in-the-browser wrapper around the desktop client) used to move files in and out of the ESH NAS shares. Reachable at `http://10.0.50.154:5800`. **Deploys to:** - **vm-esh-nas** (10.0.50.154) — the only host that bind-mounts the ESH NAS shares directly, which is the whole point of running it here. ## Why this host The four `/mnt/{share,music,books,media}` bind mounts are hard NFS mounts from the Debian NAS at `10.0.50.50`. `vm-esh-nas` is the NAS-adjacent Docker host that carries them, so FileZilla sees the shares as local paths under `/NAS/` inside the container. Running it anywhere else would mean nested remote hops. ## Mounts | host path | container path | notes | |---|---|---| | `/home/user` | `/storage` | local scratch/landing dir | | `/docker/appdata/filezilla` | `/config` | app state — site manager, layout, locale | | `/mnt/share` | `/NAS/share` | NFS from 10.0.50.50 | | `/mnt/music` | `/NAS/music` | NFS from 10.0.50.50 (currently empty) | | `/mnt/books` | `/NAS/books` | NFS from 10.0.50.50 | | `/mnt/media` | `/NAS/media` | NFS from 10.0.50.50 | `PUID`/`PGID` are `2000` — match the ownership on the NAS exports, not the host's `lkraven` uid. ## Deploy ```bash scripts/deploy-stack.sh vm-esh-nas filezilla --compose ssh lkraven@10.0.50.154 'cd /opt/docker/compose/filezilla && docker compose config && docker compose up -d' ``` Verify: ```bash ssh lkraven@10.0.50.154 'curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:5800/' # expect 200 ssh lkraven@10.0.50.154 'docker exec filezilla ls -1 /NAS' # expect books media music share ``` ## Gotchas - **Confirm the NFS mounts before `up -d`.** Docker silently fabricates an empty directory for a missing bind source, so a container that starts fine can present four empty `/NAS/*` dirs if `10.0.50.50` is unreachable. Check `findmnt -t nfs,nfs4` on the host first. - **`restart: unless-stopped` is load-bearing.** The container originally shipped with no restart policy and silently stayed down for four days after the 2026-08-18 host reboot while every other container on the box came back. - **App state lives in `/docker/appdata/filezilla`, not a named volume** — recreating the container preserves site-manager entries, but wiping that path loses them.