Гид по технологиям

Как разместить сайт на веб‑сервере Caddy на Ubuntu 18.04

• 4 min read • DevOps • Обновлено 23 Nov 2025
Caddy на Ubuntu 18.04 — разместить сайт с HTTPS
Caddy на Ubuntu 18.04 — разместить сайт с HTTPS

Caddy — лёгкий современный веб‑сервер на Go, который автоматически получает TLS‑сертификаты через Let’s Encrypt и подходит для статических сайтов. В статье шаг за шагом показано: обновление системы, установка Caddy, запуск как systemd‑сервиса, создание корня сайта и базовая настройка Caddyfile для HTTPS. В секциях ниже — чеклисты, советы по безопасности и распространённые ошибки.

Что такое Caddy

Caddy — открытый веб‑сервер, написанный на языке Go; по умолчанию автоматически получает и обновляет TLS‑сертификаты для сайтов. Коротко: быстрый способ запустить HTTPS‑сайт с минимальной настройкой.

Важно: этот туториал ориентирован на Ubuntu 18.04 и пример домена caddy.linuxbuz.com.

Основные варианты использования

  • Раздача статических сайтов с поддержкой Markdown, шаблонов и сжатия.
  • Быстрая защита сайта через Let’s Encrypt без ручной настройки certbot.
  • Легкая интеграция с системой как systemd‑сервис.

Требования

  • Сервер с Ubuntu 18.04.
  • Домен, указывающий на IP сервера (в примере caddy.linuxbuz.com).
  • Доступ root на сервере (пароль или sudo).

Подготовка системы

Перед началом обновите пакеты:

apt-get update -y
apt-get upgrade -y

После обновления рекомендуется перезагрузить систему, чтобы применить обновлённые ядро и сервисы.

Установка Caddy

В стандартных репозиториях Ubuntu 18.04 Caddy отсутствует, поэтому в этом руководстве используется официальный скрипт установки.

Установите curl, если он отсутствует:

apt-get install curl -y

Запустите инсталлятор Caddy (в примере используется персональная лицензия и плагин hook.service для systemd):

curl https://getcaddy.com | bash -s personal hook.service

После успешной установки вы увидите вывод, похожий на следующий:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7380  100  7380    0     0   266k      0 --:--:-- --:--:-- --:--:--  277k
Downloading Caddy for linux/amd64 (personal license)...
Download verification OK
Extracting...
Putting caddy in /usr/local/bin (may require password)
v1.0.4
Successfully installed

Примечание: параметр “-s personal” указывает на персональную (personal) лицензию; “hook.service” добавляет системный юнит для управления Caddy через systemd.

Проверьте версию:

caddy -version

Ожидаемый пример вывода:

v1.0.4

Установите Caddy как сервис и запустите его:

caddy -service install
systemctl start caddy
systemctl enable caddy

Проверьте статус службы:

systemctl status caddy

Пример вывода статуса:

? caddy.service - Caddy's service
   Loaded: loaded (/etc/systemd/system/caddy.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2020-04-20 05:49:04 UTC; 7s ago
 Main PID: 1722 (caddy)
    Tasks: 10 (limit: 2359)
   CGroup: /system.slice/caddy.service
           ??1722 /usr/local/bin/caddy

Apr 20 05:49:04 ubuntu1804 systemd[1]: Started Caddy's service.
Apr 20 05:49:04 ubuntu1804 caddy[1722]: Activating privacy features... done.
Apr 20 05:49:04 ubuntu1804 caddy[1722]: Serving HTTP on port 2015
Apr 20 05:49:04 ubuntu1804 caddy[1722]: http://:2015

Создание каталога сайта и файла index

Создайте корневую директорию сайта:

mkdir -p /var/www/caddy.linuxbuz.com

Создайте и отредактируйте файл index.html:

nano /var/www/caddy.linuxbuz.com/index.html

Содержимое примера:


Caddy Sample Page

Welcome to Caddy web server

Сохраните файл и установите владельца каталога в www‑data:

chown -R www-data:www-data /var/www/caddy.linuxbuz.com

Важно: правильные права и владелец облегчают работу Caddy и других сервисов, работающих от учётной записи www‑data.

Конфигурация Caddy (Caddyfile)

Создайте каталог для конфигурации и назначьте владельца:

mkdir -p /etc/caddy
chown -R www-data:www-data /etc/caddy

Создайте основной Caddyfile:

nano /etc/caddy/Caddyfile

Добавьте базовую виртуальную хост‑запись:

caddy.linuxbuz.com {
    root /var/www/caddy.linuxbuz.com
}

Запустите Caddy с соглашением об использовании и указанием email для Let’s Encrypt:

caddy -agree -conf /etc/caddy/Caddyfile -email [email protected]

Типичный вывод при успешной регистрации сертификата:

Activating privacy features... 2020/04/20 05:57:36 [INFO] acme: Registering account for [email protected]
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] acme: Obtaining bundled SAN certificate
... 
done.

Serving HTTPS on port 443 
https://caddy.linuxbuz.com


Serving HTTP on port 80 
http://caddy.linuxbuz.com

Теперь сайт должен обслуживаться по HTTPS с сертификатом от Let’s Encrypt.

Доступ к веб‑интерфейсу

Откройте в браузере https://caddy.linuxbuz.com — вы увидите страницу Caddy или содержимое вашего index.html.

Веб‑страница Caddy с приветственным экраном и индикатором HTTPS

Проверки и критерии приёмки

  • Сервис Caddy запущен и активен: systemctl status caddy → Active: active (running).
  • Домен резолвится в IP сервера (проверьте with dig/nslookup).
  • Порты 80 и 443 открыты в файрволе и доступны извне.
  • В браузере страница доступна по https:// и сертификат выдан Let’s Encrypt.

Рекомендации по безопасности и жесткая настройка

  • Откройте только необходимые порты: 80 и 443. Для UFW:
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
  • Запускайте Caddy от системного пользователя (systemd‑юнит) и не используйте root для раздачи файлов.
  • Ограничьте права к веб‑корню (владелец www‑data, права 755/644).
  • Следите за обновлениями Caddy и системы; при необходимости настройте автоматические обновления для критичных пакетов.
  • Для продакшна рассмотрите настройку логирования и ротации логов (systemd/journald или отдельные файлы логов).

Отладка и распространённые ошибки

  • “Порт 80/443 занят” — найдите, кто держит порт: sudo lsof -i :80 или sudo ss -ltnp и остановите конфликты (например, Apache/Nginx).
  • Сертификат не выдан — проверьте DNS (A/AAAA записи), доступность порта 80 извне и правильность email в команде регистрации. Let’s Encrypt требует, чтобы домен разрешался в публичный IP.
  • Проблемы с правами доступа — проверьте владельца и права на /var/www и /etc/caddy.
  • Если Caddy не запускается как сервис, посмотрите журналы: journalctl -u caddy -b

Важно: иногда Let’s Encrypt может вернуть ошибки при частых попытках регистрации; сделайте паузу и проверьте корректность конфигурации.

Альтернативные подходы

  • Nginx + certbot: более гибкая классическая связка для сложных конфигураций (reverse proxy, load balancing).
  • Apache + mod_ssl: если уже используете Apache.
  • Caddy v2: более новая версия с другим синтаксисом Caddyfile и расширенными возможностями; при миграции учтите изменения в директивах.

Когда выбирать Caddy: если нужна быстрая настройка HTTPS и простота — Caddy подходит отлично. Для сложных сценариев балансировки/мульти‑роутинга может быть лучше Nginx.

Роль‑ориентированные чеклисты

Администратор сервера:

  • Проверить DNS A/AAAA записи.
  • Открыть порты 80 и 443.
  • Установить Caddy и настроить systemd.

DevOps / Разработчик:

  • Подготовить структуру /var/www и права доступа.
  • Настроить Caddyfile и тестировать локально.
  • Настроить CI/CD для выкладки статических файлов.

Инженер по безопасности:

  • Проверить TLS‑настройки и автоматическое обновление сертификатов.
  • Проверить права файлов и журналы.

Короткий глоссарий

  • Caddyfile — основной файл конфигурации Caddy.
  • Let’s Encrypt — бесплатный центр сертификации, выдающий TLS‑сертификаты.
  • systemd — система инициализации и менеджер сервисов в Ubuntu.

Заключение

Caddy упрощает раздачу статических сайтов и автоматизирует получение TLS‑сертификатов. Следуя шагам: обновление системы, установка Caddy, создание корня сайта, настройка Caddyfile и запуск сервиса — вы получите защищённый HTTPS‑сайт на Ubuntu 18.04. Дополнительно используйте предложенные проверки и рекомендации по безопасности.

Ключевые действия: обновить систему, установить curl и Caddy, создать /var/www/… и Caddyfile, запустить Caddy и убедиться, что сертификат выдан.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро