Контейнерные стеки — руководство пользователя¶
Контейнерный стек dix.su — это готовый docker-compose.yml, который поднимает
ваш сервис вместе с туннелем к dix.su. Подходит для тех, кто хочет запустить
интернет-магазин, git-хостинг или другой web-сервис за туннелем — без настройки
туннельного клиента вручную.
Требования: Docker и Docker Compose (v2) на машине, где будет работать стек.
Шаг 1 — Получить slug и токен¶
Зайдите на dix.su/auth/protected → «Туннель». Вам нужны два значения:
- Slug — уникальное имя вашего туннеля (например,
myshop) - Token — секретный токен для подключения
Скопируйте их — они понадобятся в .env.
Шаг 2 — Клонировать нужный стек¶
| Стек | Назначение | Репозиторий | Мин. RAM |
|---|---|---|---|
django_shop |
Интернет-магазин (Django + Oscar) | git@gitlab.com:dixsu/market/django_shop.git |
512 МБ |
dixsu-git |
Git-хостинг (Forgejo) + Docker/OCI-реестр и реестры пакетов | git@gitlab.com:dixsu/market/dixsu-git.git |
512 МБ |
dixsu-plausible |
Аналитика посещений (Plausible CE) | git@gitlab.com:dixsu/market/dixsu-plausible.git |
2 ГБ ¹ |
dixsu-test |
Тестовый сервис для проверки туннеля | git@gitlab.com:dixsu/market/dixsu-test.git |
128 МБ |
¹ dixsu-plausible требует CPU с SSE 4.2 (x86) или NEON (ARM) и минимум 2 ГБ RAM
из-за ClickHouse. Подходит для Raspberry Pi 4 (4 GB), RPi 5, мини-ПК и любого VPS.
На смартфонах (Redmi 4 / Note 8) этот стек не запустится.
Шаг 3 — Создать .env¶
Откройте .env и заполните обязательные поля:
# ── dix.su туннель ────────────────────────────────────────
DIXSU_SLUG=myshop # ← ваш slug
DIXSU_TOKEN=abc123xyz # ← ваш токен
# ── Django (для стека django_shop) ────────────────────────
SECRET_KEY=замените-на-50-случайных-символов
DEBUG=false
ALLOWED_HOSTS=myshop.dix.su,localhost
SITE_URL=https://myshop.dix.su
# ── База данных ────────────────────────────────────────────
DB_NAME=shopdb
DB_USER=shop
DB_PASSWORD=сильный-пароль
# ── Первый администратор ───────────────────────────────────
ADMIN_USER=admin
ADMIN_EMAIL=ваш@email.com
ADMIN_PASSWORD=сильный-пароль-для-входа
SECRET_KEYможно сгенерировать командой:
Шаг 4 — Запустить стек¶
Docker скачает образы, запустит приложение и туннельный клиент.
Через 15–30 секунд ваш сервис будет доступен по адресу https://myshop.dix.su.
Проверить, что туннель поднялся¶
Ищите строку:
Проверить статус в личном кабинете¶
Зайдите на dix.su/auth/protected → «Туннель». Вы увидите бейдж 📦 активен · docker-стек.
Управление стеком¶
Остановить¶
Перезапустить после обновления конфига¶
Посмотреть логи приложения¶
Обновить стек¶
Туннельный контейнер не нужно пересобирать при обновлении приложения.
Email-уведомления (необязательно)¶
По умолчанию стек не отправляет письма (dummy-бэкенд). Это сделано намеренно —
при первом запуске вы видите корректную работу магазина без настройки SMTP.
Чтобы включить реальную отправку, откройте .env и:
-
Закомментируйте строку с
dummy: -
Раскомментируйте строку с
smtp: -
Заполните SMTP-параметры:
-
Перезапустите стек:
Чем docker-стек отличается от прямого туннеля¶
| Параметр | Прямой туннель | Docker-стек |
|---|---|---|
| Установка клиента | вручную, бинарник | docker compose up |
| Запуск сервиса | ваш сервис уже работает | стартует вместе с туннелем |
| SSH/RDP/VNC через туннель | доступно (при тарифе VIP+) | недоступно |
| Иконка статуса в ЛК | ⚡ прямой | 📦 docker-стек |
| Порт туннеля определяет | вы (поле в ЛК) | LOCAL_PORT в docker-compose.yml |
Почему нет SSH/RDP/VNC для docker-стека¶
Эти протоколы требуют прямого доступа к порту на хост-машине или к службам, запущенным вне контейнера (SSH-демон, рабочий стол). Туннель внутри Docker имеет доступ только к сервисам в той же docker-сети — подключиться к SSH хост-машины через контейнер не получится. Тумблеры SSH/RDP/VNC в ЛК заблокированы для docker-стеков с подсказкой об этом.
Частые вопросы¶
Туннель запустился, но сайт не открывается
- Убедитесь, что контейнер
appтоже запустился:docker compose ps - Проверьте логи приложения:
docker compose logs app - Проверьте, что
LOCAL_PORTвdocker-compose.ymlсовпадает с портом, на котором слушает приложение
Joined channel не появляется в логах tunnel
- Проверьте slug и токен в
.env— они должны совпадать с данными из личного кабинета - Убедитесь, что ваш туннель не заморожен (проверьте статус на dix.su)
Как сменить slug/токен
Обновите .env и перезапустите только контейнер tunnel:
Можно ли запустить стек на VPS
Да — любой Linux с Docker подойдёт. Скопируйте репозиторий стека на VPS,
создайте .env и запустите docker compose up -d. Туннель сам выйдет
наружу через dix.su — открывать порты на VPS не нужно.
Стек dixsu-plausible не запускается / ClickHouse падает
ClickHouse требует CPU с поддержкой SSE 4.2 (x86) или NEON (ARM). Проверьте:
# x86 — должно выводить что-то:
grep -m1 sse4_2 /proc/cpuinfo
# ARM — должно выводить "asimd" или "neon":
grep -m1 -E "asimd|neon|fp" /proc/cpuinfo
Если признаков нет — этот стек на данном железе не запустится.
Также убедитесь, что доступно минимум 2 ГБ RAM: free -h.
Как добавить сайт в Plausible после первого запуска
Откройте https://ваш-slug.dix.su → создайте пользователя → добавьте сайт
с доменом, который хотите отслеживать → вставьте выданный <script>-тег
в <head> этого сайта.