diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f17227e --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,47 @@ +services: + hoerdle: + container_name: hoerdle + build: + context: . + dockerfile: Dockerfile + args: + NEXT_PUBLIC_APP_NAME: ${NEXT_PUBLIC_APP_NAME} + NEXT_PUBLIC_APP_DESCRIPTION: ${NEXT_PUBLIC_APP_DESCRIPTION} + NEXT_PUBLIC_DOMAIN: ${NEXT_PUBLIC_DOMAIN} + NEXT_PUBLIC_TWITTER_HANDLE: ${NEXT_PUBLIC_TWITTER_HANDLE} + NEXT_PUBLIC_PLAUSIBLE_DOMAIN: ${NEXT_PUBLIC_PLAUSIBLE_DOMAIN} + NEXT_PUBLIC_PLAUSIBLE_SCRIPT_SRC: ${NEXT_PUBLIC_PLAUSIBLE_SCRIPT_SRC} + NEXT_PUBLIC_THEME_COLOR: ${NEXT_PUBLIC_THEME_COLOR} + NEXT_PUBLIC_BACKGROUND_COLOR: ${NEXT_PUBLIC_BACKGROUND_COLOR} + NEXT_PUBLIC_CREDITS_ENABLED: ${NEXT_PUBLIC_CREDITS_ENABLED} + NEXT_PUBLIC_CREDITS_TEXT: ${NEXT_PUBLIC_CREDITS_TEXT} + NEXT_PUBLIC_CREDITS_LINK_TEXT: ${NEXT_PUBLIC_CREDITS_LINK_TEXT} + NEXT_PUBLIC_CREDITS_LINK_URL: ${NEXT_PUBLIC_CREDITS_LINK_URL} + user: root + restart: always + ports: + - "3010:3000" + environment: + - DATABASE_URL=${DATABASE_URL:-file:/app/data/prod.db} + - ADMIN_PASSWORD=${ADMIN_PASSWORD} + - TZ=${TZ:-Europe/Berlin} + - GOTIFY_URL=${GOTIFY_URL:-} + - GOTIFY_APP_TOKEN=${GOTIFY_APP_TOKEN:-} + - OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-} + volumes: + - ./data:/app/data + - ./public/uploads:/app/public/uploads + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:3000/api/daily" ] + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s + networks: + - default + # docker-entrypoint.sh handles migrations and server startup (with baseline fallback) + +networks: + default: + name: hoerdle_default +