Commento на Ubuntu 24.04: пошаговая установка
Disqus тормозит сайт трекерами и рекламой, а встроенные комментарии на WordPress собирают спам без остановки. Commento — компактный self-hosted движок комментариев на Go: без рекламы, без слежки за читателями, с модерацией и импортом из Disqus в один клик. Дальше — рабочая установка на чистом VPS с Ubuntu 24.04: от Docker до подключения к вашему сайту.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что такое Commento и зачем он вместо Disqus
Commento — open-source альтернатива Disqus и Isso, написанная на Go с фронтендом на чистом JS без фреймворков. Разработчик оригинального проекта в 2020 году отошёл от активной поддержки, поэтому в проде сейчас чаще ставят форк Commento++ (или его контейнерный образ) — он совместим по API и базе данных, но получает исправления. В этой статье используется образ registry.gitlab.com/commento/commento — актуальный на конец августа 2026 года форк с поддержкой Docker.
Что вы получаете по сравнению с Disqus:
- Никакой рекламы и трекеров на страницах читателей — сайт грузится быстрее.
- Данные комментариев лежат в вашей PostgreSQL, а не у стороннего сервиса.
- Встроенный импорт из Disqus (XML-экспорт) и WordPress.
- Markdown в комментариях, голосование, модерация, чёрные списки по домену/IP.
- Один скрипт на 15 КБ вместо тяжёлого iframe с десятками сторонних запросов.
Минус честно: Commento — небольшой проект без активного сообщества, размером с нишевую замену, а не с Disqus по фичам (нет соцсети комментаторов, меньше интеграций). Для блога, документации или небольшого медиа — то, что нужно.
Требования к серверу и подготовка
Commento — лёгкое приложение, для него хватит минимальной конфигурации:
| Ресурс | Минимум | Рекомендуется |
|---|---|---|
| CPU | 1 vCPU | 1-2 vCPU |
| RAM | 512 МБ | 1 ГБ |
| Диск | 10 ГБ SSD | 20 ГБ SSD |
| ОС | Ubuntu 24.04 LTS | Ubuntu 24.04 LTS |
Если у вас ещё нет сервера — арендовать VPS с Ubuntu 24.04 можно с оплатой картой или криптовалютой, локации RU/US/UK на выбор в зависимости от того, откуда идёт основной трафик вашего сайта.
Подключитесь по SSH и обновите систему:
apt update && apt upgrade -y
apt install -y curl ca-certificates gnupg
Заведите отдельного пользователя (не работайте под root постоянно):
adduser deploy
usermod -aG sudo deploy
su - deploy
Понадобится домен или поддомен для Commento, например comments.example.com, с A-записью на IP сервера. Если ещё не разбирались с этим на новом сервере — вот пошаговая настройка домена и DNS с нуля.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверУстановка Docker и Docker Compose
Commento проще всего развернуть в Docker вместе с PostgreSQL — так меньше шансов сломать системный Python или библиотеки при апгрейдах. Ставим Docker Engine из официального репозитория:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
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 update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo usermod -aG docker $USER
Перелогиньтесь (exit и снова ssh), чтобы группа docker применилась, и проверьте:
docker --version
docker compose version
Если предпочитаете ставить Docker вручную по шагам — там же описаны нюансы прав и systemd-юнита.
PostgreSQL и docker-compose для Commento
Commento хранит всё в PostgreSQL — это единственная обязательная зависимость. Разворачиваем базу и само приложение вместе через docker compose, чтобы не настраивать сеть и права руками.
Создайте директорию проекта и файл окружения:
mkdir -p ~/commento && cd ~/commento
nano .env
Содержимое .env (замените значения на свои, пароль сгенерируйте openssl rand -hex 24):
POSTGRES_USER=commento
POSTGRES_PASSWORD=замените_на_случайный_пароль
POSTGRES_DB=commento
COMMENTO_ORIGIN=https://comments.example.com
COMMENTO_PORT=8080
COMMENTO_FORBID_NEW_OWNERS=false
Файл docker-compose.yml:
services:
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- db_data:/var/lib/postgresql/data
networks:
- commento_net
commento:
image: registry.gitlab.com/commento/commento:latest
restart: unless-stopped
depends_on:
- db
environment:
COMMENTO_ORIGIN: ${COMMENTO_ORIGIN}
COMMENTO_PORT: ${COMMENTO_PORT}
COMMENTO_POSTGRES: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}?sslmode=disable
COMMENTO_COOKIE_SECURE: "true"
COMMENTO_EMAIL_SMTP_HOST: ""
ports:
- "127.0.0.1:8080:8080"
networks:
- commento_net
volumes:
db_data:
networks:
commento_net:
Обратите внимание: порт Commento проброшен только на 127.0.0.1 — наружу его отдаст обратный прокси с SSL, напрямую в интернет контейнер не смотрит.
Запускаем:
docker compose up -d
docker compose logs -f commento
В логах должна появиться строка о старте HTTP-сервера на :8080 без ошибок подключения к базе. Если видите connection refused — база ещё не успела инициализироваться, подождите 10-15 секунд и перезапустите: docker compose restart commento.
Если предпочитаете PostgreSQL не в контейнере, а системным сервисом — вариант с установкой PostgreSQL на Ubuntu 24.04 отдельно от Docker тоже рабочий, просто в COMMENTO_POSTGRES укажите адрес хоста вместо db.
Обратный прокси и SSL-сертификат
Ставим Caddy — он получает сертификат Let's Encrypt автоматически, без отдельного certbot и cron-задач на продление:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | \
sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | \
sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install -y caddy
Конфиг /etc/caddy/Caddyfile:
comments.example.com {
reverse_proxy 127.0.0.1:8080
encode gzip
}
Перезапустите Caddy:
sudo systemctl reload caddy
При первом обращении к домену Caddy сам выпустит и подключит сертификат — никаких ручных шагов. Если хотите разобраться в деталях автоматического SSL или что-то пойдёт не так с первого раза — есть подробная установка Caddy с авто-SSL на Ubuntu 24.04.
Если у вас уже настроен Nginx для основного сайта — Commento можно подключить тем же способом через отдельный server_block с proxy_pass http://127.0.0.1:8080; и получением сертификата через certbot, разница принципиальна не влияет на дальнейшую настройку.
Firewall и базовая защита
Порт 8080 наружу закрыт по умолчанию (проброшен только на localhost), но проверьте общий firewall на сервере — открыты должны быть только SSH, 80 и 443:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status
Если ещё не настраивали UFW на этом сервере — есть отдельная настройка firewall на Ubuntu 24.04 с нуля, стоит пройтись по ней параллельно с установкой Commento, раз уж сервер новый.
Дополнительно в Commento:
- В
.envуберитеCOMMENTO_FORBID_NEW_OWNERS=falseнаtrueпосле того, как создадите единственный нужный аккаунт владельца — это закроет саморегистрацию новых владельцев доменов. - Настройте почтовый релей (
COMMENTO_EMAIL_SMTP_*) — без него не будут приходить письма подтверждения и уведомления о новых комментариях на модерации. - Регулярно бэкапьте volume
db_data— это единственное место, где хранятся все комментарии.
Первая настройка и подключение к сайту
Откройте https://comments.example.com в браузере — увидите страницу регистрации Commento. Зарегистрируйте владельца (email + пароль), затем в панели:
- Dashboard → Add Domain — укажите домен вашего сайта (не Commento, а сайта с комментариями), например
example.com. - Скопируйте предложенный сниппет — что-то вроде:
<div id="commento"></div>
<script defer src="https://comments.example.com/js/commento.js"></script>
- Вставьте этот код в шаблон статей вашего сайта — в футер или туда, где раньше был виджет Disqus.
- В настройках домена включите модерацию первых комментариев, если сайт публичный и уже привлекает спам-ботов.
Для WordPress проще всего вставить сниппет через блок «Пользовательский HTML» в шаблоне single.php или через плагин вставки произвольного кода в футер — без плагина импорта из Disqus напрямую в WordPress не обойтись, но у Commento есть встроенный импорт: Settings → Import/Export → Import comments from Disqus, куда загружается XML-экспорт из панели Disqus.
Обновление и обслуживание
Commento обновляется пересозданием контейнера — данные в volume db_data не трогаются:
cd ~/commento
docker compose pull
docker compose up -d
Бэкап базы одной командой (запускайте по cron раз в сутки):
docker compose exec -T db pg_dump -U commento commento | gzip > ~/backups/commento-$(date +%F).sql.gz
Восстановление из бэкапа:
gunzip -c ~/backups/commento-2026-08-20.sql.gz | docker compose exec -T db psql -U commento commento
Если сайт растёт и Commento начинает притормаживать при большом числе комментариев на статью — обычно упирается не сам Commento, а PostgreSQL без индексов под нагрузку; тюнинг PostgreSQL под конкретный профиль запросов — тема отдельного разбора, но на старте штатных настроек контейнера postgres:16-alpine хватает на десятки тысяч комментариев без проблем.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Commento бесплатный?
Да, движок open-source (форк Commento++ тоже свободный), платить нужно только за сервер, на котором он крутится.
Можно ли обойтись без Docker?
Можно собрать бинарник из исходников Go и настроить systemd-юнит вручную, но это заметно больше возни с зависимостями и обновлениями — Docker-путь короче и надёжнее для одного домена.
Работает ли Commento со статическими сайтами (Hugo, Jekyll)?
Да, сниппет — обычный JS-скрипт, вставляется в HTML-шаблон страницы статьи так же, как в WordPress или любой другой CMS.
Что будет с комментариями, если сервер упадёт?
Всё зависит от бэкапов volume db_data — без регулярного pg_dump восстановить нечего, настройте cron сразу после установки.
Нужен ли SMTP-сервер обязательно?
Нет, Commento заработает и без почты, но вы не получите письма о новых комментариях на модерацию и подтверждения регистрации — для продакшена почту лучше подключить.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →