Этот пост - краткое руководство по размещению ориентированной на конфиденциальность системы комментариев Remark42, на виртуальной машине в облаке за небольшую ежемесячную плату.

Prague, Riegrovy sady, Июнь 2022: фото Ksenia Gulyaeva
Prague, Riegrovy sady, Июнь 2022: фото Ksenia Gulyaeva

Запуск виртуальной машины в публичном облаке

Чтобы запустить экземпляр виртуальной машины, следуйте одной из приведенных ниже инструкций. В конце процесса настройки сгенерируйте SSH-ключ (Yandex) или загрузите его на свой компьютер (DigitalOcean). По умолчанию для хранения закрытой части ключа на Mac и Linux используется путь ~/.ssh/id_rsa. На следующем этапе вам нужно будет использовать этот ключ чтобы подключиться к виртуальной машине с помощью SSH.

Yandex Cloud, порядка $7 в месяц

Сначала зарегистрируйтесь в Яндекс.Облаке. Затем создайте виртуальную машину в Compute Cloud: любое имя латиницей, операционная система Ubuntu. В разделе Вычислительные ресурсы выставите настройки которые дают минимальную стоимость: на момент написания публикации это Intel Cascade Lake с 5% гарантированной доли vCPU и 1Гб RAM. В Логин впишите желаемое имя пользователя, а в SSH-ключ нужно вставить публичную часть вашего SSH ключа (инструкция по его генерации).

Digital Ocean, $4-$6 в месяц

Зарегистрируйтесь, если у вас ещё нет там аккаунта. Ссылка реферальная и даст вам 100$ на 60 дней, что по факту даст вам бесплатный хостинг для Remark42 на первые два месяца.

Затем, создайте наименьший \ самый дешёвый сервер в этом облачном провайдере. В DigitalOcean виртуальные машины называются droplets (дроплеты), и вам нужно выбрать “Basic” -> “Regular with SSD” -> $4/месяц 1 CPU, 512MB RAM и 10GB SSD, или $6/месяц 1CPU, 1GB RAM и 20GB SSD если опция за $4 недоступна в выбранном вами регионе. Любая операционная система подойдёт, если у вас нет предпочтений — выберите Ubuntu.

Как запустить Remark42 в виртуальной машине

  1. Первым делом в настройках DNS своего домена создайте A запись которая укажет поддомен remark42.example.org (с вашим доменным именем вместо example.org) на IP адрес созданной вами в предыдущем шаге виртуальной машины.

  2. Подключитесь к виртуальной машине используя SSH и установите docker и docker-compose используя эту инструкцию для Ubuntu или другую подходящую из того же раздела если вы выбрали другую операционную систему.

  3. Создайте файл docker-compose.yml и вставьте в него следующее содержимое:

    version: "2"
    
    services:
      remark:
        image: umputun/remark42:latest
        container_name: "remark42"
        hostname: "remark42"
        restart: always
    
        logging:
          driver: json-file
          options:
            max-size: "10m"
            max-file: "5"
    
        ports:
          - "443:8443"
          # раскомментируйте строку ниже чтобы Remark42
          # работал не только по HTTPS но и по HTTP
          # - "80:8080"
    
        environment:
          - REMARK_URL=https://remark42.example.org
          - ADMIN_SHARED_EMAIL=
          - SECRET=
          - DEBUG=true
          - SSL_TYPE=auto
          - AUTH_ANON=true
          # Раскомментируйте строку ниже только для первого импорта
          # комментариев из другой системы или для ручного запуска бекапов.
          # Не оставляйте сервер работать с выставленным ADMIN_PASSWD
          # если вы не собираетесь вручную создавать бекапы!
          # - ADMIN_PASSWD=<your secret password>
        volumes:
          - ./var:/srv/var
    

    Все возможные настройки описаны в документации. Вот необходимый минимум:

    • задайте SECRET в случайно-сгенерированную строку
    • запишите свой email адрес в ADMIN_SHARED_EMAIL (Remark42 подпишет его на уведомления о продлении HTTPS сертификата)
    • замените example.org на свой домен в переменной REMARK_URL
  4. Выполните команду docker compose up чтобы запустить систему комментариев и увидеть логи запуска. После этого откройте https://remark42.example.org/web/ (подменив example.org на свой домен) чтобы увидеть демо страницу Remark42.

    После того как вы убедитесь что демо страница работает и вы можете разместить комментарий, необходимо перевести работу системы в постоянный режим. Остановите предыдущую команду нажатием сочетания клавиш Ctrl+C и выполните вместо предыдущей команды docker-compose up -d: это запустит Remark42 в фоновом режиме и будет автоматически перезапускать его после перезагрузки виртуальной машины. Чтобы посмотреть логи контейнера который запущен в фоновом режиме, вам нужно будет использовать команду docker compose logs remark42 -f

После того как вы прошли по шагам выше, перейдите к настройке на стороне вебсайта с помощью инструкции.