mirror of
https://github.com/TautvydasDerzinskas/Thingport.git
synced 2026-10-18 20:59:55 -05:00
98 lines
3.6 KiB
YAML
98 lines
3.6 KiB
YAML
# Thingport for Unraid
|
|
#
|
|
# Unraid has no Compose support of its own: install the "Compose Manager" (or "Compose
|
|
# Manager Plus") plugin from Community Applications first, then:
|
|
# 1. Docker tab -> Compose -> Add New Stack -> name it "thingport"
|
|
# 2. Paste this file as the stack's docker-compose.yml
|
|
# 3. Copy .env.example (next to this file) to the stack's .env and fill in the
|
|
# required values (AUTH_SECRET, POSTGRES_PASSWORD)
|
|
# 4. Compose Up
|
|
#
|
|
# See docs/install/unraid/README.md in the Thingport repo for the full walkthrough.
|
|
#
|
|
# This mirrors the project's root docker-compose.yml, adapted for Unraid conventions:
|
|
# appdata paths under /mnt/user/appdata, and net.unraid.docker.* labels so the frontend
|
|
# and backend containers get Thingport's icon and a WebUI button in the Docker tab.
|
|
|
|
services:
|
|
db:
|
|
image: postgres:16-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
- POSTGRES_USER=${POSTGRES_USER:-thingport}
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-thingport}
|
|
- POSTGRES_DB=${POSTGRES_DB:-thingport}
|
|
volumes:
|
|
- /mnt/user/appdata/thingport/postgres:/var/lib/postgresql/data
|
|
networks:
|
|
- app-net
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-thingport}"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
flaresolverr:
|
|
image: ghcr.io/flaresolverr/flaresolverr:latest
|
|
restart: unless-stopped
|
|
environment:
|
|
- LOG_LEVEL=${FLARESOLVERR_LOG_LEVEL:-info}
|
|
- TZ=${TZ:-UTC}
|
|
networks:
|
|
- app-net
|
|
|
|
# Container must stay named "backend" -- the frontend's nginx.conf proxies /api/* to
|
|
# http://backend:8000 by container/service name, not by an env var.
|
|
backend:
|
|
image: ghcr.io/tautvydasderzinskas/thingport-backend:latest
|
|
container_name: backend
|
|
restart: unless-stopped
|
|
environment:
|
|
# Unraid's conventional "nobody:users" ids -- change if your appdata share uses different ownership
|
|
- PUID=${PUID:-99}
|
|
- PGID=${PGID:-100}
|
|
- AUTH_SECRET=${AUTH_SECRET:-changeme-secret}
|
|
- AUTH_TOKEN_TTL=${AUTH_TOKEN_TTL:-43200}
|
|
- PUBLIC_URL=${PUBLIC_URL:-}
|
|
- SMTP_HOST=${SMTP_HOST:-}
|
|
- SMTP_PORT=${SMTP_PORT:-587}
|
|
- SMTP_SECURE=${SMTP_SECURE:-false}
|
|
- SMTP_USER=${SMTP_USER:-}
|
|
- SMTP_PASS=${SMTP_PASS:-}
|
|
- SMTP_FROM=${SMTP_FROM:-Thingport <no-reply@localhost>}
|
|
- FILE_STORAGE=/app/storage
|
|
- DATABASE_URL=postgresql://${POSTGRES_USER:-thingport}:${POSTGRES_PASSWORD:-thingport}@db:5432/${POSTGRES_DB:-thingport}?schema=public
|
|
- CORS_ORIGINS=${CORS_ORIGINS:-}
|
|
- FLARESOLVERR_URL=${FLARESOLVERR_URL:-http://flaresolverr:8191/v1}
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
flaresolverr:
|
|
condition: service_started
|
|
volumes:
|
|
- /mnt/user/appdata/thingport/storage:/app/storage
|
|
# Optional consume folder: files and folders dropped in it are imported automatically
|
|
# (Administration -> Storage -> Consume Folder). Uncomment and point it at a host folder.
|
|
# - /mnt/user/appdata/thingport/consume:/app/consume
|
|
networks:
|
|
- app-net
|
|
labels:
|
|
- net.unraid.docker.icon=https://raw.githubusercontent.com/TautvydasDerzinskas/Thingport/main/docs/install/unraid/icon.png
|
|
|
|
frontend:
|
|
image: ghcr.io/tautvydasderzinskas/thingport-frontend:latest
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${WEB_PORT:-80}:80"
|
|
depends_on:
|
|
- backend
|
|
networks:
|
|
- app-net
|
|
labels:
|
|
- net.unraid.docker.icon=https://raw.githubusercontent.com/TautvydasDerzinskas/Thingport/main/docs/install/unraid/icon.png
|
|
- net.unraid.docker.webui=http://[IP]:[PORT:80]/
|
|
|
|
networks:
|
|
app-net:
|
|
driver: bridge
|