services: app: build: context: . dockerfile: Dockerfile # Enable BuildKit layer/cache mounts: DOCKER_BUILDKIT=1 docker compose build app args: NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_SITE_URL} NEXT_PUBLIC_PASTE_URL_ALLOW_LIST: ${NEXT_PUBLIC_PASTE_URL_ALLOW_LIST} PAYLOAD_SECRET: ${PAYLOAD_SECRET} DATABASE_URI: ${DATABASE_URI} container_name: eversolo-web restart: unless-stopped env_file: .env expose: - "3000" volumes: - ./data/media:/app/media - ./data/files:/app/files - ./data/videos:/app/videos networks: - web caddy: image: uhub.service.ucloud.cn/mysql-images/caddy:2-alpine container_name: eversolo-caddy restart: unless-stopped depends_on: - app ports: - "80:80" - "443:443" - "443:443/udp" volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - caddy_data:/data - caddy_config:/config - ./data/media:/srv/uploads/media:ro - ./data/files:/srv/uploads/files:ro - ./data/videos:/srv/uploads/videos:ro networks: - web bootstrap: image: uhub.service.ucloud.cn/mysql-images/node:22-bookworm-slim working_dir: /app env_file: .env volumes: - .:/app - bootstrap_node_modules:/app/node_modules - ./data/media:/app/media - ./data/files:/app/files - ./data/videos:/app/videos command: > bash -lc " npm ci --include=dev && npm run payload:migrate && npm run payload:migrate:status && npm run seed:import -- --live && npx tsx ./src/scripts/create-admin.ts " profiles: [bootstrap] networks: - web networks: web: driver: bridge volumes: bootstrap_node_modules: caddy_data: caddy_config: