# Paste into TrueNAS: Apps → Custom App → Install via Docker Compose # # BEFORE deploy: # 1. npm run prod:docker:publish on dev PC (image must exist in Gitea) # 2. Replace YOUR_POSTGRES_PASSWORD below # 3. Gitea pull credentials on TrueNAS (read:package token) # 4. mkdir + chown image dir; npm run devtoprod:images # 5. Keenetic: gallery.mysuperlab.netcraze.pro → 192.168.10.122:5173, protocol http # # See infra/docker/DEPLOY-truenas.md and Documentation/environments.md services: web: image: gitea.mysuperlab.netcraze.pro/danilka/gallery-web:latest container_name: gallery-web restart: unless-stopped pull_policy: always ports: - "5173:5173" environment: NODE_ENV: production PORT: "5173" HOST: "0.0.0.0" DB_HOST: "192.168.10.122" DB_PORT: "5432" DB_USER: gallery DB_PASSWORD: gallery DB_NAME: gallery_prod PUBLIC_URL: https://gallery.mysuperlab.netcraze.pro TRUST_PROXY: "true" IMAGE_DIR: /app/data/images SESSION_SECRET: "REPLACE_WITH_LONG_RANDOM_SECRET" SESSION_COOKIE_SECURE: "true" CURATOR_USERNAME: curator CURATOR_PASSWORD: "REPLACE_WITH_SECURE_PASSWORD" volumes: - /mnt/BasePool/Applications/Gallery/data/images:/app/data/images extra_hosts: - "host.docker.internal:host-gateway"