Полная инструкция: Установка WriteFreely на wf.gelonet.ru (Debian 13)
Предполагается, что у вас есть: VPS с Debian 13, Доступ к серверу через sudo, Доменное имя gelonet.ru, зарегистрированное у любого регистратора.
🔹 Шаг 0: Настройка DNS (в панели регистратора)
Зайдите в панель управления вашего регистратора домена (например, reg.ru, nic.ru, Beget и т.д.).
Найдите раздел «Управление DNS» или «Зоны DNS» для домена gelonet.ru.
Создайте A-запись для поддомена:
Имя (host): wf Тип: A Значение (IP): [вашпубличныйIP_сервера] TTL: 300 или по умолчанию
Пример: wf.gelonet.ru → 5.129.217.146
Сохраните изменения. ⏱ DNS может обновиться от нескольких секунд до 10–30 минут. Проверить можно командой:
dig +short wf.gelonet.ru
# или
nslookup wf.gelonet.ru
Результат должен совпадать с IP вашего сервера.
🔹 Шаг 1: Подготовка сервера
Подключитесь к серверу по SSH и выполните:
# Обновление системы
sudo apt update && sudo apt upgrade -y
# Установка необходимых пакетов
sudo apt install -y nginx curl tar ufw
🔹 Шаг 2: Настройка фаервола (UFW)
Разрешите SSH, HTTP и HTTPS:
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full' # открывает 80/tcp и 443/tcp
sudo ufw enable
Проверка:
sudo ufw status verbose
💡 Порт 80 нужен для получения сертификата, порт 443 — для доступа к сайту по HTTPS.
🔹 Шаг 3: Установка WriteFreely
# Создаём директорию
sudo mkdir -p /var/www/writefreely
cd /var/www/writefreely
# Скачиваем последнюю версию (v0.16.0 на момент написания)
sudo curl -L https://github.com/writefreely/writefreely/releases/download/v0.16.0/writefreely_0.16.0_linux_amd64.tar.gz -o writefreely.tar.gz
# Распаковываем
sudo tar -xzf writefreely.tar.gz --strip-components=1
sudo rm writefreely.tar.gz
# Назначаем права
sudo chown -R www-data:www-data /var/www/writefreely
🔹 Шаг 4: Настройка WriteFreely
sudo -u www-data /var/www/writefreely/writefreely config start
Ответьте на вопросы:
Environment: Production, behind reverse proxy
Server address: localhost:8080 (оставьте по умолчанию)
Database: SQLite (проще для старта) или MySQL (если настроена БД)
Site name: например, Мой блог
Admin username: ваш email
Admin password: надёжный пароль
Остальное — по желанию
Сгенерируйте ключи шифрования:
sudo -u www-data /var/www/writefreely/writefreely keys generate
🔹 Шаг 5: Создание systemd-сервиса
sudo tee /etc/systemd/system/writefreely.service <<EOF
[Unit]
Description=WriteFreely Instance
After=network.target
[Service]
Type=simple
User=www-data
Group=www-data
WorkingDirectory=/var/www/writefreely
ExecStart=/var/www/writefreely/writefreely
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
Запустите сервис:
sudo systemctl daemon-reload
sudo systemctl enable --now writefreely
Проверка:
sudo systemctl status writefreely
🔹 Шаг 6: Настройка Nginx как обратного прокси
Создайте конфиг (замените wf.gelonet.ru на ваш поддомен):
sudo tee /etc/nginx/sites-available/writefreely <<EOF
server {
listen 80;
listen [::]:80;
server_name wf.gelonet.ru;
gzip on;
gzip_types
application/javascript
application/x-javascript
application/json
application/rss+xml
application/xml
image/svg+xml
image/x-icon
application/vnd.ms-fontobject
application/font-sfnt
text/css
text/plain;
gzip_min_length 256;
gzip_comp_level 5;
gzip_vary on;
location ~ ^/.well-known/(webfinger|nodeinfo|host-meta) {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_redirect off;
}
location ~ ^/(css|img|js|fonts)/ {
root /var/www/writefreely/static;
expires 12M;
}
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_redirect off;
}
}
EOF
Активируйте сайт:
sudo ln -s /etc/nginx/sites-available/writefreely /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
🔹 Шаг 7: Получение SSL-сертификата от Let’s Encrypt
Установите Certbot:
sudo apt install -y certbot python3-certbot-nginx
Получите сертификат:
sudo certbot --nginx -d wf.gelonet.ru
Ответьте N на вопрос о передаче email EFF (если не хотите). Certbot автоматически: запросит сертификат, обновит конфиг Nginx для HTTPS, настроит автоматическое обновление.
📌 Важно: порты 80 и 443 должны быть открыты в UFW и облачном фаерволе!
🔹 Шаг 8: Проверка работы
Откройте в браузере свой поддомен, у меня это: https://wf.gelonet.ru
Вы должны увидеть главную страницу WriteFreely. Админка доступна по: https://wf.gelonet.ru/admin
🔹 Шаг 9: Проверка автопродления сертификата
Certbot уже настроил таймер, но можно проверить вручную:
sudo certbot renew --dry-run
Если команда завершится без ошибок — всё в порядке.
🧰 Полезные команды
Логи WriteFreely:
sudo journalctl -u writefreely -f
Логи Nginx:
sudo tail -f /var/log/nginx/error.log
Обновление WriteFreely: Остановите сервис: sudo systemctl stop writefreely Замените бинарник (повторите Шаг 3) Запустите: sudo systemctl start writefreely
✅ Готово!
Ваш персональный блог на WriteFreely работает по адресу: 👉 https://wf.gelonet.ru
Теперь вы полностью контролируете свой контент, без зависимости от сторонних платформ.
Мой телеграм канал https://t.me/dedinit/