# Как развернуть первое приложение в Coolify?

https://www.seturack.com/ru/baza-znaniy/statya/how-do-i-deploy-my-first-app-on-coolify

1. В панели откройте **Мои серверы** и нажмите на свой сервер.
2. На вкладке **Обзор** дождитесь, пока в строке **Приложение** появится «Coolify готов».
3. Откройте ссылку из строки **Адрес панели** и войдите с данными из строк **Email** и **Пароль**. Сервер и первый проект уже готовы.

## Подключение репозитория

1. На странице **Projects** откройте **My first project** и **production**, затем нажмите **New resource**.
2. Для публичного репозитория выберите **Public Git Repository**, введите адрес и нажмите **Check repository**.
3. Для частного репозитория сначала нажмите **Generate ED25519** на странице **Private Keys** в разделе **Keys & Tokens** и добавьте открытый ключ в **Deploy keys** репозитория на GitHub. Затем выберите **Private Git Repository (with Deploy Key)** и введите `git@github.com:user/project.git`.
4. Оставьте в **Build pack** значение **Railpack** и нажмите **Continue**. Coolify помечает Railpack как бета-версию, поэтому при проблемах выберите собственный Dockerfile.
5. Введите свои переменные на странице **Environment Variables** и нажмите **Deploy**. Тестовый адрес с HTTPS находится на странице **Domains**.

## Развёртывание через git push

1. На странице **Webhooks** приложения скопируйте **Webhook URL** из раздела GitHub, введите в **Webhook secret** случайное значение не короче 16 символов и сохраните.
2. На GitHub откройте **Settings** репозитория, перейдите в **Webhooks** и нажмите **Add webhook**. Укажите этот адрес в **Payload URL**, `application/json` в **Content type**, то же значение в **Secret** и выберите единственным событием push.

После этого каждый `git push` в выбранную ветку собирает и публикует новую версию. Если вы изменили переменную, имя которой начинается с `NEXT_PUBLIC_`, нажмите **Redeploy**. Если при сборке не хватает памяти, [увеличьте сервер в панели](https://www.seturack.com/ru/baza-znaniy/statya/how-to-scale-server-up-or-down).

## Ваш домен

Направьте A-запись на IP-адрес сервера. На странице **Domains** нажмите **Add domain**, выберите `https`, введите домен, сохраните и нажмите **Redeploy**. Сертификат Coolify получит сам.

## Закрытие портов 8000, 6001 и 6002

Когда панель открывается по своему HTTPS-адресу, эти порты не нужны. Docker обходит ufw для публикуемых им портов, поэтому ufw их не закроет. [Подключитесь по SSH](https://www.seturack.com/ru/baza-znaniy/statya/how-to-connect-with-ssh) и воспользуйтесь официальным способом Coolify:

`cd /data/coolify/source`

`printf 'services:\n coolify:\n ports: !override\n - "127.0.0.1:8000:8080"\n - "127.0.0.1:6001:6001"\n - "127.0.0.1:6002:6002"\n' > docker-compose.custom.yml`

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

Последняя команда обновляет установку и переходит на более новую версию, если она есть. Чтобы отменить это, удалите файл и выполните ту же команду.

## Полезно знать

Coolify подключается по SSH как root со своим ключом. Если отключить вход root или удалить строку `coolify` из `/root/.ssh/authorized_keys`, развёртывание перестанет работать.

**Сервера ещё нет?** [Закажите сервер с установленным Coolify](https://www.seturack.com/ru/coolify-vps): вы выбираете размер и платите только за выбранное.
