diff --git a/arty.yml b/arty.yml index 0a2366b..0050797 100644 --- a/arty.yml +++ b/arty.yml @@ -60,6 +60,7 @@ scripts: logs: docker compose logs -f restart: docker compose restart ps: docker compose ps + pull: docker compose pull env/sync: rsync -avzhe ssh ./.env root@vps:~/Projects/docker-compose/ db/dump: | PGPASSWORD="${DB_PASSWORD}" pg_dump -h "${CORE_DB_HOST}" -p "${CORE_DB_PORT}" -U "${DB_USER}" -d "${SEXY_DB_NAME}" > sexy/directus.sql; \ diff --git a/sexy/.env.example b/sexy/.env.example new file mode 100644 index 0000000..416acb6 --- /dev/null +++ b/sexy/.env.example @@ -0,0 +1,117 @@ +# ============================================================================ +# Production Environment Variables for sexy.pivoine.art +# ============================================================================ +# Copy this file to .env and fill in your values +# Usage: docker compose -f compose.yaml up -d + +# ============================================================================ +# Project Configuration +# ============================================================================ +SEXY_COMPOSE_PROJECT_NAME=sexy +CORE_COMPOSE_PROJECT_NAME=core +NETWORK_NAME=compose_network +TIMEZONE=Europe/Amsterdam + +# ============================================================================ +# External Database Configuration (from compose_network) +# ============================================================================ +CORE_DB_HOST=postgres +CORE_DB_PORT=5432 +SEXY_DB_NAME=sexy +DB_USER=sexy +DB_PASSWORD=your-database-password-here + +# ============================================================================ +# External Redis Configuration (from compose_network) +# ============================================================================ +CORE_REDIS_HOST=redis +CORE_REDIS_PORT=6379 + +# ============================================================================ +# Directus Configuration +# ============================================================================ +SEXY_DIRECTUS_IMAGE=directus/directus:11 +SEXY_DIRECTUS_SECRET=your-32-char-random-secret-here-min-32-characters +ADMIN_EMAIL=admin@sexy.pivoine.art +ADMIN_PASSWORD=your-admin-password-here + +# Directus public URL (accessible via Traefik) +SEXY_PUBLIC_URL=https://sexy.pivoine.art + +# Uploads and bundle paths (use named volumes or host paths) +SEXY_DIRECTUS_UPLOADS=directus_uploads +SEXY_DIRECTUS_BUNDLE=directus_bundle + +# ============================================================================ +# Cache Configuration +# ============================================================================ +SEXY_CACHE_ENABLED=true +SEXY_CACHE_AUTO_PURGE=true + +# ============================================================================ +# CORS Configuration +# ============================================================================ +SEXY_CORS_ENABLED=true +SEXY_CORS_ORIGIN=https://sexy.pivoine.art + +# ============================================================================ +# Security (Production) +# ============================================================================ +SEXY_SESSION_COOKIE_SECURE=true +SEXY_SESSION_COOKIE_SAME_SITE=strict +SEXY_SESSION_COOKIE_DOMAIN=.pivoine.art + +# ============================================================================ +# Extensions +# ============================================================================ +SEXY_EXTENSIONS_PATH=/directus/extensions +SEXY_EXTENSIONS_AUTO_RELOAD=false + +# ============================================================================ +# WebSockets +# ============================================================================ +SEXY_WEBSOCKETS_ENABLED=true + +# ============================================================================ +# Email Configuration (Production SMTP) +# ============================================================================ +EMAIL_TRANSPORT=smtp +EMAIL_FROM=noreply@sexy.pivoine.art +EMAIL_SMTP_HOST=smtp.example.com +EMAIL_SMTP_PORT=587 +EMAIL_SMTP_USER=your-email@example.com +EMAIL_SMTP_PASSWORD=your-smtp-password + +# ============================================================================ +# User URLs +# ============================================================================ +SEXY_USER_REGISTER_URL_ALLOW_LIST=https://sexy.pivoine.art/signup/verify +SEXY_PASSWORD_RESET_URL_ALLOW_LIST=https://sexy.pivoine.art/password/reset + +# ============================================================================ +# Content Security Policy +# ============================================================================ +SEXY_CONTENT_SECURITY_POLICY_DIRECTIVES__FRAME_SRC= + +# ============================================================================ +# Frontend Configuration +# ============================================================================ +SEXY_FRONTEND_IMAGE=ghcr.io/valknarxxx/sexy:latest + +# IMPORTANT: These PUBLIC_* variables are BAKED INTO THE BUILD +# They cannot be changed at runtime! If you need different values, +# you must rebuild the image with the correct values. +SEXY_FRONTEND_PUBLIC_API_URL=https://sexy.pivoine.art/api +SEXY_FRONTEND_PUBLIC_URL=https://sexy.pivoine.art +SEXY_FRONTEND_PUBLIC_UMAMI_ID= + +# Optional: Letterspace integration (also baked into build) +SEXY_FRONTEND_LETTERSPACE_API_URL= +SEXY_FRONTEND_LETTERSPACE_API_KEY= +SEXY_FRONTEND_LETTERSPACE_LIST_ID= + +# ============================================================================ +# Traefik Configuration +# ============================================================================ +SEXY_TRAEFIK_ENABLED=true +SEXY_TRAEFIK_HOST=sexy.pivoine.art