No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Vladimir Zhukov fbf9c8df96 Добавить поддержку test/prod контуров в деплой
Единый deploy.sh и Forgejo workflow с выбором stack/service; compose параметризован для параллельного test без потери prod-volume.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-23 10:02:52 +03:00
.forgejo/workflows Добавить поддержку test/prod контуров в деплой 2026-10-23 10:02:52 +03:00
secrets feat: apk 2026-09-30 18:06:09 +03:00
.env.example Добавить поддержку test/prod контуров в деплой 2026-10-23 10:02:52 +03:00
.gitignore доработки 2026-10-12 09:27:07 +03:00
compose.yaml Добавить поддержку test/prod контуров в деплой 2026-10-23 10:02:52 +03:00
deploy.sh Добавить поддержку test/prod контуров в деплой 2026-10-23 10:02:52 +03:00
README.md Добавить поддержку test/prod контуров в деплой 2026-10-23 10:02:52 +03:00

postilga-deploy

Прод/тест конфиг Postilga: compose.yaml, deploy.sh, шаблон .env.
Деплой через Forgejo Actions на self-hosted runner (postilga-host).

Код приложений — в postilga-backend / postilga-frontend (клоны рядом, в git deploy-репо не входят).

Предпочтительный (два контура):

~/apps/postilga/
  prod/                 ← clone postilga-deploy @ main
    compose.yaml
    deploy.sh
    .env
    backend/            ← postilga-backend @ main
    frontend/           ← postilga-frontend @ main
    downloads/
    backups/
  test/                 ← тот же deploy-репо, отдельный .env
    …
    backend/            ← @ testing
    frontend/           ← @ testing

Пока живёт legacy: ~/apps/postilga/ сразу с compose.yaml — ./deploy.sh --stack prod это понимает.

Compose project: postilga_prod / postilga_test.
Ветки приложений: prod → main, test → testing.

Переменные стека (.env)

Для prod можно ничего не менять — дефолты совпадают с текущим контуром:

Переменная Prod (default) Test (пример)
POSTILGA_CONTAINER_PREFIX postilga postilga-test
POSTILGA_FRONTEND_PORT 4010 4020
POSTILGA_BACKEND_PORT 4011 4021
POSTILGA_POSTGRES_VOLUME postilga-postgres-data postilga-test-postgres-data
POSTILGA_UPLOADS_VOLUME postilga-uploads postilga-test-uploads
APP_FRONTEND_BASE_URL https://postilga.ru https://test.postilga.ru

Не переименовывайте prod volume names — иначе compose создаст пустые тома.

Деплой

Forgejo: Actions → Deploy Postilga → stack + service.

Вручную:

cd ~/apps/postilga/prod   # или legacy ~/apps/postilga
./deploy.sh --stack prod --service all
./deploy.sh --stack test --service backend

Скрипт: flock → update repos → backup Postgres → compose build/up → healthcheck.

Медиа и Android APK

Медиа — Docker volume uploads (backend RW, frontend RO).
APK sideload: ./downloads → /app/downloads во frontend.

# с машины разработчика (postilga-mobile)
npm run android:release:publish

Bootstrap test (один раз)

mkdir -p ~/apps/postilga/test
cd ~/apps/postilga/test
git clone ssh://git@git.postilga.ru:2222/vladimir/postilga-deploy.git .
git clone ssh://git@git.postilga.ru:2222/vladimir/postilga-backend.git backend
git clone ssh://git@git.postilga.ru:2222/vladimir/postilga-frontend.git frontend

cd backend && git checkout -B testing origin/testing || git checkout -B testing main
cd ../frontend && git checkout -B testing origin/testing || git checkout -B testing main

cd ..
cp .env.example .env
# выставить test-порты/volume/prefix/URL из таблицы выше
mkdir -p downloads secrets backups
chmod +x deploy.sh
./deploy.sh --stack test --service all

Потом nginx + certbot для test.postilga.ru → 127.0.0.1:4020.

Миграция legacy → prod/

Не обязательно сразу. Когда будете готовы:

mkdir -p ~/apps/postilga
# осторожно: остановить контейнеры, перенести каталог в prod/,
# проверить volume names в .env, поднять ./deploy.sh --stack prod