Как сделать сайт-визитку на минимальном VPS с Hugo и Caddy

Если у вас есть минимальный VPS (1 ядро, 1GB RAM, 5GB NVMe, 50 Mbit/s), его можно использовать для простой визитки сайта. В этой статье мы рассмотрим, как создать статический сайт с Hugo и раздать его через Caddy.


🔹 Что нам нужно

  • Минимальный VPS с Ubuntu/Debian.
  • Доступ по SSH (root).
  • IP-адрес VPS (например, 100.10.212.148).

Мы создадим сайт, который будет вести на biggratz.ru и работать по HTTP.


🔹 Шаг 1. Установка Hugo

Hugo — генератор статических сайтов на Go. Он быстрый и лёгкий, идеален для VPS с малой памятью.

  1. Обновляем список пакетов и автоматически устанавливаем все доступные обновления для уже установленных программ — без запроса подтверждения. И удаляем старую версию Hugo (если была):
sudo apt update && sudo apt upgrade -y
sudo apt remove hugo -y

2. Скачиваем последнюю Hugo Extended:

wget https://github.com/gohugoio/hugo/releases/download/v0.139.3/hugo_extended_0.139.3_linux-amd64.deb

3. Устанавливаем и удаляем hugo_extended_0.139.3_linux-amd64.deb:

sudo dpkg -i hugo_extended_0.139.3_linux-amd64.deb
rm hugo_extended_0.139.3_linux-amd64.deb

4. Создаём символическую ссылку (если нужно):

sudo ln -s /usr/local/bin/hugo /usr/bin/hugo

5. Проверяем:

hugo version

    🔹 Шаг 2. Создание Hugo-сайта

    1. Создаём рабочую директорию:
    mkdir ~/mysite && cd ~/mysite

    2. Создаём сайт:

    hugo new site biggratz-landing
    cd biggratz-landing

    3. Инициализируем git и добавляем тему Ananke:

    git init
    git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke themes/ananke
    echo 'theme = "ananke"' >> hugo.toml

    🔹 Шаг 3. Настройка контента

    1. Редактируем главную страницу:
    nano content/_index.md

    2.Добавляем содержимое:

    ---
    title: "Добро пожаловать"
    ---
    
    # Привет 👋
    
    Это сайт-визитка.  
    Здесь можно узнать больше на [biggratz.ru](https://biggratz.ru)

    3. Сохраняем и закрываем файл (Ctrl+O, Enter, Ctrl+X).

    🔹 Шаг 4. Генерация сайта

    hugo

    Сайт готов в папке public/.

    Проверить локально (для отладки):

    hugo server --bind=0.0.0.0 --baseURL=http://IP:1313/ --disableFastRender
    
    • –bind=0.0.0.0 — позволяет принимать запросы с любого IP.
    • –baseURL — чтобы ссылки генерировались корректно для внешнего IP.
    • –disableFastRender — рекомендуем для разработки, чтобы изменения сразу отображались корректно.

    После этого сайт будет доступен по http://IP:1313.

    🔹 Шаг 5. Установка Caddy

    Caddy — лёгкий веб-сервер с автоматическим HTTPS. Мы будем использовать его для раздачи сайта по IP через HTTP.

    1. Устанавливаем Caddy:
    sudo apt install -y caddy

    2.Переносим сайт в публичную директорию:

    sudo mkdir -p /var/www/biggratz
    sudo cp -r ~/mysite/biggratz-landing/public/* /var/www/biggratz/
    sudo chown -R caddy:caddy /var/www/biggratz
    sudo chmod -R 755 /var/www/biggratz

    3. Настраиваем Caddyfile:

    sudo nano /etc/caddy/Caddyfile

    Содержимое:

    :80 {
        root * /var/www/biggratz
        file_server
    }

    4. Перезапускаем Caddy:

    sudo systemctl restart caddy

    🔹 Шаг 6. Проверка работы

    Откройте в браузере:

    http://IP

    Вы должны увидеть вашу визитку с ссылкой на biggratz.ru.

    ⚠️ Обратите внимание: HTTPS по IP не работает. Для HTTPS нужен собственный домен с A-записью на IP.

    🔹 Шаг 7. Что делать дальше

    • Можно купить домен и прописать его на IP. Тогда в Caddyfile можно указать домен вместо :80, и Caddy автоматически выдаст SSL.
    • Можно добавить больше страниц и контента через Hugo.
    • Этот минималистичный подход отлично работает на малых VPS.

    ✅ В итоге: за 30 минут у вас готов легкий сайт-визитка, который не нагружает сервер и сразу ведёт посетителей на ваш основной сайт.