Перейти к основному содержимому
Вернуться в категорию

Установка Coolify: Развёртывание приложений с Self-Hosted PaaS

Установка Coolify, интеграция Docker и Git, развёртывание приложений, управление базами данных, SSL-сертификаты, переменные окружения и self-hosted PaaS как альтернатива Heroku/Netlify.

Время чтения: 15 мин Самостоятельный хостинг
coolifypaasself-hostingdeploymentdockergitssl

Содержание

Установка 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:

hljs bash
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash

Скрипт установки автоматически выполняет:

  • Установку Docker и Docker Compose
  • Загрузку и запуск контейнеров Coolify
  • Настройку необходимых сетей и томов
  • Правила брандмауэра (порт 8000)

После установки откройте в браузере:

http://IP_СЕРВЕРА:8000

При первоначальной настройке вам будет предложено создать учётную запись администратора. Установите надёжный пароль.

Начальная настройка

Создание учётной записи администратора

При первом входе установите email и пароль. Эти данные хранятся в базе данных Coolify.

Добавление сервера

Coolify автоматически добавляет сервер, на котором он установлен (localhost). Для добавления дополнительных серверов:

  1. ServersAdd Server
  2. Введите данные SSH-подключения (IP, порт, имя пользователя)
  3. Добавьте SSH private key
  4. Проверьте подключение с помощью Validate & Save
hljs bash
# Создайте SSH-ключ для подключения Coolify к удалённым серверам
ssh-keygen -t ed25519 -C "coolify@myserver"
# Добавьте публичный ключ на удалённый сервер
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote-server

Добавление источников Git

Интеграция с GitHub

  1. SourcesAdd SourceGitHub App
  2. Создайте OAuth App или GitHub App на GitHub
  3. Введите Client ID и Client Secret
  4. Callback URL: http://IP_СЕРВЕРА:8000/auth/github

Интеграция с GitLab

hljs bash
# Создайте Personal Access Token на GitLab
# Необходимые scope: api, read_user, read_repository
  1. SourcesAdd SourceGitLab
  2. Введите URL GitLab и Access Token
  3. Проверьте подключение

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

Создание нового проекта

  1. ProjectsNew Project
  2. Введите название и описание проекта
  3. Выберите Environment (production, staging и т.д.)

Добавление приложения

  1. В проекте New ResourceApplication
  2. Выберите источник Git
  3. Выберите репозиторий и ветку
  4. Выберите build pack:
    • Nixpacks: Автоопределение (Node.js, Python, PHP, Ruby и т.д.)
    • Dockerfile: Используйте собственный Dockerfile
    • Docker Compose: файл compose.yml
    • Static: Статический HTML/CSS/JS
hljs yaml
# Пример: 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 в настройках приложения:

hljs bash
# Примеры переменных окружения
NODE_ENV=production
DATABASE_URL=postgresql://user:pass@db:5432/myapp
REDIS_URL=redis://redis:6379
SECRET_KEY=ваш-секретный-ключ
PORT=3000

Добавляйте конфиденциальные данные (API-ключи, пароли) как переменные окружения. Никогда не записывайте их в исходный код.

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

  1. Вкладка Domains в настройках приложения
  2. Введите имя домена: app.example.com
  3. Включите опцию SSL (Let's Encrypt автоматически)
  4. Создайте DNS A-запись: app.example.com → IP_СЕРВЕРА
hljs bash
# Проверьте DNS-запись
nslookup app.example.com
dig app.example.com A

Сервисы баз данных

Настройка PostgreSQL

  1. New ResourceDatabasePostgreSQL
  2. Выберите версию (14, 15, 16)
  3. Установите имя пользователя и пароль
  4. Нажмите Deploy
hljs bash
# Данные подключения к PostgreSQL в Coolify
# Внутренний URL (для приложений на том же сервере):
postgresql://coolify:пароль@postgres:5432/mydb

# Внешний URL (для внешнего доступа):
postgresql://coolify:пароль@IP_СЕРВЕРА:ПОРТ/mydb

Настройка Redis

hljs bash
# New Resource → Database → Redis
# Версия: 7.x
# Внутреннее подключение:
redis://default:пароль@redis:6379

Резервное копирование баз данных

Coolify предлагает функцию автоматического резервного копирования:

  1. Вкладка Backups в настройках базы данных
  2. Установите частоту резервного копирования (ежедневно, еженедельно)
  3. Добавьте S3-совместимое хранилище (AWS S3, MinIO, Cloudflare R2)
hljs bash
# Ручное резервное копирование
coolify backup create --database postgres-id

# Список резервных копий
coolify backup list

Развёртывание с Docker Compose

Вы можете импортировать существующие файлы docker-compose.yml напрямую в Coolify:

hljs yaml
# Пример 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:

  1. Вкладка Webhooks в настройках приложения
  2. Скопируйте URL вебхука
  3. Добавьте в настройки репозитория GitHub/GitLab:
hljs bash
# Настройки GitHub Webhook:
# Payload URL: https://coolify.example.com/webhooks/github
# Content type: application/json
# Secret: Секрет, скопированный из Coolify
# Events: Push events

Обновление Coolify

hljs bash
# Обновить Coolify до последней версии
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash

# Или через веб-интерфейс:
# Settings → Updates → Update Coolify

Устранение неполадок

hljs bash
# Просмотр логов Coolify
docker logs coolify

# Список всех контейнеров Coolify
docker ps | grep coolify

# Перезапуск Coolify
docker restart coolify

# Логи прокси (Traefik)
docker logs coolify-proxy

Coolify отлично работает на VPS-серверах REXE. С 4 ГБ ОЗУ и 2 vCPU вы можете легко управлять проектами малого и среднего масштаба.