mirror of
https://github.com/TautvydasDerzinskas/Thingport.git
synced 2026-10-18 20:59:55 -05:00
79 lines
2.4 KiB
YAML
79 lines
2.4 KiB
YAML
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:
|
|
- thingport_db:/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
|
|
|
|
backend:
|
|
# Pin to a specific build instead of :latest, e.g.:
|
|
# BACKEND_IMAGE=ghcr.io/tautvydasderzinskas/thingport-backend:sha-a8fef7d
|
|
image: ${BACKEND_IMAGE:-ghcr.io/tautvydasderzinskas/thingport-backend:latest}
|
|
restart: unless-stopped
|
|
environment:
|
|
- PUID=${PUID:-1000}
|
|
- PGID=${PGID:-1000}
|
|
- 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:
|
|
- thingport_storage:/app/storage
|
|
networks:
|
|
- app-net
|
|
|
|
# Frontend: nginx serving the app and proxying /api/* to the backend (see frontend/nginx.conf).
|
|
frontend:
|
|
# Pin to a specific build instead of :latest, e.g.:
|
|
# FRONTEND_IMAGE=ghcr.io/tautvydasderzinskas/thingport-frontend:sha-a8fef7d
|
|
image: ${FRONTEND_IMAGE:-ghcr.io/tautvydasderzinskas/thingport-frontend:latest}
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${WEB_PORT:-80}:80"
|
|
depends_on:
|
|
- backend
|
|
networks:
|
|
- app-net
|
|
|
|
volumes:
|
|
thingport_storage:
|
|
thingport_db:
|
|
|
|
networks:
|
|
app-net:
|
|
driver: bridge
|