# 🚀 Развёртывание в Docker через Gitea Проект хранится в Gitea (`http://192.168.1.171:3000`). Ниже — как поднять его в Docker на удалённом локальном хосте (в той же сети). Замените `` на имя вашего пользователя/организации в Gitea. --- ## Вариант A. Клонирование + Docker Compose (рекомендуется) Самый простой путь — собрать образ прямо на целевом хосте из исходников. На удалённом хосте (Linux с установленными `git`, `docker`, `docker compose`): ```bash # 1. Склонировать репозиторий из Gitea git clone http://192.168.1.171:3000//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://:8000`. > Приватный репозиторий? Используйте токен в URL: > `git clone http://:@192.168.1.171:3000//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//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//rss-ntfy:latest ``` Или через Compose — создайте `docker-compose.prod.yml`: ```yaml services: rss-ntfy: image: 192.168.1.171:3000//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` и ключ подписи сессий).