Files
DFWebOS-Apps/miner-sentinel/docker-compose.yml

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: ""