Dokploy: Гайд по хостингу вместо Vercel, Netlify

Узнайте, как установить и настроить Dokploy — открытую самостийную платформу для хостинга приложений. Гайд по развертыванию, CI/CD и безопасности для homelab.

Не указано
Алексей Кузнецов
Алексей Кузнецов
Системный администратор21 января 2026 г.

Подготовка сервера

Обновите системные пакеты и установите необходимые утилиты. Убедитесь, что порты 80 и 443 свободны для веб-сервера Traefik.

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git
sudo ss -tuln | grep -E ':(80|443)'

Установка Docker и Docker Compose

Установите Docker через официальный репозиторий, чтобы получить актуальные версии. Добавьте текущего пользователя в группу docker для выполнения команд без sudo.

sudo apt remove -y docker docker-engine docker.io containerd runc
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo usermod -aG docker $USER
# Выйдите из системы и войдите снова для применения изменений
docker --version
docker compose version

Установка Dokploy

Используйте официальный скрипт установки, который автоматически настроит все необходимые компоненты (Dokploy, Traefik, базы данных).

curl -sSL https://get.dokploy.com | bash

Первоначальная настройка панели управления

Откройте веб-интерфейс Dokploy по IP-адресу сервера (http://<IP-адрес>). Используйте логин 'admin' и пароль, который был сгенерирован или установлен по умолчанию (проверьте логи контейнера или скрипта установки, если не меняли вручную). Рекомендуется сразу настроить домен для панели в разделе Settings -> Domain, чтобы получить SSL-сертификат Let's Encrypt.

Добавление базы данных

В интерфейсе Dokploy перейдите в раздел Databases и создайте необходимую БД (например, PostgreSQL). Укажите имя, версию, пользователя и пароль. Dokploy автоматически создаст контейнер и настроит внутреннюю сеть.

Развертывание приложения из Git

Создайте новое приложение (Applications -> Create Application). Укажите репозиторий Git, ветку, команды сборки и запуска. Dokploy автоматически определит технологический стек, если в корне репозитория есть package.json, requirements.txt и т.д. Добавьте домен и переменные окружения (например, строку подключения к БД).

# Пример настроек для Node.js приложения
Build Command: npm install
Start Command: npm start
Port: 3000

# Пример настроек для Python (Django/Flask)
Build Command: pip install -r requirements.txt
Start Command: gunicorn myproject.wsgi:application --bind 0.0.0.0:8000
Port: 8000

Настройка CI/CD (Автодеплой)

В настройках приложения (Settings -> Git) включите Auto Deploy. Получите Deploy Token и App ID в разделе API. Добавьте секреты в репозиторий GitHub (DOKPLOY_DEPLOY_TOKEN, DOKPLOY_APP_ID) и создайте workflow файл для автоматического развертывания при пуше в ветку main.

# .github/workflows/deploy.yml
name: Deploy to Dokploy
on:
  push:
    branches: [ main ]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Deploy to Dokploy
        uses: dokploy/github-action@v1
        with:
          deploy_token: ${{ secrets.DOKPLOY_DEPLOY_TOKEN }}
          app_id: ${{ secrets.DOKPLOY_APP_ID }}

Настройка резервного копирования

Настройте автоматические бэкапы баз данных и томов Docker через cron. Создайте скрипт для дампа PostgreSQL и очистки старых файлов, а также скрипт для архивации томов. Пример настройки бэкапа базы данных через cron (ежедневно в 02:00).

# Скрипт /usr/local/bin/backup-db.sh
#!/bin/bash
BACKUP_DIR="/backup/db"
DATE=$(date +%Y%m%d_%H%M%S)
DB_CONTAINER=$(docker ps -q --filter "name=dokploy_postgres")
if [ ! -z "$DB_CONTAINER" ]; then
    docker exec $DB_CONTAINER pg_dumpall -U postgres > $BACKUP_DIR/postgres_$DATE.sql
    gzip $BACKUP_DIR/postgres_$DATE.sql
fi
find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete

# Добавление в cron
sudo crontab -e
0 2 * * * /usr/local/bin/backup-db.sh

Безопасность (Firewall)

Настройте UFW (Uncomplicated Firewall) для разрешения только необходимых портов: SSH, HTTP (80) и HTTPS (443). Порты баз данных должны быть закрыты для внешнего доступа.

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Самостоятельный хостинг Dokploy: Полный гайд по установке и настройке открытой альтернативы Vercel, Netlify и Heroku

Введение

Современная разработка все больше полагается на облачные платформы вроде Vercel, Netlify или Heroku, которые обеспечивают простоту развертывания и масштабирования. Однако этот подход имеет недостатки: высокие затраты на масштабирование, зависимость от поставщика, ограничения в настройке и потенциальные проблемы с данными при использовании чужеродных облаков.

Самостоятельный хостинг решает эти проблемы, позволяя полностью контролировать инфраструктуру, данные и затраты. Dokploy — это открытая платформа (в духе Vercel), работающая на вашем собственном сервере или VPS. Она предоставляет удобный веб-интерфейс для развертывания приложений, управления базами данных и настройки CI/CD, оставаясь под вашим полным контролем.

Что такое Dokploy и его ключевые отличия

Dokploy — это open-source платформа для развертывания приложений, построенная на Docker и Docker Compose. Она предоставляет графический интерфейс для управления контейнеризованными приложениями, аналогичный облачным PaaS.

Ключевые отличия от облачных сервисов:

АспектОблачные сервисы (Vercel/Netlify/Heroku)Dokploy (самостоятельный хостинг)
КонтрольОграниченный, зависимость от провайдераПолный контроль над всем стеком
ЦенаРасчет по потреблению, дорого при ростеФиксированные затраты на сервер, масштабируемые
ДанныеДанные находятся у третьей стороныВаши данные на вашем сервере
НастройкаОграничены доступными опциямиПолная кастомизация
ПриложенияОграничения на стеки, версииЛюбые технологии, любые версии
Базы данныхПлатные решенияБесплатные открытые БД на вашем сервере
МасштабированиеАвтоматическое, дорогоеРучное, по вашему бюджету
УправлениеAPI, CLI, веб-интерфейсAPI, CLI, веб-интерфейс + полный доступ к системе

Требования к системе

Минимальные требования

Для личного использования / разработки:

  • Оперативная память: 2 ГБ RAM (рекомендуется 4 ГБ)
  • CPU: 2 ядра (рекомендуется 4)
  • Диск: 20 ГБ (рекомендуется 40 ГБ SSD)
  • ОС: Linux (Ubuntu 22.04/20.04, Debian 11/12)
  • Сеть: Статический IP, порты 80/443 открыты (для веб-сервера)

Для продакшена:

  • Оперативная память: 8 ГБ RAM (рекомендуется 16 ГБ)
  • CPU: 4 ядра (рекомендуется 8)
  • Диск: 50 ГБ SSD (рекомендуется 100 ГБ SSD)
  • Резервное копирование: Отдельный том или удаленный бэкап
  • Мониторинг: Отдельный сервер/сервис

Архитектура

Dokploy работает как набор Docker-контейнеров на вашем сервере:

┌─────────────────────────────────────────────────────┐
│                 ОС Linux (Ubuntu/Debian)            │
├─────────────────────────────────────────────────────┤
│                 Docker Engine                       │
├─────────────────────────────────────────────────────┤
│              Docker Compose                         │
│ ┌─────────────┬─────────────┬─────────────────────┐ │
│ │   Dokploy   │  Базы данных│   Ваши приложения   │ │
│ │   (UI/API)  │   (Postgres,│   (Node, Python,    │ │
│ │             │   MySQL и т.д.)│   Go и т.д.)      │ │
│ └─────────────┴─────────────┴─────────────────────┘ │
├─────────────────────────────────────────────────────┤
│                 Traefik (LB/SSL)                    │
│          Домены → SSL → Контейнеры                  │
└─────────────────────────────────────────────────────┘

Операционная система

Поддерживаются:

  • Ubuntu 22.04/20.04 LTS (рекомендуется)
  • Debian 11/12
  • CentOS/RHEL (с ограничениями)

Не поддерживается Windows Server. Для macOS возможна установка вручную, но это не рекомендуется.

Пошаговая установка

Шаг 1: Подготовка сервера

  1. Обновите систему:
sudo apt update && sudo apt upgrade -y
  1. Установите необходимые пакеты:
sudo apt install -y curl wget git
  1. Проверьте, что порты 80 и 443 свободны:
sudo ss -tuln | grep -E ':(80|443)'
  1. Настройте хост-имен (опционально):
sudo hostnamectl set-hostname dokploy.example.com

Шаг 2: Установка Docker и Docker Compose

Альтернативный метод (рекомендуется): Установите Docker через официальный репозиторий:

# Удалите старые версии Docker (если есть)
sudo apt remove -y docker docker-engine docker.io containerd runc

# Установите ключи GPG
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Добавьте репозиторий
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Установите Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# Добавьте пользователя в группу docker (запустить для текущего пользователя)
sudo usermod -aG docker $USER

Выйдите и снова войдите в систему для применения изменений группы.

Проверьте установку:

docker --version
docker compose version

Шаг 3: Установка Dokploy

Метод 1: Автоматический скрипт (рекомендуется)

# Скачайте и запустите скрипт установки
curl -sSL https://get.dokploy.com | bash

Этот скрипт:

  • Проверяет требования
  • Устанавливает Docker, если нужно
  • Скачивает Docker Compose файлы Dokploy
  • Запускает контейнеры
  • Настраивает Traefik для SSL

Метод 2: Вручную через Docker Compose

  1. Создайте директорию для Dokploy:
mkdir -p ~/dokploy && cd ~/dokploy
  1. Скачайте конфигурационные файлы:
# Основной docker-compose.yml
curl -o docker-compose.yml https://raw.githubusercontent.com/dokploy/dokploy/main/docker-compose.yml

# Файл переменных окружения
curl -o .env https://raw.githubusercontent.com/dokploy/dokploy/main/.env.example
  1. Настройте переменные окружения:
# Отредактируйте .env файл
nano .env

Основные переменные:

# Админские данные
DOKPLOY_ADMIN_USERNAME=admin
DOKPLOY_ADMIN_PASSWORD=создай_надежный_пароль

# Домен для панели управления
DOKPLOY_DOMAIN=dokploy.example.com

# Секретные ключи (генерируются автоматически)
DOKPLOY_SECRET_KEY=auto_generated

# База данных Postgres для Dokploy
POSTGRES_PASSWORD=создай_надежный_пароль_бд
  1. Запустите Dokploy:
docker compose up -d

Шаг 4: Проверка работы

  1. Проверьте контейнеры:
docker ps
  1. Проверьте логи:
docker compose logs -f
  1. Ожидайте 2-3 минуты пока Dokploy инициализируется. При первом запуске могут быть задержки с генерацией SSL-сертификатов.

Первоначальная настройка

Создание аккаунта

  1. Откройте панель управления: Перейдите по адресу: https://dokploy.example.com (или http://<ваш_IP> если домен еще не настроен)

  2. Первый вход: Используйте данные из .env файла (по умолчанию admin / пароль из переменной DOKPLOY_ADMIN_PASSWORD)

  3. Первый вход в панель: Панель управления Dokploy Основная панель управления Dokploy

Настройка доменов

Для панели управления (рекомендуется):

  1. Укажите домен для панели:
  • В настройках Dokploy → Settings → Domain
  • Введите домен (например, dokploy.example.com)
  • Дождитесь автоматического получения SSL-сертификата
  1. Настройте DNS: Создайте A-запись, указывающую на IP вашего сервера:
dokploy.example.com.  300  IN  A  192.0.2.1

Для приложений:

  1. Добавьте домен при добавлении приложения (см. раздел "Развертывание приложений")
  2. Или вручную в настройках доменов: Settings → Domains

Настройка SSL (Let's Encrypt)

Для автоматического получения SSL-сертификатов:

  1. Проверьте, что порт 443 доступен:
sudo ufw allow 443/tcp
  1. Если используете Cloudflare или подобные CDN:
  • Убедитесь, что режим проксирования выключен (Proxy DNS-only)
  • Или настройте передачу заголовков
  1. Для самоподписанных сертификатов (для тестов):
  • В настройках приложения → Security → SSL → Self-signed

Развертывание приложений

Подготовка репозитория

Dokploy развертывает приложения из Git-репозиториев. Подготовьте ваш проект:

  1. Проект Node.js:
// package.json
{
  "name": "my-app",
  "version": "1.0.0",
  "scripts": {
    "build": "npm run build",    // Если нужно
    "start": "node server.js"   // Команда запуска
  }
}
  1. Папка Dockerfile (опционально):
# Dockerfile для Node.js
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
  1. Загрузите проект на GitHub/GitLab/Bitbucket

Развертывание Node.js приложения

  1. В панели Dokploy: Applications → Create Application

  2. Шаг 1: Общие настройки

  • Name: my-node-app
  • Git Provider: GitHub/GitLab
  • Repository: username/repo-name
  • Branch: main
  • Build Context: . (корень репозитория)
  1. Шаг 2: Команды Dokploy анализирует package.json автоматически, но можно указать вручную:
  • Build Command: npm install && npm run build (если есть сборка)
  • Start Command: npm start (или node server.js)
  • Port: 3000 (порт приложения)
  1. Шаг 3: Domains
  • Добавьте домен: myapp.example.com
  • Летско будет доступен после развертывания
  1. Шаг 4: Environment Variables
  • Добавьте переменные окружения (если нужны):
NODE_ENV=production
DATABASE_URL=postgresql://user:pass@localhost/dbname
  1. Нажмите Create Application

Dokploy автоматически:

  • Клонирует репозиторий
  • Строит образ (если есть Dockerfile)
  • Запускает контейнер
  • Настроит SSL для домена
  • Смонтирует постоянные тома (если есть папка /app/data)

Развертывание Python приложения (Flask/Django)

  1. Подготовьте репозиторий:
my-django-app/
├── manage.py
├── requirements.txt
├── Dockerfile (опционально)
└── static/ (для сборки)
  1. Dockerfile пример:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
# Для Django
CMD ["gunicorn", "myproject.wsgi:application", "--bind", "0.0.0.0:8000"]
  1. Настройки в Dokploy:
  • Build Command: pip install -r requirements.txt
  • Start Command: gunicorn myproject.wsgi:application --bind 0.0.0.0:8000
  • Port: 8000
  • Runtime: Python 3.11 (можно указать версию в Dockerfile)

Развертывание Go приложения

  1. Репозиторий:
my-go-app/
├── main.go
├── go.mod
├── go.sum
└── Dockerfile
  1. Dockerfile:
FROM golang:1.21-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN go build -o main .

FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/main .
EXPOSE 8080
CMD ["./main"]
  1. Настройки в Dokploy:
  • Build Command: go build -o main .
  • Start Command: ./main
  • Port: 8080

Развертывание статического сайта (React/Vue)

  1. Dockerfile для статики:
# Для React (create-react-app)
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

FROM nginx:alpine
COPY --from=builder /app/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
  1. Настройки в Dokploy:
  • Build Command: npm install && npm run build
  • Start Command: nginx -g 'daemon off;'
  • Port: 80

Управление базами данных и хранилищами

Встроенные базы данных

Dokploy поддерживает добавление баз данных через интерфейс.

  1. Добавить PostgreSQL:
  • Databases → Create Database
  • Name: postgres-db
  • Version: 15.3
  • User: appuser
  • Password: создай_надежный_пароль
  • Port: 5432 (можно указать любой свободный)
  1. Добавить MySQL:
  • Databases → Create Database
  • Name: mysql-db
  • Version: 8.0
  • User: root (или создайте обычного пользователя)
  • Password: создай_надежный_пароль
  1. Добавить Redis:
  • Databases → Create Database
  • Name: redis-cache
  • Version: 7.0
  • Port: 6379

Подключение приложения к базе данных

После добавления базы данных:

  1. Dokploy автоматически создает внутреннюю сеть Docker.
  2. Приложения в той же Docker-сети могут обращаться к базе данных по имени сервиса.

Пример подключения в приложении:

Для Node.js:

// config/database.js
const sequelize = new Sequelize(
  process.env.DB_NAME,      // имя базы
  process.env.DB_USER,      // пользователь
  process.env.DB_PASSWORD,  // пароль
  {
    host: 'postgres-db',    // имя сервиса Dokploy
    port: 5432,
    dialect: 'postgres'
  }
);

Для Django:

# settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'dbname',
        'USER': 'appuser',
        'PASSWORD': 'пароль',
        'HOST': 'postgres-db',  # имя сервиса
        'PORT': '5432',
    }
}

Постоянное хранение данных (Volumes)

Чтобы данные не терялись при перезапуске контейнеров:

  1. Для приложений: Dokploy автоматически создает постоянный том для данных при развертывании. По умолчанию папка /app/data в контейнере монтируется на том.

  2. Для баз данных: Dokploy автоматически создает том для данных БД.

  3. Проверить расположение томов:

docker volume ls | grep dokploy
docker volume inspect dokploy_<имя>

Расширенные возможности

CI/CD с Dokploy

Dokploy поддерживает автоматическое развертывание при коммитах.

Настройка GitHub Actions:

  1. В панели Dokploy: Applications → Your App → Settings → Git

  2. Включите Auto Deploy:

  • Auto Deploy: Enabled
  • Branch: main
  1. Настройте GitHub Actions: Создайте .github/workflows/deploy.yml в репозитории:
name: Deploy to Dokploy

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Deploy to Dokploy
        uses: dokploy/github-action@v1
        with:
          deploy_token: ${{ secrets.DOKPLOY_DEPLOY_TOKEN }}
          app_id: ${{ secrets.DOKPLOY_APP_ID }}
          ssh_key: ${{ secrets.SSH_PRIVATE_KEY }}
  1. Получите токен и ID приложения:
  • В Dokploy: Applications → Your App → Settings → API

Мониторинг

Интеграция с Grafana/Prometheus:

  1. Добавьте сервис мониторинга: Создайте docker-compose.monitoring.yml:
version: '3.8'
services:
  prometheus:
    image: prom/prometheus:latest
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - "9090:9090"

  grafana:
    image: grafana/grafana:latest
    ports:
      - "3000:3000"
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=admin
  1. Настройте метрики в приложениях: Используйте middleware для сбора метрик (например, prom-client для Node.js).

Миграция приложений с Vercel/Netlify

Стратегия миграции:

  1. Синхронизируйте репозиторий с новым Git-сервисом
  2. Перенастройте переменные окружения в Dokploy
  3. Проверьте специфичные для платформы функции:
    • Vercel: Перенесите vercel.json в dokploy.config.yml или настройте вручную
    • Netlify: Перенастройте функции (serverless) как обычные API-эндпоинты
  4. Мигрируйте базы данных:
    # Пример для PostgreSQL
    pg_dump -h old-host -U user dbname > backup.sql
    docker exec -i <dokploy-db> psql -U user -dbname < backup.sql
    

Безопасность и лучшие практики

Настройка Firewall (UFW)

# Разрешить только необходимые порты
sudo ufw default deny incoming
sudo ufw default allow outgoing

# SSH (измените порт если нужно)
sudo ufw allow 22/tcp

# Веб-сервер
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Для внутренних баз данных (по умолчанию закрыты, открывайте только для конкретных IP)
# sudo ufw allow from 172.16.0.0/12 to any port 5432

# Включите UFW
sudo ufw enable

Управление доступом

Добавление пользователей:

  1. В Dokploy: Users → Create User
  2. Назначьте роли: Admin, Editor, Viewer

API-ключи:

  1. Настройки → API
  2. Сгенерируйте API-ключ для интеграций

Обновления Dokploy

Обновление Docker-контейнеров:

cd ~/dokploy
docker compose pull
docker compose up -d

Критические обновления:

  1. Следите за обновлениями на GitHub репозитории Dokploy
  2. Тестируйте обновления на staging-сервере перед продакшеном
  3. Делайте бэкапы перед обновлениями!

Резервное копирование

1. Автоматические бэкапы баз данных:

Создайте скрипт /usr/local/bin/backup-db.sh:

#!/bin/bash
BACKUP_DIR="/backup/db"
DATE=$(date +%Y%m%d_%H%M%S)
DB_CONTAINER=$(docker ps -q --filter "name=dokploy_postgres")

# PostgreSQL
if [ ! -z "$DB_CONTAINER" ]; then
    docker exec $DB_CONTAINER pg_dumpall -U postgres > $BACKUP_DIR/postgres_$DATE.sql
    gzip $BACKUP_DIR/postgres_$DATE.sql
fi

# Очистка старых бэкапов (храним 7 дней)
find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete

Сделайте его исполняемым:

chmod +x /usr/local/bin/backup-db.sh

2. Бэкап файловых томов:

# Бэкап всех томов Dokploy
docker run --rm -v dokploy_data:/volume -v $(pwd):/backup alpine tar czf /backup/dokploy_volumes_$(date +%Y%m%d).tar.gz -C /volume ./

3. Настройка cron:

# Редактируйте crontab
sudo crontab -e

# Добавьте задания (бэкап каждый день в 2:00)
0 2 * * * /usr/local/bin/backup-db.sh
0 3 * * * /usr/local/bin/backup-volumes.sh

4. Отдаленное хранение бэкапов:

# Синхронизация с S3, MinIO или другим хранилищем
aws s3 sync /backup/dokploy s3://your-bucket/backups/dokploy --delete

Безопасные переменные окружения

  1. Никогда не храните секреты в Git
  2. Используйте шифрование:
# Пример для Docker Swarm secrets (если используете)
echo "mysecret" | docker secret create db_password -
  1. Используйте HashiCorp Vault для продакшена:
# Интеграция Vault с Dokploy (через middleware)

Мониторинг безопасности

Установите Falco для обнаружения угроз:

docker run -d --name falco --restart always \
  -v /var/run/docker.sock:/host/var/run/docker.sock \
  falcosecurity/falco:latest

Логирование:

  1. Включите логирование в Dokploy
  2. Используйте ELK-стек или Loki для сбора логов:
# docker-compose.logging.yml
services:
  loki:
    image: grafana/loki:latest
  promtail:
    image: grafana/promtail:latest
    volumes:
      - /var/log:/var/log
      - /var/lib/docker/containers:/var/lib/docker/containers:ro

Заключение

Dokploy представляет собой мощную альтернативу облачным PaaS-платформам, предоставляя полный контроль над инфраструктурой без потери удобства развертывания.

Итоги:

  1. Минимальные затраты на развертывание и эксплуатацию
  2. Полный контроль над данными, безопасностью и инфраструктурой
  3. Гибкость в выборе технологий и версий
  4. Open-source гарантирует отсутствие вендорской локи

Рекомендации для продакшена:

  1. Начните с staging-сервера для тестирования конфигураций
  2. Используйте отдельные сервера для приложений и баз данных
  3. Настройте мониторинг и алертинг до первого развертывания
  4. Регулярно тестируйте бэкапы и план восстановления
  5. Подключите телеметрию (OpenTelemetry) для отладки

Готовые к использованию команды для диагностики:

# Общий статус системы
docker ps
docker system df
docker stats

# Статус Dokploy
cd ~/dokploy && docker compose ps

# Логи приложения
docker logs -f $(docker ps -q --filter "name=<app-name>")

# Мониторинг ресурсов
htop
df -h

Dokploy отлично подходит для:

  • Личных проектов и экспериментов
  • Стартапов на ранних стадиях
  • Корпоративных инсталляций с требованиями к безопасности
  • Миграции с облачных PaaS для снижения затрат

Платформа продолжает активно развиваться — следите за обновлениями на официальном GitHub и вступайте в сообщество для обмена опытом.

Поделиться:TelegramX / TwitterVK