Ваш SaaS на одном своём сервере, без счетов за облачную платформу
Обновлено
Seed работает на арендованном вами Linux-сервере, с Docker Compose и в разработке, и в продакшене, а выкатывается одной командой. Сервер вы один раз готовите по пошаговой инструкции, а каждый следующий деплой — это только эта команда.
- Traefik на входе, с автоматическими сертификатами
- Postgres и Valkey рядом с приложениями
- Garage, S3-хранилище файлов, — для изображений и PDF в заметках и для фото профиля. Загрузка идёт по подписанным ссылкам, а файлы проверяются по содержимому. Фотографии, включая HEIC, превращаются в компактные AVIF и WebP без геопозиции и других метаданных
- VictoriaMetrics, VictoriaLogs и Grafana с оповещениями
- Ежедневная зашифрованная резервная копия базы через restic, включается по желанию, и описанная процедура восстановления
- Образы релизов публикуются из CI, когда вы пушите тег версии
Деплой копирует проект на сервер по SSH и запускает его через Compose; при каждом деплое одноразовый сервис применяет миграции базы данных. Перед приложениями стоит Traefik и получает у Let's Encrypt сертификат для каждого хоста.
Рядом с приложениями работают Postgres, Valkey, файловое хранилище S3, метрики, логи и дашборды с алертами, а несколько продуктов могут делить один сервер за общим прокси.
- Traefik
- Postgres
- Valkey
- VictoriaMetrics
- VictoriaLogs
- Grafana
- Alertmanager
- Garage file store
- restic backups
Нужен ли Kubernetes?
Нет. Docker Compose на одном сервере запускает весь продукт — и в разработке, и в продакшене.
Можно ли держать несколько продуктов на одном сервере?
Да. Прокси у них общий, а папка, база данных и данные у каждого свои; делите сервер только между продуктами, которым доверяете одинаково.
Есть ли резервное копирование?
Да. Ежедневная зашифрованная резервная копия базы данных через restic, включается по желанию, с инструкцией по восстановлению.
Seed работает на Node или Bun?
Пока нет. Сейчас Seed работает на Deno, а переход на Deno, Node и Bun уже идёт (#623). План по рантайму — на странице возможностей.