Tududi: add task tracke application
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
# Tududi — планировщик задач (github.com/chrisvel/tududi).
|
||||
# See versions: https://hub.docker.com/r/chrisvel/tududi/tags
|
||||
#
|
||||
# Образ стартует entrypoint'ом от root, chown'ит /app/backend на PUID:PGID и
|
||||
# сбрасывает права через su-exec — поэтому НЕ задаём `user:`, только PUID/PGID
|
||||
# (совпадают с системным пользователем tududi, владельцем смонтированных каталогов).
|
||||
#
|
||||
# Внутренний порт — 3002 (frontend отдаётся тем же backend'ом). Caddy проксирует
|
||||
# tududi.vakhrushev.me -> tududi_app:3002. Аутентификация — собственный OIDC-логин
|
||||
# tududi к Authelia (НЕ forward_auth), поэтому в Caddy домен открыт.
|
||||
|
||||
services:
|
||||
|
||||
tududi_app:
|
||||
image: chrisvel/tududi:1.1.1
|
||||
container_name: tududi_app
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- "web_proxy_network"
|
||||
volumes:
|
||||
- "{{ db_dir }}:/app/backend/db"
|
||||
- "{{ uploads_dir }}:/app/backend/uploads"
|
||||
environment:
|
||||
- PUID={{ app_owner_uid }}
|
||||
- PGID={{ app_owner_gid }}
|
||||
|
||||
- NODE_ENV=production
|
||||
- PORT=3002
|
||||
- DB_FILE=db/production.sqlite3
|
||||
- TUDUDI_UPLOAD_PATH=/app/backend/uploads
|
||||
|
||||
- BASE_URL=https://tududi.vakhrushev.me
|
||||
- TUDUDI_ALLOWED_ORIGINS=https://tududi.vakhrushev.me
|
||||
- TUDUDI_TRUST_PROXY=true
|
||||
|
||||
- TUDUDI_SESSION_SECRET={{ tududi_session_secret }}
|
||||
# Чистый OIDC: сид-админ не создаётся (TUDUDI_USER_EMAIL/PASSWORD не заданы),
|
||||
# первый вход через Authelia сам заводит пользователя и выдаёт ему admin по
|
||||
# OIDC_ADMIN_EMAIL_DOMAINS. Локальный парольный вход выключен.
|
||||
- PASSWORD_AUTH_ENABLED=false
|
||||
|
||||
# OIDC (Authelia). Redirect URI регистрируется в Authelia как
|
||||
# https://tududi.vakhrushev.me/api/oidc/callback/{OIDC_PROVIDER_SLUG}.
|
||||
- OIDC_ENABLED=true
|
||||
- OIDC_PROVIDER_NAME=Authelia
|
||||
- OIDC_PROVIDER_SLUG=authelia
|
||||
- OIDC_ISSUER_URL=https://auth.vakhrushev.me
|
||||
- OIDC_CLIENT_ID={{ tududi_oidc_client_id }}
|
||||
- OIDC_CLIENT_SECRET={{ tududi_oidc_client_secret }}
|
||||
- OIDC_SCOPE=openid profile email
|
||||
- OIDC_AUTO_PROVISION=true
|
||||
# Домен email, чьим пользователям при auto-provision выдаётся роль админа
|
||||
# (должен совпадать с доменом email в id_token от Authelia).
|
||||
- OIDC_ADMIN_EMAIL_DOMAINS=vakhrushev.me
|
||||
|
||||
# Почта (Yandex Cloud Postbox, те же секреты, что у outline/authelia).
|
||||
- ENABLE_EMAIL=true
|
||||
- EMAIL_SMTP_HOST={{ postbox_host }}
|
||||
- EMAIL_SMTP_PORT={{ postbox_port }}
|
||||
- EMAIL_SMTP_SECURE=false
|
||||
- EMAIL_SMTP_USERNAME={{ postbox_user }}
|
||||
- EMAIL_SMTP_PASSWORD={{ postbox_pass }}
|
||||
- EMAIL_FROM_ADDRESS=tududi@vakhrushev.me
|
||||
- EMAIL_FROM_NAME=Tududi
|
||||
|
||||
# AI-фичи через Bifrost (drop-in OpenAI-эндпоинт в общей сети — НЕ localhost,
|
||||
# это сам контейнер). Модель у tududi захардкожена как gpt-4o-mini; Bifrost
|
||||
# по governance-правилу роутит её на deepseek-v4-pro. openai-node сам
|
||||
# подхватывает OPENAI_BASE_URL.
|
||||
- OPENAI_API_KEY={{ tududi_openai_api_key }}
|
||||
- OPENAI_BASE_URL=http://bifrost_app:8080/openai
|
||||
|
||||
networks:
|
||||
web_proxy_network:
|
||||
external: true
|
||||
Reference in New Issue
Block a user