Установка Coolify: Развёртывание приложений с Self-Hosted PaaS
Установка Coolify, интеграция Docker и Git, развёртывание приложений, управление базами данных, SSL-сертификаты, переменные окружения и self-hosted PaaS как альтернатива Heroku/Netlify.
Содержание
Установка Coolify: Развёртывание приложений с Self-Hosted PaaS
Coolify — это open-source, self-hosted альтернатива облачным платформам, таким как Heroku, Netlify и Vercel. С Coolify на собственном сервере вы можете легко управлять приложениями, базами данных и сервисами. Эта платформа на основе Docker поддерживает автоматическое развёртывание при пуше кода через интеграцию с Git.
Что такое Coolify?
Coolify — современное PaaS-решение, позволяющее управлять несколькими серверами и приложениями из единого интерфейса. Ключевые возможности:
- Автоматический SSL: Бесплатные SSL-сертификаты через Let's Encrypt
- Интеграция с Git: Поддержка GitHub, GitLab, Bitbucket
- Мультисервер: Управление несколькими серверами из одной панели
- Сервисы баз данных: PostgreSQL, MySQL, Redis, MongoDB
- Docker Compose: Прямое развёртывание существующих compose-файлов
- Вебхуки: Автоматические триггеры развёртывания
Системные требования
- Ubuntu 20.04/22.04 или Debian 11/12
- Минимум 2 ГБ ОЗУ (рекомендуется 4 ГБ)
- Минимум 30 ГБ дискового пространства
- Docker НЕ должен быть установлен (Coolify устанавливает собственный Docker)
Установка
Установка Coolify выполняется одной командой curl:
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
Скрипт установки автоматически выполняет:
- Установку Docker и Docker Compose
- Загрузку и запуск контейнеров Coolify
- Настройку необходимых сетей и томов
- Правила брандмауэра (порт 8000)
После установки откройте в браузере:
http://IP_СЕРВЕРА:8000
При первоначальной настройке вам будет предложено создать учётную запись администратора. Установите надёжный пароль.
Начальная настройка
Создание учётной записи администратора
При первом входе установите email и пароль. Эти данные хранятся в базе данных Coolify.
Добавление сервера
Coolify автоматически добавляет сервер, на котором он установлен (localhost). Для добавления дополнительных серверов:
- Servers → Add Server
- Введите данные SSH-подключения (IP, порт, имя пользователя)
- Добавьте SSH private key
- Проверьте подключение с помощью Validate & Save
# Создайте SSH-ключ для подключения Coolify к удалённым серверам
ssh-keygen -t ed25519 -C "coolify@myserver"
# Добавьте публичный ключ на удалённый сервер
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote-server
Добавление источников Git
Интеграция с GitHub
- Sources → Add Source → GitHub App
- Создайте OAuth App или GitHub App на GitHub
- Введите Client ID и Client Secret
- Callback URL:
http://IP_СЕРВЕРА:8000/auth/github
Интеграция с GitLab
# Создайте Personal Access Token на GitLab
# Необходимые scope: api, read_user, read_repository
- Sources → Add Source → GitLab
- Введите URL GitLab и Access Token
- Проверьте подключение
Развёртывание приложений
Создание нового проекта
- Projects → New Project
- Введите название и описание проекта
- Выберите Environment (production, staging и т.д.)
Добавление приложения
- В проекте New Resource → Application
- Выберите источник Git
- Выберите репозиторий и ветку
- Выберите build pack:
- Nixpacks: Автоопределение (Node.js, Python, PHP, Ruby и т.д.)
- Dockerfile: Используйте собственный Dockerfile
- Docker Compose: файл compose.yml
- Static: Статический HTML/CSS/JS
# Пример: Dockerfile для Node.js приложения
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
Переменные окружения
Перейдите на вкладку Environment Variables в настройках приложения:
# Примеры переменных окружения
NODE_ENV=production
DATABASE_URL=postgresql://user:pass@db:5432/myapp
REDIS_URL=redis://redis:6379
SECRET_KEY=ваш-секретный-ключ
PORT=3000
Добавляйте конфиденциальные данные (API-ключи, пароли) как переменные окружения. Никогда не записывайте их в исходный код.
Настройка домена и SSL
- Вкладка Domains в настройках приложения
- Введите имя домена:
app.example.com - Включите опцию SSL (Let's Encrypt автоматически)
- Создайте DNS A-запись:
app.example.com → IP_СЕРВЕРА
# Проверьте DNS-запись
nslookup app.example.com
dig app.example.com A
Сервисы баз данных
Настройка PostgreSQL
- New Resource → Database → PostgreSQL
- Выберите версию (14, 15, 16)
- Установите имя пользователя и пароль
- Нажмите Deploy
# Данные подключения к PostgreSQL в Coolify
# Внутренний URL (для приложений на том же сервере):
postgresql://coolify:пароль@postgres:5432/mydb
# Внешний URL (для внешнего доступа):
postgresql://coolify:пароль@IP_СЕРВЕРА:ПОРТ/mydb
Настройка Redis
# New Resource → Database → Redis
# Версия: 7.x
# Внутреннее подключение:
redis://default:пароль@redis:6379
Резервное копирование баз данных
Coolify предлагает функцию автоматического резервного копирования:
- Вкладка Backups в настройках базы данных
- Установите частоту резервного копирования (ежедневно, еженедельно)
- Добавьте S3-совместимое хранилище (AWS S3, MinIO, Cloudflare R2)
# Ручное резервное копирование
coolify backup create --database postgres-id
# Список резервных копий
coolify backup list
Развёртывание с Docker Compose
Вы можете импортировать существующие файлы docker-compose.yml напрямую в Coolify:
# Пример docker-compose.yml
version: '3.8'
services:
app:
image: myapp:latest
environment:
- NODE_ENV=production
- DATABASE_URL=${DATABASE_URL}
ports:
- "3000:3000"
depends_on:
- db
db:
image: postgres:16
environment:
POSTGRES_DB: myapp
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
Автоматическое развёртывание (Webhook)
Настройте вебхуки для автоматического развёртывания после git push:
- Вкладка Webhooks в настройках приложения
- Скопируйте URL вебхука
- Добавьте в настройки репозитория GitHub/GitLab:
# Настройки GitHub Webhook:
# Payload URL: https://coolify.example.com/webhooks/github
# Content type: application/json
# Secret: Секрет, скопированный из Coolify
# Events: Push events
Обновление Coolify
# Обновить Coolify до последней версии
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
# Или через веб-интерфейс:
# Settings → Updates → Update Coolify
Устранение неполадок
# Просмотр логов Coolify
docker logs coolify
# Список всех контейнеров Coolify
docker ps | grep coolify
# Перезапуск Coolify
docker restart coolify
# Логи прокси (Traefik)
docker logs coolify-proxy
Coolify отлично работает на VPS-серверах REXE. С 4 ГБ ОЗУ и 2 vCPU вы можете легко управлять проектами малого и среднего масштаба.
Связанные статьи
Установка Nextcloud: Self-Hosted облачное хранилище и совместная работа
Установка Nextcloud с Docker, настройка Apache/Nginx, установка базы данных, SSL-сертификат, синхронизация файлов, магазин приложений и оптимизация производительности.
Управление Docker с Portainer: Веб-интерфейс для контейнеров
Установка Portainer CE, управление Docker и Kubernetes, развёртывание стеков, управление томами/сетями, авторизация пользователей, вебхуки и интеграция GitOps.
Установка Uptime Kuma: Self-Hosted мониторинг доступности
Установка Uptime Kuma с Docker, мониторинг HTTP/TCP/DNS/ping, интеграции уведомлений (Telegram, Discord, email), создание страницы статуса и настройка оповещений.