Репозиторий с конфигурацией и артефактами для развёртывания сервисов экосистемы OneScript на одном сервере. Всё поднимается через Docker Compose.
| Домен | Сервис |
|---|---|
| oscript.io | Основной сайт проекта |
| hub.oscript.io | Хаб пакетов OpenHub |
| hub-old.oscript.io | Прежний хаб пакетов (opm-hub) |
| build.oscript.io | Jenkins — сборки и CI |
| s3.oscript.io | MinIO — S3-совместимое хранилище артефактов |
| grafana.oscript.io | Мониторинг (Grafana, метрики, логи, трассы) |
- Оркестрация — Docker Compose
- Веб-сервер — nginx (TLS, reverse proxy, OpenTelemetry)
- Сертификаты — Let's Encrypt (certbot)
- Базы данных — PostgreSQL
- Хранилище — MinIO (локально) и внешний S3 (синхронизация через rclone)
- Хаб пакетов — OpenHub
- CI — Jenkins
- Наблюдаемость — Grafana otel-lgtm, OpenTelemetry Collector
docker-compose.yml — описание всего стека
web/nginx/ — конфигурация и образ nginx
web/certbot/ — сертификаты (не в git)
monitoring/ — дашборды Grafana, конфиги коллекторов
minio/ — образ MinIO и начальная настройка
jenkins/ — образ Jenkins
openhub-migration/ — скрипты разового переноса данных со старого хаба
S3/ — синхронизация файлов во внешнее хранилище
bot/ — исходники Telegram-бота
Секреты (пароли, ключи API) задаются в файле .env в корне репозитория — он не коммитится. Образцы переменных: openhub.env.example, minio/.env.example.
На сервере с установленными Docker и docker-compose:
# 1. Создать .env по образцам openhub.env.example и minio/.env.example
# 2. Выпустить сертификаты (первый раз)
./init-letsencrypt.sh
# 3. Поднять стек
docker-compose up -dДля добавления нового домена: создать конфиг в web/nginx/sites-enabled/, затем ./add-letsencrypt-domain.sh <домен>.
Интеграционные проверки конфигурации (нужен Docker Compose v2):
./web/nginx/test/run.sh # nginx, OTel, robots.txt, rate limits
./monitoring/test/run.sh # метрики хоста- Перенос данных со старого хаба —
openhub-migration/README.md - Настройка OpenHub с нуля — переменные в
openhub.env.example, первый администратор через/setupна hub.oscript.io