Volo
Описание
Языки
- Go45,5%
- Vue30,2%
- TypeScript15,5%
- CSS6,6%
- Shell0,9%
- HTML0,7%
- Остальные0,6%
Банка
Monorepo for desktop messenger:
- Vue 3 + Vite + TypeScript + Electronclient/- Go API + WebSocket + PostgreSQL migrationsserver/- Docker Compose stack (Postgres, backend, migrator, coturn)deploy/- architecture and implementation checklistsarch/
Quick start (backend stack)
API:
WS:
Uploaded media is stored on host in (bind-mounted into backend container), so files persist across backend rebuilds/recreates.
Production (all in Docker)
Use Caddy-based production compose:
See details in .
Quality gates
and expect PostgreSQL in (default: ).
runs backend , frontend unit tests and frontend build.
runs Playwright and starts local backend () + Vite test servers automatically.
Versioning
Single source of version is the root file.
Release backend binaries are stamped via (, , ).
Release artifacts
Artifacts:
- backend:
,server/bin/messa-appserver/bin/messa-migrator - desktop:
,client/release/*.zipclient/release/*.dmg - release metadata:
,release/RELEASE_NOTES-<version>.md,release/MANIFEST-<version>.mdrelease/SHA256SUMS-<version>.txt
Release workflow guide:
Changelog:
Operations
- Recovery runbook: deploy/RUNBOOK.md
- Backup: ./deploy/scripts/backup_postgres.sh
- Restore: ./deploy/scripts/restore_postgres.sh <dump-file> [target-db]
- Backup/restore smoke: ./deploy/scripts/backup_restore_smoke.sh
- DoD smoke (compose + feature + call media + search latency): ./deploy/scripts/dod_smoke.sh
Client development
Electron dev mode:
PWA and Web Push
Client now supports PWA install mode and Web Push notifications.
- Generate VAPID keys:
- Put values into
:.env
- Restart backend and open web client over
(orhttps://in dev).http://localhost