223 lines
6.4 KiB
YAML
223 lines
6.4 KiB
YAML
version: "3.7"
|
|
|
|
x-environment: &env
|
|
# ---- Внешние URL и порты ----
|
|
NGINX_PORT: 8762
|
|
LISTEN_HTTP_PORT: 8762
|
|
|
|
# ---- Имя сегмента, используемое внешним интерфейсом для путей /uploads ----
|
|
BUCKET_NAME: uploads
|
|
|
|
# ---- API Рабочие ----
|
|
GUNICORN_WORKERS: 2
|
|
|
|
# ---- База данных ----
|
|
POSTGRES_DB: plane
|
|
POSTGRES_USER: plane
|
|
POSTGRES_PASSWORD: dfwebosplane
|
|
DATABASE_URL: postgresql://plane:umbrelplane@plane_db_1:5432/plane
|
|
|
|
# ---- Кэш/брокер ----
|
|
REDIS_URL: redis://plane_redis_1:6379/0
|
|
RABBITMQ_DEFAULT_USER: plane
|
|
RABBITMQ_DEFAULT_PASS: dfwebosplane
|
|
RABBITMQ_DEFAULT_VHOST: plane
|
|
CELERY_BROKER_URL: amqp://plane:umbrelplane@plane_rabbitmq_1:5672/plane
|
|
|
|
# ---- Объектное хранилище (MinIO; S3-совместимое) ----
|
|
USE_MINIO: 1
|
|
AWS_ACCESS_KEY_ID: dfwebos
|
|
AWS_SECRET_ACCESS_KEY: $APP_PASSWORD
|
|
AWS_S3_ENDPOINT_URL: http://plane-minio-1:9000
|
|
AWS_S3_BUCKET_NAME: uploads
|
|
FILE_SIZE_LIMIT: 52428800 # 50 MB
|
|
MINIO_ENDPOINT_SSL: 0
|
|
MINIO_ROOT_USER: dfwebos
|
|
MINIO_ROOT_PASSWORD: $APP_PASSWORD
|
|
|
|
# ---- Джанго/приложение ----
|
|
SECRET_KEY: $APP_SEED
|
|
LIVE_SERVER_SECRET_KEY: $APP_SEED
|
|
# необязательно, но часто помогает за прокси
|
|
USE_X_FORWARDED_HOST: 1
|
|
SECURE_SSL_REDIRECT: 0
|
|
SESSION_COOKIE_SECURE: 0
|
|
CSRF_COOKIE_SECURE: 0
|
|
|
|
services:
|
|
app_proxy:
|
|
environment:
|
|
APP_HOST: plane_nginx_1
|
|
APP_PORT: 8762
|
|
PROXY_AUTH_ADD: "false"
|
|
|
|
nginx:
|
|
image: nginx:alpine3.23@sha256:5616878291a2eed594aee8db4dade5878cf7edcb475e59193904b198d9b830de
|
|
restart: on-failure
|
|
volumes:
|
|
- ${APP_DATA_DIR}/config/nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
|
depends_on:
|
|
- web
|
|
|
|
db:
|
|
image: postgres:17.9-alpine@sha256:778d0b486d6daa02b77434d0358ec57a1b21fd8b6d22ac2eef56a33e816928f6
|
|
user: "1000:1000"
|
|
restart: on-failure
|
|
environment:
|
|
<<: *env
|
|
env_file:
|
|
- ${APP_DATA_DIR}/settings.env
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
redis:
|
|
image: valkey/valkey:7.2.12-alpine@sha256:d0809f1d763f9fc3d77cd27e7c0393b1b0d69b6ad9269f932328b4793a620c78
|
|
restart: on-failure
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/redis:/data
|
|
|
|
rabbitmq:
|
|
image: rabbitmq:3.13.7-management-alpine@sha256:0c64ec4fc5596406d755dcca75e8a3b618192cc5fb69f8f0340f06290b1cc08c
|
|
user: "1000:1000"
|
|
restart: on-failure
|
|
environment:
|
|
<<: *env
|
|
env_file:
|
|
- ${APP_DATA_DIR}/settings.env
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/rabbitmq:/var/lib/rabbitmq
|
|
|
|
minio:
|
|
image: alpine/minio:RELEASE.2025-10-15T17-29-55Z@sha256:cf23643a6cf9ce159c57643ceb88279e431262282428c9e0bf3a7ef1a97e84b4
|
|
user: "1000:1000"
|
|
restart: on-failure
|
|
command: server /export --console-address ":8763"
|
|
environment:
|
|
<<: *env
|
|
env_file:
|
|
- ${APP_DATA_DIR}/settings.env
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/uploads:/export
|
|
ports:
|
|
- "8763:8763"
|
|
# не удается подключиться, если имя содержит подчеркивание
|
|
container_name: plane-minio-1
|
|
|
|
api:
|
|
image: makeplane/plane-backend:v1.3.0@sha256:60fb33fa75b63594c1b0bb62b9e50e05f03bb0e46ef384c9eec177f2fb1aaf02
|
|
user: "1000:1000"
|
|
restart: on-failure
|
|
environment:
|
|
<<: *env
|
|
env_file:
|
|
- ${APP_DATA_DIR}/settings.env
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_started
|
|
rabbitmq:
|
|
condition: service_started
|
|
|
|
worker:
|
|
image: makeplane/plane-backend:v1.3.0@sha256:60fb33fa75b63594c1b0bb62b9e50e05f03bb0e46ef384c9eec177f2fb1aaf02
|
|
user: "1000:1000"
|
|
restart: on-failure
|
|
environment:
|
|
<<: *env
|
|
env_file:
|
|
- ${APP_DATA_DIR}/settings.env
|
|
depends_on:
|
|
api:
|
|
condition: service_started
|
|
redis:
|
|
condition: service_started
|
|
rabbitmq:
|
|
condition: service_started
|
|
command: ["sh","-c","celery -A plane worker --loglevel=info"]
|
|
|
|
beat-worker:
|
|
image: makeplane/plane-backend:v1.3.0@sha256:60fb33fa75b63594c1b0bb62b9e50e05f03bb0e46ef384c9eec177f2fb1aaf02
|
|
user: "1000:1000"
|
|
restart: on-failure
|
|
environment:
|
|
<<: *env
|
|
env_file:
|
|
- ${APP_DATA_DIR}/settings.env
|
|
depends_on:
|
|
api:
|
|
condition: service_started
|
|
redis:
|
|
condition: service_started
|
|
rabbitmq:
|
|
condition: service_started
|
|
migrator:
|
|
condition: service_completed_successfully
|
|
command: ["sh","-c","celery -A plane beat --loglevel=info"]
|
|
|
|
migrator:
|
|
image: makeplane/plane-backend:v1.3.0@sha256:60fb33fa75b63594c1b0bb62b9e50e05f03bb0e46ef384c9eec177f2fb1aaf02
|
|
user: "1000:1000"
|
|
restart: on-failure
|
|
environment:
|
|
<<: *env
|
|
env_file:
|
|
- ${APP_DATA_DIR}/settings.env
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
command: ["sh","-c","python manage.py wait_for_db && python manage.py migrate"]
|
|
|
|
web:
|
|
image: makeplane/plane-frontend:v1.3.0@sha256:5116ac06c2b5f8cc6b0dfd7638ce787b44302527dd3fa2b3e6889e52c4aff3d1
|
|
restart: on-failure
|
|
environment:
|
|
<<: *env
|
|
env_file:
|
|
- ${APP_DATA_DIR}/settings.env
|
|
depends_on:
|
|
- api
|
|
|
|
live:
|
|
image: makeplane/plane-live:v1.3.0@sha256:81ff136509a3069766c27c9f3489db7bfe37af8a8eab8869ee17ab948eeb83c3
|
|
user: "1000:1000"
|
|
restart: on-failure
|
|
environment:
|
|
<<: *env
|
|
env_file:
|
|
- ${APP_DATA_DIR}/settings.env
|
|
depends_on:
|
|
- api
|
|
|
|
space:
|
|
image: makeplane/plane-space:v1.3.0@sha256:0964d53de83a7f2bcb9418dc157f3ede566a6ddad0774d8d2b10cd931b96fcea
|
|
user: "1000:1000"
|
|
restart: on-failure
|
|
environment:
|
|
<<: *env
|
|
env_file:
|
|
- ${APP_DATA_DIR}/settings.env
|
|
depends_on:
|
|
- api
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "node -e \"require('http').get('http://127.0.0.1:3000/', (r) => process.exit(r.statusCode < 500 ? 0 : 1)).on('error', () => process.exit(1))\""]
|
|
interval: 30s
|
|
timeout: 5s
|
|
start_period: 10s
|
|
retries: 3
|
|
|
|
admin:
|
|
image: makeplane/plane-admin:v1.3.0@sha256:dd83ae5d61d592d0877e4ddda9eb32a3828f8b51d8efbc307806c34b9a48c0a2
|
|
restart: on-failure
|
|
environment:
|
|
<<: *env
|
|
env_file:
|
|
- ${APP_DATA_DIR}/settings.env
|
|
depends_on:
|
|
- api
|