NU31 hosting

Хочеш додати бота для discord, чи якийсь додаток для NU31. Перше подумай чи може це бути частиною Space - тут зараз вже є наш сайт, і камабот що в discord. Якщо може бути просто частиною проєкту spcae, в такому випадку тобі не треба думати про хостинг, базу даних, доступа, бекапи і все інше. Проєкт написаний на Nuxt + type script, вже має інтеграцію з discord, підключення до mongo для зберігання текстової інфомації так і файлів через GridFS. Якщо треба додати щось по типу background job, то можеш просто завести його окремій парці проєкту з своїм docker image.

Це не підходить, треба окремо - OK, В нас вже все для цього є :)

Вимоги до проєкту наступні:

- Проєкт має DockerImage

- Проєкт частина організації NU31

Ми використовуємо підхід Infrastructure as a code. Реалізований через docker stack. Все вже зроблено для вас, просто скоріюй декілька файлів з репозиторія Space до себе в проект.

- docker-stack.yml

- .github/workflows/publish.yml

Модифікація docker stack файла

- Заміни зміні в блоціenvironment на потрібні тобі.

- Якщо ти автор додатку який не може бути одночастно запушений в двох екземплярах, заміни order з start-first на stop-first.

Зміни в github action файлі (publish.yml)

- Якщо основна гілка твого проєкту не main - заміни на актуальну назву рядок 6

- Зміни список evnvar який буде актуальний для твого проєкту, блок env.

Зміні в частині # Deployment configuration міняти не потрібно, і додавати їх в налаштуваннях проєкту в github теж не потрібно. Вони додані на рівні організації nu31hackerspace. На сервері вже піднята mongo на reverse proxy якщо потрібні заміни в mongo або caddy звернися до Vova Stelmashchuk. Всі vars та secrets що потрібні твому додатку додай в GitHub -> Settings -> Actions -> New secret / New variable

Якщо твій проєкт не в організації nu31hackerspace, можеш звернутися до Vova Stelmashchuk для додавання private ssh key на host ip для твого репозиторію.