sched: ядро выкачено на VDS (стек sched Id 28, MariaDB sched, admin-key) + deploy runbook

This commit is contained in:
2026-08-28 00:17:16 +03:00
parent 85b53598bf
commit 3872208a92
4 changed files with 177 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
# sched — шедулер (ядро daemon + admin API) на инфра-VDS.
# Прод: VDS рядом с общей MariaDB (стек 11, сеть shared-dbs, отдельная база sched — свой role, решение 2026-08-27).
# Daemon: published @schedjs/daemon@0.12.1 + @schedjs/storage-mysql@0.4.0 (Dockerfile.mysql).
# Endpoint: https://sched.vds.kzntsv.site (admin API /api/*; health /api/health открыт, остальное Bearer SCHED_ADMIN_KEY).
# Deploy: Portainer-managed (см. portainer-stack-management-vds). Env через Portainer (не env_file).
services:
schedd:
image: registry.kzntsv.site/sched-daemon:0.12.1-mysql
container_name: schedd
restart: unless-stopped
mem_limit: 512m
networks:
- shared-dbs
- proxy
command:
- --tasks
- /app/config/tasks.json
- --storage
- mysql
- --admin-port
- "8080"
- --admin-host
- 0.0.0.0
environment:
MYSQL_URL: mysql://sched:${SCHED_DB_PASS}@mariadb:3306/sched?ssl={"rejectUnauthorized":false}
SCHED_ADMIN_KEY: ${SCHED_ADMIN_KEY}
volumes:
- /opt/stacks/sched/tasks.json:/app/config/tasks.json:ro
healthcheck:
test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:8080/api/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"]
interval: 15s
timeout: 5s
retries: 3
start_period: 10s
labels:
traefik.enable: "true"
traefik.http.routers.sched.entrypoints: websecure
traefik.http.routers.sched.rule: Host(`sched.vds.kzntsv.site`)
traefik.http.routers.sched.tls.certresolver: letsEncrypt
traefik.http.services.sched.loadbalancer.server.port: "8080"
networks:
shared-dbs:
external: true
proxy:
external: true

View File

@@ -0,0 +1,3 @@
{
"tasks": []
}