Развёртывание с Docker
Рекомендуемый способ развёртывания pipel8ne — Docker Compose. Это поднимает полный стек (MongoDB + бэкенд + фронтенд) одной командой.
Предварительные требования
- Docker Engine 24+ и Docker Compose v2
- Сервер или VM с минимум 512 МБ ОЗУ и 1 ядром CPU
Установка
1. Клонировать репозиторий
git clone https://github.com/ogb4n/pipel8ne.git
cd pipel8ne2. Создать файл окружения
cp .env.example .envОткройте .env и задайте обязательные значения:
JWT_SECRET=<сгенерировать: node -e "console.log(require('crypto').randomBytes(64).toString('hex'))">
SECRETS_ENCRYPTION_KEY=<сгенерировать: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))">Полный список смотрите в Переменные окружения.
3. Собрать фронтенд (только при первом развёртывании)
Фронтенд должен быть скомпилирован до запуска стека:
cd webapp
npm install
npm run build
cd ..Скомпилированный вывод попадает в webapp/dist/. Бэкенд раздаёт его как статические файлы.
4. Запустить стек
docker compose up -dПроверьте, что все сервисы работают:
docker compose psОжидаемый вывод:
NAME STATUS
pipel8ne-backend running
pipel8ne-mongo runningПриложение доступно по адресу http://localhost:3000.
5. Создать первый аккаунт администратора
Откройте браузер и зарегистрируйтесь. Первый аккаунт автоматически получает права администратора.
Затем перейдите в Настройки → Администрирование и отключите публичную регистрацию.
Обновление
git pull
cd webapp && npm install && npm run build && cd ..
docker compose pull
docker compose up -dСохранение данных
По умолчанию данные MongoDB хранятся в именованном Docker-томе (pipel8ne_mongo_data). Том сохраняется при перезапусках через docker compose down.
Проверить тома:
docker volume ls | grep pipel8neСоздать резервную копию:
docker exec pipel8ne-mongo mongodump \
--uri "mongodb://pipel8ne:<пароль>@localhost:27017/pipel8ne?authSource=admin" \
--out /tmp/backup
docker cp pipel8ne-mongo:/tmp/backup ./backup-$(date +%Y%m%d)Открытие для интернета
По умолчанию приложение слушает на 0.0.0.0:3000. Для безопасного доступа через HTTPS разместите его за обратным прокси (Nginx, Caddy, Traefik). Смотрите Чеклист для продакшена.
Остановка стека
docker compose down # сохранить данные
docker compose down -v # также удалить тома (⚠ уничтожает все данные)