app-store/apps/librephotos/docker-compose.yml

111 lines
3.8 KiB
YAML

version: "3.7"
services:
librephotos:
image: reallibrephotos/librephotos-proxy:2023w48
container_name: librephotos
restart: unless-stopped
volumes:
- ${APP_DATA_DIR}/data/scan:/data
- ${APP_DATA_DIR}/data/protected_media:/protected_media
- ${APP_DATA_DIR}/data/proxy/nginx.conf:/etc/nginx/nginx.conf:ro
ports:
- ${APP_PORT}:80
depends_on:
- librephotos-backend
- librephotos-frontend
networks:
- tipi_main_network
labels:
# Main
traefik.enable: true
traefik.http.middlewares.librephotos-web-redirect.redirectscheme.scheme: https
traefik.http.services.librephotos.loadbalancer.server.port: 80
# Web
traefik.http.routers.librephotos-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.librephotos-insecure.entrypoints: web
traefik.http.routers.librephotos-insecure.service: librephotos
traefik.http.routers.librephotos-insecure.middlewares: librephotos-web-redirect
# Websecure
traefik.http.routers.librephotos.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.librephotos.entrypoints: websecure
traefik.http.routers.librephotos.service: librephotos
traefik.http.routers.librephotos.tls.certresolver: myresolver
# Local domain
traefik.http.routers.librephotos-local-insecure.rule: Host(`librephotos.${LOCAL_DOMAIN}`)
traefik.http.routers.librephotos-local-insecure.entrypoints: web
traefik.http.routers.librephotos-local-insecure.service: librephotos
traefik.http.routers.librephotos-local-insecure.middlewares: librephotos-web-redirect
# Local domain secure
traefik.http.routers.librephotos-local.rule: Host(`librephotos.${LOCAL_DOMAIN}`)
traefik.http.routers.librephotos-local.entrypoints: websecure
traefik.http.routers.librephotos-local.service: librephotos
traefik.http.routers.librephotos-local.tls: true
librephotos-db:
image: postgres:14
container_name: librephotos-db
restart: unless-stopped
environment:
POSTGRES_PASSWORD: ${LIBREPHOTOS_DB_PASSWORD}
POSTGRES_USER: tipi
POSTGRES_DB: librephotos
volumes:
- ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data
#Checking health of Postgres db
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
interval: 5s
timeout: 5s
retries: 5
networks:
- tipi_main_network
librephotos-frontend:
image: reallibrephotos/librephotos-frontend:2023w48
container_name: librephotos-frontend
restart: unless-stopped
depends_on:
- librephotos-backend
networks:
- tipi_main_network
librephotos-backend:
image: reallibrephotos/librephotos:2023w48
container_name: librephotos-backend
restart: unless-stopped
volumes:
- ${APP_DATA_DIR}/data/scan:/data
- ${APP_DATA_DIR}/data/protected_media:/protected_media
- ${APP_DATA_DIR}/data/logs:/logs
- ${APP_DATA_DIR}/data/cache:/root/.cache
environment:
- SECRET_KEY=${LIBREPHOTOS_SECRET_KEY}
- BACKEND_HOST=librephotos-backend
- ADMIN_EMAIL=${LIBREPHOTOS_EMAIL}
- ADMIN_USERNAME=${LIBREPHOTOS_USERNAME}
- ADMIN_PASSWORD=${LIBREPHOTOS_PASSWORD}
- DB_BACKEND=postgresql
- DB_NAME=librephotos
- DB_USER=tipi
- DB_PASS=${LIBREPHOTOS_DB_PASSWORD}
- DB_HOST=librephotos-db
- DB_PORT=5432
- REDIS_HOST=librephotos-redis
- REDIS_PORT=6379
- ALLOW_UPLOAD=true
- DEBUG=0
- CSRF_TRUSTED_ORIGINS=${APP_PROTOCOL:-http}://${APP_DOMAIN},http://${INTERNAL_IP}:${APP_PORT}
# Wait for Postgres
depends_on:
librephotos-db:
condition: service_healthy
networks:
- tipi_main_network
librephotos-redis:
image: redis:6
container_name: librephotos-redis
restart: unless-stopped
networks:
- tipi_main_network