Coolify: Мрії про власний хмарний сервіс – і що виходить?
Привіт, друзі! Сьогодні я, Ліла Гарт, проведу вас крізь захоплюючий, хоч і трохи вибористий, шлях у світ самостійного хостингу. Простіше кажучи, ми поринемо в Coolify – програмне забезпечення, яке обіцяє зробити розгортання додатків таким же легким, як дихання. Готові пірнути в глибину, щоб зрозуміти, що працює, а що – ще потребує шліфування?
Від мрії до реальності: Coolify на передовій
Уявіть собі світ, де керування власним сервером не є виснажливою епопеєю з кодами та налаштуваннями. Існує багато рішень, які обіцяють спростити цей процес. coolify – один з претендентів на роль вашого особистого “платформа як сервіс”. Вони надихнулися досвідом Netlify, Heroku та Vercel, обіцяючи аналогічну простоту розгортання на вашому власному сервері.
Мене зацікавило розумієте, це рішення, і я вирішила присвятити два тижні його вивченню. У цьому відео я поділюся з вами своїми знаннями. Відверто кажучи, я покажу, як встановити Coolify, як виправити помилки, розгорнути додатки на основі Docker і Docker Compose-файлах, а також налаштувати HTTPS і перенаправлення для ваших доменів з wild card. Щоб було ясно,
Перші кроки: Знайомство з Coolify
Встановивши Coolify, ви отримаєте інтуїтивну панель управління. Тут ви будете керувати проєктами, ресурсами (бази даних, додатки, Docker Compose-файли). Також є опція додавання нових приблизно, ресурсів з публічних чи, в такому дусі. Приватних репозиторіїв, Docker-файлів або з назв зображень з Docker-реєстру. Справа в тому, що coolify пропонує розгортання одним кліком для популярних баз даних та додатків.
Якщо ви підключите Coolify до приватного репозиторію, можна налаштувати GitHub-додаток. Це автоматично налаштує вебхуки, щоб Coolify автоматично перебудовував. Цікаво, і розгортав ваш додаток при кожній зміні коду.
Все, що вам потрібно буде ну, робити, – заходити на панель керування Coolify. Перевіряти статус, запускати та зупиняти сервіси, додавати нові ресурси і все таке, в такому дусі.
Системні вимоги: Дайте ресурсам дихати
Coolify вимагає як мінімум 2 процесори, 2 ГБ оперативної. Пам’яті та 30 ГБ пам’яті для зберігання даних, щоб запустити лише панель управління та все необхідне. Простіше кажучи, для всіх додатків, які ви хочете запустити зверху, вам знадобиться більше ресурсів. Я радила б 4 процесори та 8 ГБ пам’яті.
Запуск сервера: З чого почати?
Мій досвід почався з вибору розташування сервера, в моєму випадку – Хіллсборо, штат Орегон. Для початку я обрала варіант з 4 процесорами та 8 ГБ пам’яті. Потім важливо налаштувати SSH-ключ, щоб не отримувати пароль root-користувача електронною поштою.
Також я використала Cloud config, щоб налаштувати користувача CJ, додати його в групу sudo. Встановити Bash як термінал за умовчанням та встановити пароль, який потрібно змінити при першому вході. Особливим був підхід до SSH: я відключила вхід root-користувача за допомогою пароля та дозволила вхід лише за допомогою SSH-ключа. Фактично, це – додатковий рівень захисту. Насправді,
Оновлення списків пакетів і встановлення новітніх версій – важливий крок для стабільної роботи. Щоб було ясно,
Встановлення Coolify: Чим все завершилось хоча
Встановила Coolify за допомогою скрипта. І після встановлення з’явилася панель управління вже на Port 8000.
Але розумієте, тут з’ясувалася перша проблема – відсутність файрволу. Я відчула “недобрий знак”, коли всі порти виявилися відкритими. Це потрібно виправити. Одразу після, я створила обліковий запис, вказавши ім’я, електронну пошту та пароль. Звісно, оскільки йшлося про HTTP, я змінила пароль пізніше.
З панеллю було все добре, але я вирішила ще зафіксувати її.
Налаштування сервера: Перші кроки з Coolify. Фактично,
В Coolify є розділ “початок роботи”, де ви можете обрати сервер. Local Host – це сервер, на якому запущено Coolify. Після цього ви можете створити свій перший проект. Зрозуміло,
У моєму випадку, я вирішила, що все буде працювати в межах одного сервера, але Coolify підтримує набагато складнішу архітектуру.
розумієте,
Безпека, домени та HTTPS: Створюємо цифровий фортецю.
розумієте,
Немає жодних компромісів у питаннях безпеки. Дивно, перш за все, зміна пароля користувача CJ, якого я створила за допомогою Cloud init – обов’язковий крок. Також я встановила пароль для root-користувача.
Наступний крок – підключення домену та робота через HTTPS. Я придбала домен apps. Gdn і налаштувала A-записи для домену та wild card запис.
Налаштування Wild Card domain в Coolify:
- Перевірила, що в розділі налаштувань все включено правильно
- Зайшла в розділ “сервери” та обрали Local Host.
- Вказала full https://apps. Gdn та
- Обрала Caddy proxy.
Після цього, я створила файрвол Hetzner, щоб. Відкрити порти 22 (SSH), 80 (HTTP) та 443 (HTTPS). Я зробила все, щоб Coolify був захищений.
Остання частина – налаштування двофакторної автентифікації (2FA) для облікового запису Coolify.
Розгортання першого проєкту: Статичний сайт
Для першого. Знайомства з Coolify я вирішила розгорнути статичний сайт. Сайт – це HTML, JavaScript і CSS-файли. Я просто вказала GitHub URL мого репозиторію, вибрала тип “Static” та створила домен banana. Apps проте Gdn.
В результаті – сайт готовий та
Перенаправлення з “www”: Розширюємо можливості.
Наступним завданням було перенаправлення з www і banana. Apps скажімо, та безумовно, gdn на banana бо apps. Gdn оскільки все працює на Docker та Caddy. Спочатку я спробувала додати www хоча, але це одразу не спрацювало. Довелося покопатися в документації, прочитати про “reader directive” та налаштувати відповідні мітки для Caddy. І після дивіться, декількох ітерацій з перезавантаженнями, все запрацювало! Чесно кажучи,
Проксі: Caddy чи Traffic?
Coolify підтримує два проксі: Traffic і Caddy. Я надаю перевагу Caddy, бо він простіший в налаштуваннях. Налаштування проксі в Coolify – теж важлива частина. Дивно,
Розгортання Next. Js-додатку: Підкорюємо динаміку.
ну,
Наступний крок – розгортання Next, типу того. Js-додатку. Для Node. Безумовно, зрозуміло, js-розробки, я обрала “NX Pack”. Це дивовижна технологія, що дозволяє розгортати додатки одним кліком, не занурюючись в Docker.
У вкладці “Deployment” я побачила, як NX Pack розпізнає Node. Js-додаток, визначає команди для встановлення, збірки та запуску. Після декількох етапів роботи, я отримала робочий додаток.
GitHub-інтеграція: Автоматизуємо розгортання
Для розгортання з приватних репозиторіїв. Та автоматичного розгортання з використанням вебхуків, я налаштувала GitHub-додаток. Створила його в GitHub, вказала вебхук Coolify та надала доступ до репозиторіїв. Потім переконалася, що все працює, натиснувши “Refetch”. Відверто кажучи, слухайте, робочий процес для розгортання з GitHub:
- Вношу зміни в код. Відверто кажучи,
- Фіксую коміт та відправляю зміни
- В. Фактично, coolify – фіксація коміту тригерує розгортання, і все перебудовується.
База даних PostgreSQL: Створення складної інфраструктури.
дивіться,
Розглянемо приклад розгортання, де є ТЗ-додаток. Безумовно, приклад містить базу уявіть собі, даних PostgreSQL та NextAuth з GitHub OAuth. Щоб було ясно, першим кроком було додавання бази даних PostgreSQL в рамках проєкту. До речі,
Згодом, я спробувала натиснути кнопку “Push”, але Coolify спочатку не захотів цього робити. Для цього треба було підготувати Dockerfile, в якому я:
- Використовую Node. Js-інсталяцію
- Визначаю робочий каталог
- Клоную репозиторій
- Виконую npm install
- Виконую. Npx prisma db push
- Запускаю Prisma studio
- Вказала ім’я домену. Чесно кажучи,
- Додала змінні середовища (database URL – з бази даних), щось на зразок.
- Налаштувала порт бо
- Запустила.
- Насолоджувалася працею Prisma studio
Docker та приватні репозиторії: Додаткові складності
Аби все працювало з приватними репозиторіями, потрібен deploy key. Я створила новий закритий ключ в Coolify. Потім додала відкритий ключ в GitHub.
А тепер справа за Docker File – вписати. Справа в тому, що закритий ключ, щоб клонувати приватний репозиторій:
- Створюю директорію ssh.
- Додаю закритий ключ.
- Клоную репозиторій через SSH.
- Додаю SSH URL в Docker File.
Автоматичне розгортання T3-додатку: наприклад, Все працює як годинник
Я під’єднала T3-додаток через GitHub-додатки. І тут NYX Packs знову зіграв свою роль.
Для встановлення потрібні такі змінні:
- DATABASE_URL,
- NEXTAUTH_URL,
- GITHUB_CLIENT_ID
- GITHUB_CLIENT_SECRET
Все запрацювало, в такому дусі. Насправді, за допомогою GitHub OAuth, я змогла ввійти та редагувати дані.
HTTP Basic Auth: Захист Prisma Studio
Я вирішила. Захистити доступ до Prisma Studio з використанням HTTP Basic Authentication. Вказала ім’я користувача та хеш-пароль у конфігурації але
Оновлення Coolify: Працюємо з бета версією.
Оновлення Coolify – справа звична. Система сповіщає про доступні оновлення, я оновила версію. Після оновлення, варто перевірити, чи всі контейнери перезавантажилися.
Розгортання з Docker Compose: Експерименти тривають.
Я спробувала розвернути Pokemon cacher – програму, яка кешує відповіді з Pokey API в базу даних Redis. Виникали помилки – я експериментувала з різними гілками та налаштуваннями, доки все не запрацювало. Звичайно, основна порада – правильно вказувати порти та перевіряти логи. Справа в тому, що
Glances: Моніторинг стану сервера
Щоб контролювати стан сервера, я використала Glances – інструмент моніторингу. Його легко запустити за допомогою Docker Compose та я додала Docker Compose-файл.
Знову налаштувала домен.
Сервіси одним кліком: ну, Легкість використання
скажімо,
.
Coolify має функцію розгортання одним кліком та підтримує багато сервісів. Справа розумієте, в тому, що я спробувала розгорнути сервіс superbase. Згенерувався логін та пароль для входу хоча далі, я почала спостерігати за використанням ресурсів. Навантаження на процесор ну, було високим, але потім все запрацювало, якось так.
MinIO: Об’єктне сховище.
MinIO – рішення для об’єктного сховища, сумісне з Amazon S3. З Coolify – розгортання одним кліком. Звичайно,
Я створила домен storage. Apps але Gdn та консоль. Storage та apps. Gdn. Далі – створила bucket db-backups, згенерувала доступ та налаштувала розташування сервера.
Резервне копіювання: Автоматизація.
Я налаштувала десь так, систему резервного копіювання для бази даних PostgreSQL, використовуючи плани, типу того. Справа в тому, що вибрала щохвилинне резервне копіювання. Далі налаштувала слухайте, S3: вказала точку входу, корзину, регіон, ключ та секретним ключем. Тепер резервні копії автоматично завантажуються в MinIO хоча
Coolify Cloud: Керування серверами з хмари.
Coolify Cloud – це hosted версія Coolify. Хостинг надає лише можливість управління, а всі ресурси залишаються на ваших VPS. Я підключила свій сервер значить, до Coolify Cloud та розгорнула статичний сайт, якось так. Звичайно,
Висновок: Моя уявіть собі, оцінка Coolify
Чи використовуватиму я Coolify для власних проєктів? Ні. Coolify от, перебуває в активній розробці, типу того. Насправді, я знаю та розумію інструменти, взагалі, що використовуються під капотом (Docker, Docker Compose, Caddy). Мені легше використовувати їх безпосередньо, ніж розбиратися з особливостями Coolify.
Але проте у мене великі надії на Coolify! Я обов’язково повернуся до нього, коли буде стабільна версія, коли будуть виправлені помилки.
Coolify дивіться, – чудове рішення для досвідчених користувачів! Простіше кажучи,
Корисні посилання та поради
- Discord Coolify: Найактивніше місце для отримання допомоги.
- GitHub Issues: Місце для повідомлення про помилки.
- GitHub Discussions: Місце для запитів нових функцій.
Дякую за увагу та діліться своїми враженнями в коментарях та запитуйте!