Update docker-compose.yml to add telemt-panel service and configure telemt-plus network. Modify SYNC_SETUP.md to change ownership settings from 999:999 to 65532:65532 for improved compatibility and document steps for reconfiguring existing B servers.
Publish telemt-bot Docker image / build-and-push (push) Successful in 35s

This commit is contained in:
Denozordec
2026-04-10 00:38:16 +07:00
parent eec4ac8b4f
commit 6243163232
2 changed files with 75 additions and 6 deletions
+52 -6
View File
@@ -109,7 +109,7 @@ sync {
compress = true,
_extra = {
"--delete",
"--chown=999:999",
"--chown=65532:65532",
"--chmod=Du=rwx,Dg=rx,Do=,Fu=rw,Fg=r,Fo=",
"-e", "ssh -i /root/.ssh/telemt_sync -o StrictHostKeyChecking=accept-new"
}
@@ -129,7 +129,7 @@ sync {
compress = true,
_extra = {
"--delete",
"--chown=999:999",
"--chown=65532:65532",
"--chmod=Du=rwx,Dg=rx,Do=,Fu=rw,Fg=r,Fo=",
"-e", "ssh -i /root/.ssh/telemt_sync -o StrictHostKeyChecking=accept-new"
}
@@ -149,7 +149,7 @@ sync {
compress = true,
_extra = {
"--delete",
"--chown=999:999",
"--chown=65532:65532",
"--chmod=Du=rwx,Dg=rx,Do=,Fu=rw,Fg=r,Fo=",
"-e", "ssh -i /root/.ssh/telemt_sync -o StrictHostKeyChecking=accept-new"
}
@@ -171,7 +171,7 @@ apt update && apt install -y rsync
```bash
# B1: gt1.ivx.su
rsync -az --delete \
--chown=999:999 \
--chown=65532:65532 \
--chmod=Du=rwx,Dg=rx,Do=,Fu=rw,Fg=r,Fo= \
-e "ssh -i /root/.ssh/telemt_sync -o StrictHostKeyChecking=accept-new" \
/opt/telemt-plus/telemt-data/ \
@@ -179,7 +179,7 @@ rsync -az --delete \
# B2: gt2.ivx.su
rsync -az --delete \
--chown=999:999 \
--chown=65532:65532 \
--chmod=Du=rwx,Dg=rx,Do=,Fu=rw,Fg=r,Fo= \
-e "ssh -i /root/.ssh/telemt_sync -o StrictHostKeyChecking=accept-new" \
/opt/telemt-plus/telemt-data/ \
@@ -187,7 +187,7 @@ rsync -az --delete \
# B3: gt3.ivx.su
rsync -az --delete \
--chown=999:999 \
--chown=65532:65532 \
--chmod=Du=rwx,Dg=rx,Do=,Fu=rw,Fg=r,Fo= \
-e "ssh -i /root/.ssh/telemt_sync -o StrictHostKeyChecking=accept-new" \
/opt/telemt-plus/telemt-data/ \
@@ -228,6 +228,52 @@ curl -s http://127.0.0.1:9091/v1/health
В ответе ожидается `read_only: true`.
## 8.1) Перенастройка существующих B (slave) на новый `uid/gid` и повторный запуск синхронизации
Если B-серверы уже были настроены со старым `--chown=999:999`, выполните эти шаги, чтобы синхронизация снова применялась корректно.
1. На A (`mtg.ivx.su`) обновить конфиг `lsyncd` и перезапустить демон (выполнять на `mtg.ivx.su` от root; желательно сначала остановить `telemt` на всех B по шагу 2, затем вставить блок целиком):
```bash
sed -i.bak 's/--chown=999:999/--chown=65532:65532/g' /etc/lsyncd/lsyncd.conf.lua
systemctl restart lsyncd
systemctl status lsyncd --no-pager
```
2. На каждом B (`gt1.ivx.su`, `gt2.ivx.su`, `gt3.ivx.su`) остановить `telemt` и выставить права под новый `uid/gid`:
```bash
cd /opt/telemt-plus
docker compose stop telemt
chown -R 65532:65532 telemt-data
find telemt-data -type d -exec chmod 750 {} \;
find telemt-data -type f -exec chmod 640 {} \;
chmod 660 telemt-data/config.toml 2>/dev/null || true
chmod 770 telemt-data/cache 2>/dev/null || true
```
3. На A выполнить повторную полную синхронизацию на все B (команды из шага 6 с `--chown=65532:65532`).
4. На A перезапустить `lsyncd`:
```bash
systemctl restart lsyncd
systemctl status lsyncd --no-pager
```
5. На каждом B поднять контейнер и проверить, что узел в режиме read-only:
```bash
cd /opt/telemt-plus
docker compose up -d --force-recreate telemt
curl -s http://127.0.0.1:9091/v1/health
```
Ожидаемо:
- контейнер `telemt` стартует без ошибок прав доступа;
- в health-ответе `read_only: true`;
- после изменения `config.toml` на A файл автоматически обновляется на всех B.
## 9) Правило эксплуатации
- Мутации (`POST/PATCH/DELETE`) делать только на A (`mtg.ivx.su`).
+23
View File
@@ -5,6 +5,8 @@ services:
dockerfile: Dockerfile
container_name: telemt-bot
restart: unless-stopped
networks:
telemt-plus:
environment:
TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN}
TELEGRAM_ADMIN_CHAT_ID: ${TELEGRAM_ADMIN_CHAT_ID}
@@ -15,3 +17,24 @@ services:
TELEMT_LINK_HOST: ${TELEMT_LINK_HOST}
TELEMT_LINK_PORT: ${TELEMT_LINK_PORT:-9443}
TELEMT_TLS_DOMAIN: ${TELEMT_TLS_DOMAIN:-}
telemt-panel:
image: ghcr.io/amirotin/telemt_panel:latest
container_name: telemt-panel
restart: unless-stopped
user: "0:0"
volumes:
- /opt/telemt-plus/telemt-panel-data:/etc/telemt-panel
networks:
telemt-plus:
ipv4_address: 172.20.0.4
ports:
- "${TELEMT_PANEL_HTTP_PORT:-8080}:8080"
networks:
telemt-plus:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/24
gateway: 172.20.0.1