From deaa5b04db92cb3eb02eb382d364273013ac3685 Mon Sep 17 00:00:00 2001 From: protokey Date: Thu, 1 Oct 2026 08:16:15 +0400 Subject: [PATCH] chore: update --- Makefile | 17 ++++++++++++++++- README.md | 6 +++--- src/App/README.md | 1 + 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 46dbc3b..652ea49 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ SERVERUS_CA = $(if $(filter yes,$(ca)),--ca $(SERVERUS_CA_DIR)) MAKECMDGOALS_TARGETS := install freeze wheels sync sync-offline clean help PKG := $(filter-out $(MAKECMDGOALS_TARGETS),$(MAKECMDGOALS)) -.PHONY: install freeze wheels sync sync-offline clean help venv dj_makemigrations dj_migrate dj_superuser dj_run dj_test dj_startapp dj_worker dj_secrets dj_backup dj_restore dj_check_points docker_build docker_up serve_ssh serverus_xui serverus_key serverus_cert serverus_outbound serverus_release serverus_docker serverus_app +.PHONY: install freeze wheels sync sync-offline clean help venv dj_makemigrations dj_migrate dj_superuser dj_run dj_test dj_startapp dj_worker dj_secrets dj_backup dj_restore dj_check_points docker_build docker_up dev dev_stop serve_ssh serverus_xui serverus_key serverus_cert serverus_outbound serverus_release serverus_docker serverus_app help: @echo "make install [ ...] - установить пакет(ы) в $(VENV), обновить $(REQUIREMENTS), собрать wheel в $(WHEELS_DIR)/" @@ -31,6 +31,8 @@ help: @echo "make dj_secrets - сгенерировать недостающие секреты в .env" @echo "make dj_backup [keep=14] - бэкап базы в extra/backups, keep - сколько последних оставить" @echo "make dj_restore file= - восстановить базу из бэкапа (сайт и воркер остановлены)" + @echo "make dev - разработка: инфраструктура в docker, миграции, сайт и воркер из $(VENV) (Ctrl+C - остановить оба)" + @echo "make dev_stop - остановить инфраструктуру разработки" @echo "make docker_build / docker_up - собрать образ и поднять все в docker (профиль app)" @echo "make serverus_xui ip= password= [domain=] [ssl=no] [ca=yes] - настроить свежий сервер и поставить 3x-ui, доступы в $(SERVERUS_ACCESS_DIR)//" @echo "make serverus_key ip= action=add|del|stats name= - ключ на панели, настроенной через serverus_xui" @@ -117,6 +119,19 @@ docker_build: wheels docker_up: docker compose --profile app up -d +# разработка: в docker только то, что нужно сайту и воркеру; сами они - из venv, с перезагрузкой runserver +DEV_SERVICES := postgres rabbitmq telegram telegram-files + +dev: + docker compose up -d $(DEV_SERVICES) + @until docker compose exec -T postgres pg_isready -q; do sleep 1; done + $(MANAGE) migrate --noinput + @# Ctrl+C получают оба процесса + $(MAKE) --no-print-directory -j2 dj_run dj_worker + +dev_stop: + docker compose stop $(DEV_SERVICES) + dj_startapp: $(MANAGE) startapp $(app) diff --git a/README.md b/README.md index 2958bf5..93e45f8 100644 --- a/README.md +++ b/README.md @@ -300,9 +300,9 @@ https://1.2.3.4:12839/9g72PmSGAQ3V/ ### Запуск 1. `cp env_example .env` и заполнить: база, RabbitMQ, `FIELD_ENCRYPTION_KEYS`, `SERVERUS_CERTIFICATES`, `TELEGRAM_WEBHOOK_URL`, `ALLOWED_HOSTS`. -2. `docker compose up -d` - Postgres, RabbitMQ, свой Bot API сервер. -3. `make sync`, `make dj_migrate`, `make dj_superuser`. -4. Два процесса: `make dj_run` (сайт, админка и webhook ботов), `make dj_worker` (установка и возврат серверов). +2. `make sync`. +3. `make dev` - Postgres, RabbitMQ и свой Bot API сервер в docker, миграции, затем сайт (`dj_run`: админка и webhook ботов) и воркер (`dj_worker`: установка и возврат серверов) в одном терминале. Ctrl+C останавливает оба, `make dev_stop` - инфраструктуру. По отдельности: `docker compose up -d postgres rabbitmq telegram telegram-files`, `make dj_migrate`, `make dj_run`, `make dj_worker`. +4. При первом запуске - `make dj_superuser`. 5. В админке добавить бота с токеном, выбрать интерфейс MyPoint и опубликовать. Подробности: `src/App/README.md` (сценарии, секреты, ручной вход `make serve_ssh`), `src/serverus/README.md` (плейбуки, ручная проверка на сервере), `src/Telegram/README.md` (боты). diff --git a/src/App/README.md b/src/App/README.md index 93361ff..f985ecf 100644 --- a/src/App/README.md +++ b/src/App/README.md @@ -8,6 +8,7 @@ Django приложение связывающее все части сайта -[x] Клиенты и статистика через API панели 3x-ui -[x] Супервизор долгих задач и ежедневная проверка точек -[x] Docker-серверы: приложения в `~/apps` из бота +-[ ] Бэкапы named volumes docker-приложений: сейчас данные сервисов (база Gitea, RustDesk и т.п.) теряются при переустановке ОС и `remove` с `volumes` Зависимости: `Telegram` (интерфейс бота, пользователи, уведомления) и `serverus` (настройка серверов).