ci: registry-based releases — multi-arch images built in CI, servers only pull
- release workflow: buildx multi-arch (amd64+arm64) build+push of bot and admin images to Gitea Container Registry (git.softuniq.eu/telegram-market/telegram-shop[-admin]) - docker-compose: bot/admin use registry images (IMAGE_TAG for pinning); tor-proxy stays local alpine build - install.sh: pull from registry instead of local docker build (no native compilation on weak hardware); interactive .env setup preserved - new buildx runner gitea-host-buildx (label buildx) on x86_64 host - REGISTRY_TOKEN replaced with package-scoped token (write:package) - README/VERSION/.env.example updated
This commit is contained in:
23
README.md
23
README.md
@@ -32,9 +32,14 @@ bash install.sh
|
||||
1. Определит архитектуру (x86_64 / ARM64 / ARMv7)
|
||||
2. Установит Docker если не установлен
|
||||
3. Создаст `.env` из шаблона
|
||||
4. Проверит обязательные переменные
|
||||
5. Соберёт Docker-образ под текущую архитектуру
|
||||
6. Запустит контейнер и проверит health-check
|
||||
4. Интерактивно запросит недостающие переменные (BOT_TOKEN, ADMIN_IDS) и сгенерирует ключи (ENCRYPTION_KEY, ADMIN_SECRET, SUPER_ADMIN_SECRET) если они не заданы
|
||||
5. Установит SHOP_ACTIVATED=false для нового магазина (стартует заблокированным)
|
||||
6. Автоматически определит LAN IP и установит ADMIN_URL
|
||||
7. Соберёт Docker-образ под текущую архитектуру
|
||||
8. Запустит контейнер и проверит health-check
|
||||
|
||||
#### Активация магазина
|
||||
После установки магазин стартует заблокированным (SHOP_ACTIVATED=false). Оператор получает onion-адрес от клиента, заходит в админку по onion/LAN, входит с SUPER_ADMIN_SECRET, добавляет комиссионные кошельки (Кошельки → Edit Wallets), настраивает бота, нажимает "Activate Shop" в Настройках.
|
||||
|
||||
### Ручная установка
|
||||
|
||||
@@ -46,8 +51,8 @@ git clone <repo-url> && cd telegram-shop
|
||||
cp .env.example .env
|
||||
nano .env # заполнить BOT_TOKEN, ADMIN_IDS, ENCRYPTION_KEY
|
||||
|
||||
# 3. Собрать и запустить
|
||||
docker compose up -d --build
|
||||
# 3. Запустить (образы тянутся из Gitea Container Registry, сборка не нужна)
|
||||
docker compose up -d
|
||||
|
||||
# 4. Проверить статус
|
||||
docker compose ps
|
||||
@@ -55,6 +60,8 @@ curl http://localhost:3001/health # бот (health-сервер)
|
||||
curl -o /dev/null -w "%{http_code}\n" http://localhost:3000/login # новая админка
|
||||
```
|
||||
|
||||
> Образы бота и админки собираются в CI (Gitea Actions, buildx multi-arch) и публикуются в Gitea Container Registry. На сервере ничего не компилируется — только `docker compose pull`. Для пиннинга версии: `IMAGE_TAG=1.2.9 docker compose up -d`. Локальная сборка (dev): `docker compose up -d --build`.
|
||||
|
||||
## Настройка .env
|
||||
|
||||
Скопируйте `.env.example` в `.env` и заполните:
|
||||
@@ -82,6 +89,7 @@ curl -o /dev/null -w "%{http_code}\n" http://localhost:3000/login # новая
|
||||
| `WG_ENDPOINT` | — | Адрес сервера WireGuard |
|
||||
| `WG_ADDRESS` | — | Адрес интерфейса WireGuard |
|
||||
| `WG_DNS` | — | DNS для WireGuard |
|
||||
| `SHOP_ACTIVATED` | — | Флаг активации магазина. false = магазин заблокирован до активации супер-админом в админке (Настройки → Shop Activation). |
|
||||
|
||||
Генерация ключа шифрования:
|
||||
```bash
|
||||
@@ -194,8 +202,9 @@ Docker автоматически собирает нативные модули
|
||||
# Запуск
|
||||
docker compose up -d
|
||||
|
||||
# Пересборка после изменений
|
||||
docker compose up -d --build
|
||||
# Пересборка (dev-сборка локально) или обновление до новой версии из registry
|
||||
docker compose up -d --build # dev: собрать локально
|
||||
IMAGE_TAG=1.2.9 docker compose up -d # prod: взять конкретную версию из registry
|
||||
|
||||
# Логи
|
||||
docker compose logs -f
|
||||
|
||||
Reference in New Issue
Block a user