Ctrl K
ComunidadGuías…

docker-compose.yaml

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

Archivo original ↗Preguntar a KiBot
services:
  bot:
    build:
      context: .
      args:
        VERSION: ${LINK_BOT_VERSION:-dev}
        COMMIT: ${LINK_BOT_COMMIT:-none}
    image: link-bot:local
    container_name: link-bot
    restart: unless-stopped
    env_file:
      - .env
    environment:
      DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}?sslmode=disable
    depends_on:
      db:
        condition: service_healthy
    volumes:
      - ./translations:/translations
      - ./assets:/assets:ro
      - ./secrets:/app/secrets:ro
      - link-bot-upload-data:/uploads
      - ./.update-agent:/run/link-bot-updater:ro

  migrate-bedolaga:
    build: .
    image: link-bot:local
    profiles: [ "tools" ]
    env_file:
      - .env
    environment:
      DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}?sslmode=disable
      BEDOLAGA_DATABASE_URL: ${BEDOLAGA_DATABASE_URL:-}
    depends_on:
      db:
        condition: service_healthy
    entrypoint: [ "/app/migrate-bedolaga" ]

  db:
    image: postgres:17
    container_name: link-bot-db
    hostname: link-bot-db
    restart: unless-stopped
    env_file:
      - .env
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
      - TZ=UTC
    volumes:
      - link-bot-db-data:/var/lib/postgresql/data
    healthcheck:
      test: [ 'CMD-SHELL', 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}' ]
      interval: 3s
      timeout: 10s
      retries: 3

  caddy:
    image: caddy:2.10-alpine
    profiles: [ "standalone" ]
    container_name: link-bot-caddy
    restart: unless-stopped
    depends_on:
      - bot
    ports:
      - "80:80"
      - "443:443"
    environment:
      PUBLIC_HOST: ${PUBLIC_HOST}
      CABINET_SUBDOMAIN: ${CABINET_SUBDOMAIN:-}
      ADMIN_SUBDOMAIN: ${ADMIN_SUBDOMAIN:-}
    entrypoint: [ "/bin/sh", "/etc/caddy/start-link-bot.sh" ]
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-start.sh:/etc/caddy/start-link-bot.sh:ro
      - caddy-data:/data
      - caddy-config:/config

volumes:
  link-bot-db-data:
    driver: local
    external: false
    name: link-bot-db-data
  link-bot-upload-data:
  caddy-data:
  caddy-config: