Может быть вы всегда хотели своё собственное "облако", легко ставить на нём разное ПО и использовать Open и не очень Open Source?
Что, если оно ближе к вам чем вы думаете. Хотя и некоторые хостинг-провайдеры предоставляют возможность установить Minecraft или Valheim сервер, а так-же ряд других инструментов, чтобы весело проводить время, но откровенно говоря - этого будет мало:
А ещё эти предустановленные образы не будут работать на одном сервере одновременно - им будут нужны отдельные VPS для каждой программы.
Знакомство с Docker
Для того, чтобы ставить разное ПО на один сервер - нужен либо Docker, либо делать это всё вручную на своей Linux и уметь настраивать всё самим, погружаясь во все нюансы работы веб-сервера, языков программирования и нюансов конфигурации той или иной программы. При этом вы даже можете ещё не знать хотите ли вы эту программу или какую-нибудь другую.
Если вы уже использовали Docker, то возможно слышали о Kubernetes - серьезное ПО для серьезных дядь, умеющих его настраивать. Но нам нужны программы, а не настройка сложной архаичной корпоративной инфраструктуры.
Не Куб, а Swarm
А если вы слышали о "кубах", то вероятно и краем уха видели что-то про Docker Swarm. Это концептуально немного другая технология, не совместимая с docker-compose и kubernetes и о том, как работать с контейнерам под docker-swarm (включать, выключать, выводить список, смотреть логи) можно глянуть на этой странице: https://caprover.com/docs/troubleshooting.html
Работа docker swarm, да и самого CapRover подразумевает некоторое distributed-решение, при котором возможно запускать несколько инстансов выбранного ПО, работающих одновременно на одном или на разных caprover-серверах. Я этого никогда ещё не пробовал, потому что не понял как это мне поможет, к примеру в работе базы данных, ведь ей нужен исключительный доступ к файлам и своя настройка репликации. Но, а у CapRover и Docker Swarm, по крайне мере, это всё есть - cap его установить на разных машинах и связать их как главную и подчиненную.
С чего начать?
Основной вопрос - насколько это сложно? Будет ли это дорого? Что надо знать и уметь уже, перед тем как это попробовать всё сделать?
- Сложно по шкале от 1 до 3: 2.
- Будет дорого да: от 300 рублей в месяц за VPS (почти как оплата за интернет).
- Надо уметь подключаться по SSH к Linux и пользоваться хостингом и DNS и купить домен.
А что если я видел Linux только на экране своей Windows, когда запускал её через WSL2 с кнопки "установить Ubuntu"?
А если хостинг и домен для меня одинаковые вещи и я не вижу между ними разницы?
Спокойно, всё придет. Вы можете не верить в себя или свои способности сейчас, но поверьте в то будущее, в котором вы оглядываясь назад сможете вспомнить это и сказать "Аха, нуда, теперь я чувствую разницу между DNS и роутером, и могу подключаться к Linux по SSH по ключам и настраивать фаервол".
Во всяком случае, вы не обязан понимать полностью как работает настройка фаерволов. Я тоже этого не знаю. Достаточно обычной логики и подумать. Как это делать? Расскажу вкратце на примере правил фаервола, которые вы встретите в руководстве "С чего начать" на официальном сайте CapRover - сперва вы должны понять, а включен ли на вашем Linux фаервол, если да и при выводе статуса фаервола там есть ряд правил, которые могут лимитировать сетевые соединения - то значит вам нужно применить дополнительные правила из руководства CapRover; Если фаервол на Linux не включен, правил в выводе статуса нет - значит применять правила фаервола из руководства CapRover - не нужно. Это всё. Вот как надо думать. Это просто - применяйте этот навык везде, где только можно 😉.
Пару комментариев о том что такое root-домен, cli, https и пароль, потому что Шаг 1 он более менее понятен, а вот Шаг 2 может вызвать вопросы.
Перед этим конечно купите себе VPS на 1 ядро и желательно с 2 Гб RAM. Этого будет достаточно, чтобы запустить CapRover и начать устанавливать приложения (на данный момент их 678) - вот полный список https://github.com/caprover/one-click-apps/tree/master/publi...
Что такое Шаг 2, root-домен и где надо менять пароль и что потом будет.
CapRover - это такой-же docker контейнер, как и ПО, которое будет работать в docker-контейнерах, которое вы установите потом в самом caprover. И сам caprover и его вспомогательные сервисы будут тоже работать в docker-контейнерах.
Поэтому, первое что вы должны сделать - установить этот CapRover. После установки он сразу запуститься. Однако при первом запуске нужно сделать следующее:
- прописать root-домен;
- установить пароль.
Есть два варианта того, как это сделать - 1️⃣ через cli и nodejs там-же в linux-терминале. Или через браузер.
К тому моменту, когда вы начнете устанавливать CapRover - у вас уже должен быть домен или поддомен, который вы полностью зарезервируете под вашу cap-инсталляцию. Концепция доменных имен в CapRover следующая: есть один главный домен (root-домен) для caprover. Например, возьмем ситуацию где вас уже есть домен и какие-то поддомены на нем, и вы не хотите резервировать этот домен полностью под caprover. Вы создаете поддомен: cap.yourdomain.ru и направляете его на IP-адрес вашего VPS. Таким образом, вам нужно назначить этот поддомен как главный (root-domain). Рабочий же интерфейс caprover, после завершения настройки, будет доступен по другому субдомену: captain.cap.yourdomain.ru. Таким образом cap.yourdomain.ru даже не будет использоваться напрямую. Всё устанавливаемое ПО, если для него подразумевается доступ из веб - будет так-же на субдоменах: *.cap.yourdomain.ru. Чтобы это работало, нужно так-же в DNS-записях прописать вот такой плейсхолдер *.cap.yourdaomain.ru и направить на IP-адрес вашего VPS или выделенного сервера.
2️⃣ Второй вариант - через браузер, зайти по IP-адресу вашего сервера и 3000-у порту (указан в инструкции get-started) , указать root-домен, включить HTTPS, и указать новый свой пароль, вместо пароля по-умолчанию.
После чего войти на https://captain.cap.yourdomain.ru и пользоваться своим персональным облачным сервисом.
Вы уже там сможете установить Seafile, о котором можно прочитать тут
Свой собственный почтовый сервер poste.io:
И таск-трекер для управления проектами:
Экран установки любого приложения выглядит примерно так:
здесь нужно ввести название приложения (оно же будет автоматическим субдоменом, например kb (адрес вашего приложения КБ затем будет такой kb.cap.yourdomain.ru)
PS: CapRover это не золотая котлета. Некоторое ПО в нем может быть устаревшим, так как конфиги (one-click-apps) нужно поддерживать - это делается сообществом. Если вам нужны новые версии программ, на которые вы положили глаз - вероятно нужно будет разбираться самим, как их устанавливать с нуля, без докер на нативном linux-окружении.
Рекомендуемые вычислительные ресурсы для нормальной работы CapRover и нескольких приложений внутри него: 6 Гб RAM, 2 ядра CPU и 50 Гб места на диске.
Для поддержки работы вашего сервера с CapRover вам следует озадачиться как минимум одной или даже двумя вещами: чисткой старых образов (в caprover есть такая функция) и кое-что понимать о downtime и постоянных хранилищах данных. Углубившись в детали вы начнете замечать эти нюансы, хотя с порога какие-то вещи будут совсем не очевидными и не привычными. Так или иначе разрабатывали это ПО для того, чтобы оно работало, оно не обязательно должно бы таким, к которому вы уже привыкли.
Зато, открывается возможность запускать в "один клик" большое количество разных программ, работающих на linux-сервере и вам не надо знать о том, как их устанавливать и настраивать:
За вас это сделают конфиги One Clik Apps. Для работы некоторых приложений - нужны базы данных (Postgres, Redis) - и это прописано в yaml-конфигурациях one-click-apps. Всё что требуется - установиться само. Вы, как пользователь - просто включайте нужное ПО и пользуйтесь им.