travstats-db
travstats-db
OfficialDocker app from Abrechen2's Repository
Overview
PostgreSQL 15 with the PostGIS 3.4 spatial extension — the database TravStats expects.
This template is pre-filled with the container name travstats-db and the database/user pair flights/flights so the default DATABASE_URL in the TravStats template matches without further editing. Change the password to a strong value (e.g. openssl rand -base64 32) and reuse it in TravStats.
Install order: this container first, then the TravStats template. The database is published on the Unraid host at port 5432 (adjustable below) so TravStats can reach it via host.docker.internal:5432 without needing a shared Docker network. Keep the port free of conflicts with other PostgreSQL containers you may already run.
Storage: the default Application Data path (/mnt/user/appdata/travstats-db) maps to PostgreSQL's data directory. The actual cluster lives in a pgdata/ subdirectory (see the PGDATA variable below) — this is the officially recommended layout from the postgres Docker image and avoids a well-known Unraid permission issue where chown from inside the container can't reach the FUSE-backed share root.
The initial cluster is created on first start and then kept in place on updates; deleting the pgdata/ subdirectory wipes the database, so point your backup tool at this folder.
Why PostGIS, not plain Postgres? TravStats uses PostGIS for airport and route geometry. Plain postgres:15 fails the first TravStats migration.
Troubleshooting — "FATAL: could not open file global/pg_filenode.map: Permission denied"
If you see this error in the container log and TravStats shows "Error querying the database" on its setup page, your pgdata/ directory was created under the wrong UID by a previous (broken) install. Fix:
- Stop both containers (
TravStats,travstats-db). - On the Unraid console:
rm -rf /mnt/user/appdata/travstats-db/pgdata(or whichever Application Data path you chose). - Start
travstats-db— it now re-runsinitdbwith the correct UID (999, the Postgres user inside the image). - Start
TravStats— setup page should load without errors.
If the fresh start still fails on /mnt/user/..., switch the Application Data path to /mnt/cache/appdata/travstats-db (direct cache-pool mount, bypasses Unraid's FUSE layer) and repeat step 3. Requires a cache pool to be configured.
Requirements
Runtime arguments
- Network
bridge- Shell
sh- Privileged
- false
- Extra Params
--restart=unless-stopped
Template configuration
Parent directory for the PostgreSQL data. The actual cluster is created as a `pgdata/` subfolder here (see PGDATA). One persistent mount, survives container updates. Back this path up with your regular appdata backup.
- Target
- /var/lib/postgresql/data
- Default
- /mnt/user/appdata/travstats-db
- Value
- /mnt/user/appdata/travstats-db
Actual PostgreSQL data subdirectory inside the Application Data mount. Using a subfolder (instead of the bind-mount root) is the official postgres-image recommendation and avoids a common Unraid FUSE permission issue. Do not change unless you know what you're doing.
- Default
- /var/lib/postgresql/data/pgdata
- Value
- /var/lib/postgresql/data/pgdata
Database name. TravStats default expects 'flights'.
- Default
- flights
- Value
- flights
Database user. TravStats default expects 'flights'.
- Default
- flights
- Value
- flights
Database password. Generate a strong one with `openssl rand -base64 32`, then paste the same value into the TravStats DATABASE_URL field.
- Default
- CHANGEME
- Value
- CHANGEME
Port on the Unraid host that PostgreSQL listens on. TravStats connects through host.docker.internal:this port. Change only if 5432 is already in use by another Postgres.
- Target
- 5432
- Default
- 5432
- Value
- 5432
Container timezone. Keep UTC.
- Default
- UTC
- Value
- UTC
Categories
Download Statistics
Details
postgis/postgis:15-3.4Run travstats-db on Unraid.
travstats-db is listed in Community Apps for Unraid OS. Explore Unraid to build a flexible home server, NAS, or homelab.