• Как настроить caprover и docker?

    @StreetMagic14
    Я так понимаю у вас отдельный сервер на зеоне?
    Сносим все и ставим голую Ubuntu server 22, устанавливаем SSH (при установке убунты будет выбор)
    Подключайтесь по SSH на своем компе, либо прямо на сервере делайте
    Обновляем пакеты
    sudo apt-get update
    sudo apt-get install

    Установить Docker Engine
    # Add Docker's official GPG key:
    sudo apt-get update
    sudo apt-get install ca-certificates curl
    sudo install -m 0755 -d /etc/apt/keyrings
    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    sudo chmod a+r /etc/apt/keyrings/docker.asc
    
    # Add the repository to Apt sources:
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
      $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt-get update

    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin


    У вас должен быть домен для быстрого доступа, если хотите конечно, там надо сделать запись А со значением * и вашем внешним IP.
    Тут стоит отметить, что есть 3 вариации айпи, белый статичный, белый динамический и серый который находится на NAT провайдера. Определяем его так, заходим 2ip.ru и смотрим свой айпи, запоминаем и заходим в роутер смотрим свой айпи там, если совпадают, то вам повезло вы не за NAT, редко кто даёт статичный бесплатно, скорее всего у вас динамичный белый, а если совпадения нет, то вам придется купить статику если хотите чтоб ваш сервер был доступен извне.
    • Первый вариант белый статичный, делать ничего не надо, просто пишем его
    • Второй вариант белый динамичный, для проверки CapRover можно тоже оставить, придется думать c DDNS, если ваш роутер поддерживает, то можно либо у регистратора домена брать настройки, либо можно взять бесплатный NO-IP, либо как автор статьи на хабре через CloudFlare (но для меня был геморой с передачей домена к ним, я купил static IP
    • Третий вариант тут я не знаю, возможно есть какие то инструменты, либо лайфхаки, но легче купить статику по мне


    Обязательно манипуляции с роутером делаем как в статье на хабре которую вы указали! порты тоже пробросить надо.

    Настраиваем firewall
    sudo ufw allow 80,443,3000,996,7946,4789,2377/tcp; sudo ufw allow 7946,4789,2377/udp;

    Устанавливаем CapRover
    docker run -p 80:80 -p 443:443 -p 3000:3000 -e ACCEPTED_TERMS=true -v /var/run/docker.sock:/var/run/docker.sock -v /captain:/captain caprover/caprover

    Если возникает ошибка по доступу, то
    sudo chmod 666 /var/run/docker.sock
    После завершения установки панель управления CapRover становится доступной по адресу http://[IP_АДРЕС_СЕРВЕРА]:3000, пароль по умолчанию captain42. Однако, сейчас не стоит изменять что-то через интерфейс, а также менять пароль (можно сделать это позднее). Мы будем использовать инструмент командной строки для настройки сервера.
    Устанавливаем npm и далее Caprover CLI
    sudo apt install npm
    sudo npm install -g caprover
    Настраиваем CapRover
    caprover serversetup

    Have you already started CapRover container on your server? — по умолчанию отвечаем Yes
    IP address of your server — здесь необходимо указать публичный IP адрес сервера
    CapRover server root domain — указываем ранее приобретённый домен. Если вы укажете что-то вроде name.ru, панель управления CapRover будет доступна по адресу captain.name.ru
    new CapRover password (min 8 characters) — на этом и следующем вопросе вводим новый пароль для доступа к панели управления.
    "valid" email address to get certificate and enable HTTPS — для получения сертификатов Let’s Encrypt необходимо указать действующий адрес электронной почты.
    CapRover machine name, with whom the login credentials are stored locally — любое удобное наименование серверу с установленным CapRover.

    Если вдруг ошибка по установке сертификата возникнет, значит нет возможности достучаться по твоему IP, проблема точно в файрволе, у меня был закрыт порт 80, но caprover был доступен извне по порту 3000, если явно указывать. В общем купив статику проблема решилась и сертификат установился.

    Описал свои шаги по установке, надеюсь помог)
    Ответ написан
    2 комментария