feat: docker-серверы - приложения в ~/apps под управлением бота

serverus: DockerHost - установка Docker и ingress Caddy, deploy приложения
с проверкой compose и caddy.conf до изменений и пересозданием только
изменившихся сервисов, status, control, logs, remove. nftables
перезапускается только при изменении конфига, Docker следом
восстанавливает свои правила; release восстанавливает конфиг Debian
вместо остановки nftables.

Telegram: прием документов и отправка файлов, раздача файлов своего
Bot API сервера через nginx (telegram-files).

App: общая модель Managed для Point и Platform, DockerApp и версии
файлов AppVersion, разбор архивов (uploads), сценарии платформы
(platforms), задачи и меню docker-серверов в боте.

Проверено на стенде Debian 13 с local_certs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
protokeyandClaude Opus 5.5 committed 2026-09-29 20:27:05 +04:00
1 parent 65c19ea1cd
commit a8d1f286d1
42 files changed
+3509 -232

No files matched your search

+29
View File
@@ -25,6 +25,18 @@ services:
# - "127.0.0.1:8081:8081"
# - "127.0.0.1:8082:8082"
telegram-files:
# файлы, присланные ботам документами: Bot API сервер в --local режиме не отдает их по HTTP, а пишет на диск
# с правами 0600 от uid 101. Воркеры nginx работают от того же uid 101. Отдаются только documents/
image: docker.local/nginx:1.30.5-alpine-slim
configs:
- source: telegram-files
target: /etc/nginx/conf.d/default.conf
volumes:
- telegram-bot-api-data:/var/lib/telegram-bot-api:ro
network_mode: host
restart: unless-stopped
redis:
image: docker.local/redis:8.8.3-alpine
ports:
@@ -75,6 +87,7 @@ services:
DB_PORT: "5432"
RABBITMQ_ADDRESS: rabbitmq:5672
TELEGRAM_API_URL: http://telegram:8081
TELEGRAM_FILES_URL: http://telegram-files:8083
# Bot API сервер ходит на webhook по имени сервиса сайта, домен не нужен
TELEGRAM_WEBHOOK_URL: http://web:8000
ALLOWED_HOSTS: web,127.0.0.1,localhost
@@ -98,6 +111,8 @@ services:
condition: service_started
telegram:
condition: service_started
telegram-files:
condition: service_started
worker:
<<: *app
@@ -117,3 +132,17 @@ volumes:
redis_data:
rabbitmq_data:
postgres_data:
configs:
telegram-files:
content: |
server {
listen 127.0.0.1:8083;
access_log off;
location ~ ^/[0-9]+:[A-Za-z0-9_-]+/documents/[^/]+$$ {
root /var/lib/telegram-bot-api;
}
location / {
return 404;
}
}