91 lines
3.1 KiB
YAML
91 lines
3.1 KiB
YAML
version: "3.7"
|
|
|
|
services:
|
|
app_proxy:
|
|
environment:
|
|
APP_HOST: miner-sentinel_frontend_1
|
|
APP_PORT: 80
|
|
|
|
db:
|
|
image: postgres:17.7@sha256:bac8128cd62a35471a1e97966861aa2ac88c8d2f408767a425ae70695a607c99
|
|
user: "1000:1000"
|
|
restart: on-failure
|
|
stop_grace_period: 1m
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data
|
|
environment:
|
|
POSTGRES_USER: minersentinel
|
|
POSTGRES_PASSWORD: minersentinel
|
|
POSTGRES_DB: minersentinel
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U minersentinel"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
backend:
|
|
image: dcbert/minersentinel-backend:1.0.0@sha256:0a545cb0dbbaa7772560963ebb4cff63ad3919ac1ba8750aa5850388a7b1788c
|
|
restart: on-failure
|
|
stop_grace_period: 1m
|
|
depends_on:
|
|
- db
|
|
environment:
|
|
# Конфигурация базы данных
|
|
DB_HOST: miner-sentinel_db_1
|
|
DB_PORT: 5432
|
|
POSTGRES_DB: minersentinel
|
|
POSTGRES_USER: minersentinel
|
|
POSTGRES_PASSWORD: minersentinel
|
|
# Настройки Джанго
|
|
DJANGO_SECRET_KEY: ${APP_SEED}
|
|
DJANGO_DEBUG: "False"
|
|
ALLOWED_HOSTS: "*"
|
|
CORS_ALLOWED_ORIGINS: "http://${DEVICE_DOMAIN_NAME}:3080,http://*.ts.net:3080"
|
|
CSRF_TRUSTED_ORIGINS: "http://${DEVICE_DOMAIN_NAME}:3080,http://*.ts.net:3080"
|
|
DJANGO_SUPERUSER_USERNAME: admin
|
|
DJANGO_SUPERUSER_PASSWORD: $APP_PASSWORD
|
|
DJANGO_SUPERUSER_EMAIL: "admin@umbrel.local"
|
|
# API URL для внешнего интерфейса
|
|
API_BASE_URL: "http://${DEVICE_DOMAIN_NAME}:3080"
|
|
command: >
|
|
sh -c "
|
|
python manage.py migrate &&
|
|
python manage.py collectstatic --noinput &&
|
|
(python manage.py createsuperuser --no-input ||
|
|
echo 'Superuser already exists or created — winning!') &&
|
|
gunicorn minersentinel.wsgi:application --bind 0.0.0.0:8000 --workers 2 --timeout 120
|
|
"
|
|
|
|
frontend:
|
|
image: dcbert/minersentinel-frontend:1.0.0@sha256:2144eb49160f841f0d4191a59942f7b18a1a3e89058332c2e6e807886158652a
|
|
restart: on-failure
|
|
stop_grace_period: 1m
|
|
depends_on:
|
|
- backend
|
|
environment:
|
|
VITE_API_URL: "http://${DEVICE_DOMAIN_NAME}:3080"
|
|
|
|
data-service:
|
|
image: dcbert/minersentinel-data-service:1.0.0@sha256:aee26fe4db5f5d6d403154e73f609b454eccc54e7c78f21998dfda7ff4f5f589
|
|
restart: on-failure
|
|
stop_grace_period: 1m
|
|
depends_on:
|
|
- db
|
|
- backend
|
|
environment:
|
|
# Конфигурация базы данных
|
|
POSTGRES_HOST: miner-sentinel_db_1
|
|
POSTGRES_PORT: 5432
|
|
POSTGRES_DB: minersentinel
|
|
POSTGRES_USER: minersentinel
|
|
POSTGRES_PASSWORD: minersentinel
|
|
# Бэкэнд API
|
|
BACKEND_URL: "http://miner-sentinel_backend_1:8000"
|
|
# Интервалы опроса (в секундах)
|
|
BITAXE_POLL_INTERVAL: 60
|
|
AVALON_POLL_INTERVAL: 60
|
|
POOL_POLL_INTERVAL: 300
|
|
# Уведомления Telegram (необязательно — настройте через администратора Django)
|
|
TELEGRAM_BOT_TOKEN: ""
|
|
TELEGRAM_CHAT_ID: ""
|