Ctrl K
ComunidadGuías…

docker-compose.yml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
version: "3.8"

services:
  attic:
    image: ghcr.io/lmmendes/attic:latest
    # Start the entrypoint as root so it can apply optional PUID/PGID ownership;
    # the entrypoint drops privileges before starting attic.
    user: "0:0"
    ports:
      - "8080:8080"
    environment:
      - ATTIC_PORT=8080
      - ATTIC_DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?sslmode=disable
      - ATTIC_S3_ENDPOINT=${ATTIC_S3_ENDPOINT}
      - ATTIC_S3_BUCKET=${ATTIC_S3_BUCKET}
      - ATTIC_S3_REGION=${ATTIC_S3_REGION}
      - ATTIC_S3_ACCESS_KEY=${ATTIC_S3_ACCESS_KEY}
      - ATTIC_S3_SECRET_KEY=${ATTIC_S3_SECRET_KEY}
      - ATTIC_LOCAL_STORAGE_PATH=${ATTIC_LOCAL_STORAGE_PATH:-/data/uploads}
      - ATTIC_PUID=${ATTIC_PUID:-}
      - ATTIC_PGID=${ATTIC_PGID:-}
      - ATTIC_OIDC_ENABLED=${ATTIC_OIDC_ENABLED:-false}
      - ATTIC_OIDC_AUTO_REDIRECT=${ATTIC_OIDC_AUTO_REDIRECT:-false}
      - ATTIC_OIDC_ISSUER_URL=${ATTIC_OIDC_ISSUER_URL}
      - ATTIC_OIDC_CLIENT_ID=${ATTIC_OIDC_CLIENT_ID}
      - ATTIC_OIDC_CLIENT_SECRET=${ATTIC_OIDC_CLIENT_SECRET:-}
      - ATTIC_AUTH_DISABLED=${ATTIC_AUTH_DISABLED:-false}
      - ATTIC_AUTH_DISABLED_USER_EMAIL=${ATTIC_AUTH_DISABLED_USER_EMAIL:-admin}
      - ATTIC_BASE_URL=${ATTIC_BASE_URL:-http://localhost:8080}
      - ATTIC_SESSION_SECRET=${ATTIC_SESSION_SECRET}
      - ATTIC_CORS_ORIGINS=${ATTIC_CORS_ORIGINS:-http://localhost:8080}
      - ATTIC_GOOGLE_BOOKS_API_KEY=${ATTIC_GOOGLE_BOOKS_API_KEY:-}
      - ATTIC_TMDB_API_KEY=${ATTIC_TMDB_API_KEY:-}
      - ATTIC_REBRICKABLE_API_KEY=${ATTIC_REBRICKABLE_API_KEY:-}
      - ATTIC_BGG_API_KEY=${ATTIC_BGG_API_KEY:-}
      - ATTIC_IGDB_CLIENT_ID=${ATTIC_IGDB_CLIENT_ID:-}
      - ATTIC_IGDB_CLIENT_SECRET=${ATTIC_IGDB_CLIENT_SECRET:-}
    volumes:
      - attic_uploads:/data/uploads
    depends_on:
      postgres:
        condition: service_healthy
    restart: unless-stopped
    networks:
      - attic-network

  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: ${POSTGRES_USER:-attic}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: ${POSTGRES_DB:-attic}
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-attic}"]
      interval: 5s
      timeout: 5s
      retries: 5
    restart: unless-stopped
    networks:
      - attic-network

  keycloak:
    image: quay.io/keycloak/keycloak:26.0
    command: start --optimized
    environment:
      KC_DB: postgres
      KC_DB_URL: jdbc:postgresql://postgres:5432/${KEYCLOAK_DB:-keycloak}
      KC_DB_USERNAME: ${POSTGRES_USER:-attic}
      KC_DB_PASSWORD: ${POSTGRES_PASSWORD}
      KC_HOSTNAME: ${KEYCLOAK_HOSTNAME}
      KC_HOSTNAME_STRICT: "false"
      KC_HTTP_ENABLED: "true"
      KEYCLOAK_ADMIN: ${KEYCLOAK_ADMIN:-admin}
      KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD}
    ports:
      - "8180:8080"
    depends_on:
      postgres:
        condition: service_healthy
    restart: unless-stopped
    networks:
      - attic-network

volumes:
  postgres_data:
  attic_uploads:

networks:
  attic-network:
    driver: bridge