Установка CapRover на локальный сервер без Public IP

Основная статья тут.

Установить dnsmasq

Нам понадобится небольшой DNS-сервер для разрешения доменных имен, поскольку Caprover очень требователен к нему. Если у вас есть локальный DNS-сервер, поддерживающий домены с подстановочными знаками, все готово. Вы можете пропустить часть настройки DNS. Если у вас его нет, установите облегченный dnsmasq следующим образом:

sudo apt install dnsmasq

После успешной установки dnsmasq запустите и включите службу.

sudo systemctl start dnsmasq
sudo systemctl enable dnsmasq

Добавить Wildcard DNS-запись

Как только dnsmasq заработает, как и ожидалось, мы можем продолжить и добавить конфигурации и доменное имя Wildcard, как показано ниже:

$ sudo vim /etc/dnsmasq.conf

listen-address=::1,127.0.0.1,172.20.192.38
domain=example.com
server=8.8.8.8
address=/caprover.example.com/172.20.192.38

Соответственно замените IP-адреса на свои.

Затем перезапустите dnsmasq

sudo systemctl restart dnsmasq

Проверьте, работает ли это

Мы будем использовать утилиту dig, чтобы проверить, работает ли наша конфигурация.

$ dig @127.0.0.1 test.caprover.example.com

; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8 <<>> @127.0.0.1 test.caprover.example.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32435
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;test.caprover.example.com.     IN      A

;; ANSWER SECTION:
test.caprover.example.com. 0    IN      A       172.20.192.38

И это так!!

Далее, поскольку мы собираемся установить Caprover на локальный сервер, нам придется немного настроить нашу установку. Мы создадим каталог и добавим в него некоторые конфигурации, а затем запустим наш образ с переменной среды, которая будет представлять общедоступный IP-адрес, хотя это частный IP-адрес. Действуйте следующим образом.

sudo mkdir /captain/data/
echo  "{\"skipVerifyingDomains\":\"true\"}" | sudo tee -a  /captain/data/config-override.json

После этого выполните следующую команду docker, чтобы извлечь и запустить образ. Вы увидите это в команде: «-e MAIN_NODE_IP_ADDRESS=172.20.192.38». Поскольку у моего локального сервера нет общедоступного IP-адреса, «MAIN_NODE_IP_ADDRESS=172.20.192.38» указывает Caprover использовать вместо этого частный IP-адрес «172.20.192.38».

$ docker run -p 80:80 -p 443:443 -p 3000:3000 \
  -e MAIN_NODE_IP_ADDRESS=172.20.192.38 -d \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /captain:/captain caprover/caprover

##Sample Output you will observe
latest: Pulling from caprover/caprover
0400ac8f7460: Pull complete
fa8559aa5ebb: Pull complete
da32bfbbc3ba: Pull complete
e1dc6725529d: Pull complete
572866ab72a6: Pull complete
63ee7d0b743d: Pull complete
81a57610b526: Pull complete
8aa72b0fc009: Pull complete
caec757d11e1: Pull complete
adcef7d4d562: Pull complete
9b93a1807495: Pull complete
f5a44e685611: Pull complete
72b9d183035e: Pull complete
42af16174623: Pull complete

Captain Starting ...
Installing Captain Service ...

 Installation of CapRover is starting...
For troubleshooting, please see: https://caprover.com/docs/troubleshooting.html

 >>> Checking System Compatibility <<<
   Docker Version passed.
******* Warning *******    CapRover and Docker work best on Ubuntu - specially when it comes to storage drivers.
   X86 CPU detected.
   Total RAM 3985 MB
Pulling: nginx:1
Pulling: caprover/caprover-placeholder-app:latest
Pulling: caprover/certbot-sleeping:v1.6.0
December 15th 2020, 2:07:30.014 pm    Fresh installation!
December 15th 2020, 2:07:30.016 pm    Starting swarm at 172.20.192.38:2377
Swarm started: 0jz01mmwwg5ifoncrhqz0evee
*** CapRover is initializing ***
Please wait at least 60 seconds before trying to access CapRover.

https://computingforgeeks.com/setup-your-own-heroku-paas-using-caprover/