Files

117 lines
4.3 KiB
Markdown
Raw Permalink Normal View History

2026-06-02 21:11:57 +08:00
# 🚀 Развёртывание в Docker через Gitea
Проект хранится в Gitea (`http://192.168.1.171:3000`). Ниже — как поднять его в
Docker на удалённом локальном хосте (в той же сети). Замените `<OWNER>` на имя
вашего пользователя/организации в Gitea.
---
## Вариант A. Клонирование + Docker Compose (рекомендуется)
Самый простой путь — собрать образ прямо на целевом хосте из исходников.
На удалённом хосте (Linux с установленными `git`, `docker`, `docker compose`):
```bash
# 1. Склонировать репозиторий из Gitea
git clone http://192.168.1.171:3000/<OWNER>/rss-ntfy.git
cd rss-ntfy
# 2. (опционально) задать свои параметры
cp .env.example .env
nano .env # смените ADMIN_PASSWORD и т.д.
# 3. Собрать и запустить
docker compose up -d --build
# 4. Проверить
docker compose logs -f
```
Панель откроется на `http://<IP_хоста>:8000`.
> Приватный репозиторий? Используйте токен в URL:
> `git clone http://<OWNER>:<TOKEN>@192.168.1.171:3000/<OWNER>/rss-ntfy.git`
### Обновление до новой версии
```bash
cd rss-ntfy
git pull
docker compose up -d --build
```
База данных лежит в Docker-томе `rss_ntfy_data` и переживает пересборку.
---
## Вариант B. Готовый образ из Gitea Container Registry
Если настроен Gitea Actions-раннер, пайплайн `.gitea/workflows/docker.yml`
сам собирает образ и публикует его в реестр Gitea при каждом пуше в `main`.
### Однократная настройка на стороне Gitea
1. **Включить Actions**: Settings → Actions, и зарегистрировать раннер
(`act_runner`).
2. В репозитории задать переменную **`REGISTRY_HOST`** = `192.168.1.171:3000`
(Settings → Actions → Variables).
3. На хосте раннера разрешить незащищённый реестр (HTTP) — в
`/etc/docker/daemon.json`:
```json
{ "insecure-registries": ["192.168.1.171:3000"] }
```
затем `systemctl restart docker`.
### Запуск из готового образа на целевом хосте
Тоже разрешите insecure-registry (см. выше), затем:
```bash
# вход в реестр Gitea (логин Gitea + токен как пароль)
docker login 192.168.1.171:3000
# тянем и запускаем образ
docker pull 192.168.1.171:3000/<OWNER>/rss-ntfy:latest
docker run -d --name rss-ntfy --restart unless-stopped \
-p 8000:8000 \
-v rss_ntfy_data:/data \
-e ADMIN_PASSWORD=измените_меня \
192.168.1.171:3000/<OWNER>/rss-ntfy:latest
```
Или через Compose — создайте `docker-compose.prod.yml`:
```yaml
services:
rss-ntfy:
image: 192.168.1.171:3000/<OWNER>/rss-ntfy:latest
container_name: rss-ntfy
restart: unless-stopped
ports:
- "8000:8000"
volumes:
- rss_ntfy_data:/data
environment:
ADMIN_PASSWORD: "измените_меня"
volumes:
rss_ntfy_data:
```
```bash
docker compose -f docker-compose.prod.yml pull
docker compose -f docker-compose.prod.yml up -d
```
---
## Частые вопросы
- **`docker login` ругается на HTTPS** — вы не добавили хост в
`insecure-registries` (реестр работает по HTTP на нестандартном порту).
- **Порт 8000 занят** — поменяйте левую часть проброса, напр. `-p 9000:8000`.
- **Сбросить пароль администратора** — `ADMIN_*` действуют только при первом
старте; позже меняйте пароль во вкладке «Пользователи» или удалите том
`rss_ntfy_data` для полного сброса.
- **Бэкап** — достаточно сохранить том `rss_ntfy_data` (там SQLite-база
`app.db` и ключ подписи сессий).