Ctrl K
ComunidadGuías…

cloud/docker-compose.yml

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

Archivo original ↗Preguntar a KiBot
services:
  migrator:
    image: ghcr.io/kanbn/kan-migrate:latest
    container_name: ${MIGRATOR_CONTAINER_NAME:-kan-migrate}
    build:
      context: ..
      dockerfile: apps/web/Dockerfile
      target: migrate
    networks:
      - dokploy-network
    environment:
      - POSTGRES_URL=${POSTGRES_URL}
    restart: "no"

  web:
    image: ghcr.io/kanbn/kan:latest
    container_name: ${CONTAINER_NAME:-kan-web}
    ports:
      - "${WEB_PORT:-3000}:3000"
    networks:
      - dokploy-network
    build:
      context: ..
      dockerfile: apps/web/Dockerfile
      target: web
      args:
        APP_VERSION: ${APP_VERSION:-}
    env_file:
      - .env
    restart: unless-stopped
    environment:
      - KAN_ADMIN_API_KEY=${KAN_ADMIN_API_KEY}
      - NEXT_PUBLIC_KAN_ENV=${NEXT_PUBLIC_KAN_ENV}
      - NEXT_PUBLIC_BASE_URL=${NEXT_PUBLIC_BASE_URL}
      - BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET}
      - POSTGRES_URL=${POSTGRES_URL}
      - NEXT_PUBLIC_USE_STANDALONE_OUTPUT=${NEXT_PUBLIC_USE_STANDALONE_OUTPUT}
      - REDIS_URL=${REDIS_URL}

      # Logging (optional - debug, info, warn, error; defaults to debug in dev, info in prod)
      - LOG_LEVEL=${LOG_LEVEL}
      - AXIOM_TOKEN=${AXIOM_TOKEN}
      - AXIOM_DATASET=${AXIOM_DATASET}

      # Stripe
      - STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY}
      - STRIPE_WEBHOOK_SECRET=${STRIPE_WEBHOOK_SECRET}
      - STRIPE_WEBHOOK_SECRET_LEGACY=${STRIPE_WEBHOOK_SECRET_LEGACY}
      - STRIPE_TEAM_PLAN_MONTHLY_PRICE_ID=${STRIPE_TEAM_PLAN_MONTHLY_PRICE_ID}
      - STRIPE_TEAM_PLAN_YEARLY_PRICE_ID=${STRIPE_TEAM_PLAN_YEARLY_PRICE_ID}
      - STRIPE_PRO_PLAN_MONTHLY_PRICE_ID=${STRIPE_PRO_PLAN_MONTHLY_PRICE_ID}
      - STRIPE_PRO_PLAN_YEARLY_PRICE_ID=${STRIPE_PRO_PLAN_YEARLY_PRICE_ID}

      # Email
      - SMTP_HOST=${SMTP_HOST}
      - SMTP_PORT=${SMTP_PORT}
      - SMTP_USER=${SMTP_USER}
      - SMTP_PASSWORD=${SMTP_PASSWORD}
      - SMTP_SECURE=${SMTP_SECURE}
      - EMAIL_FROM=${EMAIL_FROM}
      - SMTP_REJECT_UNAUTHORIZED=${SMTP_REJECT_UNAUTHORIZED}

      # Notifications
      - SUBSCRIBER_API_URL=${SUBSCRIBER_API_URL}
      - SUBSCRIBER_API_KEY=${SUBSCRIBER_API_KEY}

      # S3 storage
      - S3_ACCESS_KEY_ID=${S3_ACCESS_KEY_ID}
      - S3_SECRET_ACCESS_KEY=${S3_SECRET_ACCESS_KEY}
      - S3_REGION=${S3_REGION}
      - S3_ENDPOINT=${S3_ENDPOINT}
      - S3_FORCE_PATH_STYLE=${S3_FORCE_PATH_STYLE}
      - S3_AVATAR_UPLOAD_LIMIT=${S3_AVATAR_UPLOAD_LIMIT}
      - NEXT_PUBLIC_STORAGE_URL=${NEXT_PUBLIC_STORAGE_URL}
      - NEXT_PUBLIC_AVATAR_BUCKET_NAME=${NEXT_PUBLIC_AVATAR_BUCKET_NAME}
      - NEXT_PUBLIC_ATTACHMENTS_BUCKET_NAME=${NEXT_PUBLIC_ATTACHMENTS_BUCKET_NAME}
      - NEXT_PUBLIC_STORAGE_DOMAIN=${NEXT_PUBLIC_STORAGE_DOMAIN}
      - NEXT_PUBLIC_USE_VIRTUAL_HOSTED_URLS=${NEXT_PUBLIC_USE_VIRTUAL_HOSTED_URLS}

      # Auth config (optional)
      - NEXT_PUBLIC_ALLOW_CREDENTIALS=${NEXT_PUBLIC_ALLOW_CREDENTIALS}
      - NEXT_PUBLIC_DISABLE_SIGN_UP=${NEXT_PUBLIC_DISABLE_SIGN_UP}

      # API configuration (optional)
      - NEXT_API_BODY_SIZE_LIMIT=${NEXT_API_BODY_SIZE_LIMIT}

      # Integration providers
      - TRELLO_APP_API_KEY=${TRELLO_APP_API_KEY}
      - TRELLO_APP_SECRET=${TRELLO_APP_SECRET}

      - BETTER_AUTH_COOKIE_DOMAIN=${BETTER_AUTH_COOKIE_DOMAIN}

      # OAuth providers (optional)
      - BETTER_AUTH_TRUSTED_ORIGINS=${BETTER_AUTH_TRUSTED_ORIGINS}
      - GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
      - GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
      - BETTER_AUTH_ALLOWED_DOMAINS=${BETTER_AUTH_ALLOWED_DOMAINS}

      # Analytics
      - NEXT_PUBLIC_POSTHOG_KEY=${NEXT_PUBLIC_POSTHOG_KEY}
      - NEXT_PUBLIC_POSTHOG_HOST=${NEXT_PUBLIC_POSTHOG_HOST}

      # Partner config (optional)
      - NEXT_PUBLIC_PARTNER_NAME=${NEXT_PUBLIC_PARTNER_NAME}
      - PARTNER_CLIENT_ID=${PARTNER_CLIENT_ID}
      - PARTNER_CLIENT_SECRET=${PARTNER_CLIENT_SECRET}
      - PARTNER_REDIRECT_URL=${PARTNER_REDIRECT_URL}
      - PARTNER_TOKEN_URL=${PARTNER_TOKEN_URL}
      - PARTNER_OAUTH_LICENSE_URL=${PARTNER_OAUTH_LICENSE_URL}
      - PARTNER_LICENSE_API_URL=${PARTNER_LICENSE_API_URL}
      - PARTNER_API_KEY=${PARTNER_API_KEY}
      - PARTNER_API_KEY_HEADER=${PARTNER_API_KEY_HEADER}
      - PARTNER_SIGNATURE_HEADER=${PARTNER_SIGNATURE_HEADER}
      - PARTNER_TIMESTAMP_HEADER=${PARTNER_TIMESTAMP_HEADER}
    depends_on:
      migrator:
        condition: service_completed_successfully

networks:
  dokploy-network:
    external: true
#bump