Dokploy: Гайд по хостингу вместо Vercel, Netlify
Узнайте, как установить и настроить Dokploy — открытую самостийную платформу для хостинга приложений. Гайд по развертыванию, CI/CD и безопасности для homelab.
Подготовка сервера
Обновите системные пакеты и установите необходимые утилиты. Убедитесь, что порты 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: Подготовка сервера
- Обновите систему:
sudo apt update && sudo apt upgrade -y
- Установите необходимые пакеты:
sudo apt install -y curl wget git
- Проверьте, что порты 80 и 443 свободны:
sudo ss -tuln | grep -E ':(80|443)'
- Настройте хост-имен (опционально):
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
- Создайте директорию для Dokploy:
mkdir -p ~/dokploy && cd ~/dokploy
- Скачайте конфигурационные файлы:
# Основной 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
- Настройте переменные окружения:
# Отредактируйте .env файл
nano .env
Основные переменные:
# Админские данные
DOKPLOY_ADMIN_USERNAME=admin
DOKPLOY_ADMIN_PASSWORD=создай_надежный_пароль
# Домен для панели управления
DOKPLOY_DOMAIN=dokploy.example.com
# Секретные ключи (генерируются автоматически)
DOKPLOY_SECRET_KEY=auto_generated
# База данных Postgres для Dokploy
POSTGRES_PASSWORD=создай_надежный_пароль_бд
- Запустите Dokploy:
docker compose up -d
Шаг 4: Проверка работы
- Проверьте контейнеры:
docker ps
- Проверьте логи:
docker compose logs -f
- Ожидайте 2-3 минуты пока Dokploy инициализируется. При первом запуске могут быть задержки с генерацией SSL-сертификатов.
Первоначальная настройка
Создание аккаунта
-
Откройте панель управления: Перейдите по адресу:
https://dokploy.example.com(илиhttp://<ваш_IP>если домен еще не настроен) -
Первый вход: Используйте данные из
.envфайла (по умолчаниюadmin/ пароль из переменнойDOKPLOY_ADMIN_PASSWORD) -
Первый вход в панель:
Основная панель управления Dokploy
Настройка доменов
Для панели управления (рекомендуется):
- Укажите домен для панели:
- В настройках Dokploy →
Settings→Domain - Введите домен (например,
dokploy.example.com) - Дождитесь автоматического получения SSL-сертификата
- Настройте DNS: Создайте A-запись, указывающую на IP вашего сервера:
dokploy.example.com. 300 IN A 192.0.2.1
Для приложений:
- Добавьте домен при добавлении приложения (см. раздел "Развертывание приложений")
- Или вручную в настройках доменов: Settings → Domains
Настройка SSL (Let's Encrypt)
Для автоматического получения SSL-сертификатов:
- Проверьте, что порт 443 доступен:
sudo ufw allow 443/tcp
- Если используете Cloudflare или подобные CDN:
- Убедитесь, что режим проксирования выключен (Proxy DNS-only)
- Или настройте передачу заголовков
- Для самоподписанных сертификатов (для тестов):
- В настройках приложения →
Security→SSL→Self-signed
Развертывание приложений
Подготовка репозитория
Dokploy развертывает приложения из Git-репозиториев. Подготовьте ваш проект:
- Проект Node.js:
// package.json
{
"name": "my-app",
"version": "1.0.0",
"scripts": {
"build": "npm run build", // Если нужно
"start": "node server.js" // Команда запуска
}
}
- Папка Dockerfile (опционально):
# Dockerfile для Node.js
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
- Загрузите проект на GitHub/GitLab/Bitbucket
Развертывание Node.js приложения
-
В панели Dokploy:
Applications→Create Application -
Шаг 1: Общие настройки
- Name:
my-node-app - Git Provider: GitHub/GitLab
- Repository:
username/repo-name - Branch:
main - Build Context:
.(корень репозитория)
- Шаг 2: Команды
Dokploy анализирует
package.jsonавтоматически, но можно указать вручную:
- Build Command:
npm install && npm run build(если есть сборка) - Start Command:
npm start(илиnode server.js) - Port:
3000(порт приложения)
- Шаг 3: Domains
- Добавьте домен:
myapp.example.com - Летско будет доступен после развертывания
- Шаг 4: Environment Variables
- Добавьте переменные окружения (если нужны):
NODE_ENV=production
DATABASE_URL=postgresql://user:pass@localhost/dbname
- Нажмите
Create Application
Dokploy автоматически:
- Клонирует репозиторий
- Строит образ (если есть Dockerfile)
- Запускает контейнер
- Настроит SSL для домена
- Смонтирует постоянные тома (если есть папка
/app/data)
Развертывание Python приложения (Flask/Django)
- Подготовьте репозиторий:
my-django-app/
├── manage.py
├── requirements.txt
├── Dockerfile (опционально)
└── static/ (для сборки)
- 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"]
- Настройки в 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 приложения
- Репозиторий:
my-go-app/
├── main.go
├── go.mod
├── go.sum
└── Dockerfile
- 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"]
- Настройки в Dokploy:
- Build Command:
go build -o main . - Start Command:
./main - Port:
8080
Развертывание статического сайта (React/Vue)
- 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;"]
- Настройки в Dokploy:
- Build Command:
npm install && npm run build - Start Command:
nginx -g 'daemon off;' - Port:
80
Управление базами данных и хранилищами
Встроенные базы данных
Dokploy поддерживает добавление баз данных через интерфейс.
- Добавить PostgreSQL:
Databases→Create Database- Name:
postgres-db - Version:
15.3 - User:
appuser - Password:
создай_надежный_пароль - Port:
5432(можно указать любой свободный)
- Добавить MySQL:
Databases→Create Database- Name:
mysql-db - Version:
8.0 - User:
root(или создайте обычного пользователя) - Password:
создай_надежный_пароль
- Добавить Redis:
Databases→Create Database- Name:
redis-cache - Version:
7.0 - Port:
6379
Подключение приложения к базе данных
После добавления базы данных:
- Dokploy автоматически создает внутреннюю сеть Docker.
- Приложения в той же 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)
Чтобы данные не терялись при перезапуске контейнеров:
-
Для приложений: Dokploy автоматически создает постоянный том для данных при развертывании. По умолчанию папка
/app/dataв контейнере монтируется на том. -
Для баз данных: Dokploy автоматически создает том для данных БД.
-
Проверить расположение томов:
docker volume ls | grep dokploy
docker volume inspect dokploy_<имя>
Расширенные возможности
CI/CD с Dokploy
Dokploy поддерживает автоматическое развертывание при коммитах.
Настройка GitHub Actions:
-
В панели Dokploy:
Applications→Your App→Settings→Git -
Включите Auto Deploy:
- Auto Deploy:
Enabled - Branch:
main
- Настройте 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 }}
- Получите токен и ID приложения:
- В Dokploy:
Applications→Your App→Settings→API
Мониторинг
Интеграция с Grafana/Prometheus:
- Добавьте сервис мониторинга:
Создайте
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
- Настройте метрики в приложениях:
Используйте middleware для сбора метрик (например,
prom-clientдля Node.js).
Миграция приложений с Vercel/Netlify
Стратегия миграции:
- Синхронизируйте репозиторий с новым Git-сервисом
- Перенастройте переменные окружения в Dokploy
- Проверьте специфичные для платформы функции:
- Vercel: Перенесите
vercel.jsonвdokploy.config.ymlили настройте вручную - Netlify: Перенастройте функции (serverless) как обычные API-эндпоинты
- Vercel: Перенесите
- Мигрируйте базы данных:
# Пример для 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
Управление доступом
Добавление пользователей:
- В Dokploy:
Users→Create User - Назначьте роли:
Admin,Editor,Viewer
API-ключи:
- Настройки →
API - Сгенерируйте API-ключ для интеграций
Обновления Dokploy
Обновление Docker-контейнеров:
cd ~/dokploy
docker compose pull
docker compose up -d
Критические обновления:
- Следите за обновлениями на GitHub репозитории Dokploy
- Тестируйте обновления на staging-сервере перед продакшеном
- Делайте бэкапы перед обновлениями!
Резервное копирование
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
Безопасные переменные окружения
- Никогда не храните секреты в Git
- Используйте шифрование:
# Пример для Docker Swarm secrets (если используете)
echo "mysecret" | docker secret create db_password -
- Используйте 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
Логирование:
- Включите логирование в Dokploy
- Используйте 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-платформам, предоставляя полный контроль над инфраструктурой без потери удобства развертывания.
Итоги:
- Минимальные затраты на развертывание и эксплуатацию
- Полный контроль над данными, безопасностью и инфраструктурой
- Гибкость в выборе технологий и версий
- Open-source гарантирует отсутствие вендорской локи
Рекомендации для продакшена:
- Начните с staging-сервера для тестирования конфигураций
- Используйте отдельные сервера для приложений и баз данных
- Настройте мониторинг и алертинг до первого развертывания
- Регулярно тестируйте бэкапы и план восстановления
- Подключите телеметрию (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 и вступайте в сообщество для обмена опытом.