services: db: image: postgres:16-alpine container_name: koillection-db hostname: koillection-db restart: unless-stopped expose: - 5432 volumes: - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/koillection/database:/var/lib/postgresql/data environment: - POSTGRES_DB=${DB_NAME:-koillection} - POSTGRES_USER=${DB_USER:-koillection} - POSTGRES_PASSWORD=${DB_PASSWORD:-koillection} #networks: # - proxy koillection: image: koillection/koillection:latest container_name: koillection hostname: koillection depends_on: - db restart: unless-stopped ports: - 8888:80/tcp expose: - 80 environment: - APP_DEBUG=${APP_DEBUG:-0} - APP_ENV=${APP_ENV:-prod} - HTTPS_ENABLED=${HTTPS_ENABLED:-0} - UPLOAD_MAX_FILESIZE=${UPLOAD_MAX_FILESIZE:-20M} - PHP_MEMORY_LIMIT=${PHP_MEMORY_LIMIT:-512M} - PHP_TZ=${PHP_TZ:-Europe/Berlin} - CORS_ALLOW_ORIGIN='^https?://(localhost|127\.0\.0\.1)(:[0-9]+)?$' - JWT_SECRET_KEY=%kernel.project_dir%/config/jwt/private.pem - JWT_PUBLIC_KEY=%kernel.project_dir%/config/jwt/public.pem - DB_DRIVER=${DB_DRIVER:-pdo_pgsql} - DB_HOST=${DB_HOST:-db} - DB_NAME=${DB_NAME:-koillection} - DB_USER=${DB_USER:-koillection} - DB_PASSWORD=${DB_PASSWORD:-koillection} - DB_PORT=${DB_PORT:-5432} - DB_VERSION=${DB_VERSION:-16} volumes: - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/koillection/uploads:/uploads #networks: # - proxy #labels: # - traefik.enable=true # - traefik.docker.network=proxy # - traefik.http.routers.koillection.rule=Host(`collection.example.com`) # - traefik.http.services.koillection.loadbalancer.server.port=80 # # Optional part for file upload max sizes # - traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=50000000 # - traefik.http.middlewares.limit.buffering.maxResponseBodyBytes=50000000 # - traefik.http.middlewares.limit.buffering.memRequestBodyBytes=50000000 # - traefik.http.middlewares.limit.buffering.memResponseBodyBytes=50000000 # # Optional part for traefik middlewares # - traefik.http.routers.koillection.middlewares=local-ipwhitelist@file,authelia@docker #networks: # proxy: # external: true