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:

    1. Перевірила, що в розділі налаштувань все включено правильно
    2. Зайшла в розділ “сервери” та обрали Local Host.
    3. Вказала full https://apps. Gdn та
    4. Обрала 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:

    1. Вношу зміни в код. Відверто кажучи,
    2. Фіксую коміт та відправляю зміни
    3. В. Фактично, 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 – вписати. Справа в тому, що закритий ключ, щоб клонувати приватний репозиторій:

    1. Створюю директорію ssh.
    2. Додаю закритий ключ.
    3. Клоную репозиторій через SSH.
    4. Додаю 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: Місце для запитів нових функцій.

    Дякую за увагу та діліться своїми враженнями в коментарях та запитуйте!

    Поділитися.
    0 0 голоси
    Рейтинг статті
    Підписатися
    Сповістити про
    guest
    0 Коментарі
    Найстаріші
    Найновіше Найбільше голосів
    Зворотній зв'язок в режимі реального часу
    Переглянути всі коментарі
    0
    Буду рада вашим думкам, прокоментуйте.x