Убирает собственный контейнер db — вместо своего Postgres подключается
внешней сетью (netrunner_grid, external: true) к netrunner-db из
netrunner-backend/docker-compose.prod.yml, в отдельной базе/юзере
(VW_DB_*, был DB_*). Экономит ресурсы на VPS, где раньше крутились бы
два отдельных Postgres-процесса. Добавляет пошаговый ранбук переноса
существующих данных со старого SQLite-инстанса (scripts/migrate-vaultwarden.md,
через checkpoint WAL + pgloader data-only на уже созданную diesel-схему).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Копия .github/workflows/deploy.yml — без изменений содержимого: тут нет
логина на ghcr.io (postgres/vaultwarden — публичные образы с Docker Hub),
менять было нечего. Секреты (DATA_VPS_IP, DATA_SSH_PRIVATE_KEY,
DATA_DB_*, VAULTWARDEN_*) нужно завести отдельно в Gitea — своё хранилище,
не шарится с GitHub Actions.
Раньше Vaultwarden жил на проде голым файлом (~/vaultwarden-data/docker-compose.yml)
без git/CI, на SQLite, с секретами прямо в файле. Здесь: Postgres вместо
SQLite, все секреты — только через .env, который на каждом деплое
пересобирается заново из GitHub Actions secrets (см. .env.example для
полного списка нужных переменных и .github/workflows/deploy.yml).
Важно: переключение DATABASE_URL на Postgres поверх уже существующего
./data/db.sqlite3 с реальными данными пользователей само по себе данные не
мигрирует — см. комментарий в docker-compose.yml.