Стеки
Приложения в Selenite разворачиваются как стеки — наборы контейнеров, описанных в файле compose.yml. Запускает их Podman Compose, а формат файла — стандартный Compose Spec, поэтому готовые compose-файлы из документаций приложений работают без переделок. Все контейнеры выполняются в rootless-режиме, от имени непривилегированного пользователя.
Как это работает
Стек разворачивается одной командой — compose.yml передаётся по SSH через stdin:
ssh server stack deploy myapp < compose.ymlЕсли стек с таким именем уже существует, он обновляется до новой версии файла. Повторный деплой — это тот же способ обновить приложение.
Дальше есть обычные операции: посмотреть список стеков, состояние контейнеров, логи, остановить и запустить стек, удалить его. Полный список — в справочнике команд stack.
Пример compose.yml
services:
db:
image: postgres:16
environment:
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
secrets:
- db_password
volumes:
- db_data:/var/lib/postgresql/data
restart: unless-stopped
secrets:
db_password:
external: true
volumes:
db_data:В примере используются secrets и volumes, которые создаются через команды группы infra — подробнее в разделе Секреты, тома и сети.
TIP
Рекомендуйте restart: unless-stopped или always — тогда контейнеры автоматически поднимутся после перезагрузки машины.
WARNING
Команда stack remove необратима: файл compose.yml удаляется. Тома при этом сохраняются — их можно очистить отдельно через infra volume prune.