add some old posts

This commit is contained in:
2026-09-13 14:18:25 +03:00
parent d5ab80e7da
commit 358d56da30
132 changed files with 3595 additions and 0 deletions
+273
View File
@@ -0,0 +1,273 @@
---
title: "Полная инструкция: Установка WriteFreely на wf.gelonet.ru (Debian 13)е"
date: 2025-11-02T19:00:00+03:00
draft: false
tags: ["writefreely", "howto", "debian", "fediverse"]
categories: ["selfhosting"]
---
Предполагается, что у вас есть:
- 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 минут. Проверить можно командой:
```bash
dig +short wf.gelonet.ru
# или
nslookup wf.gelonet.ru
```
Результат должен совпадать с IP вашего сервера.
## 🔹 Шаг 1: Подготовка сервера
Подключитесь к серверу по SSH и выполните:
```bash
# Обновление системы
sudo apt update && sudo apt upgrade -y
# Установка необходимых пакетов
sudo apt install -y nginx curl tar ufw
```
## 🔹 Шаг 2: Настройка фаервола (UFW)
Разрешите SSH, HTTP и HTTPS:
```bash
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full' # открывает 80/tcp и 443/tcp
sudo ufw enable
```
Проверка:
```bash
sudo ufw status verbose
```
💡 Порт 80 нужен для получения сертификата, порт 443 — для доступа к сайту по HTTPS.
## 🔹 Шаг 3: Установка WriteFreely
```bash
# Создаём директорию
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
```bash
sudo -u www-data /var/www/writefreely/writefreely config start
```
Ответьте на вопросы:
```shell
Environment: Production, behind reverse proxy
Server address: localhost:8080 (оставьте по умолчанию)
Database: SQLite (проще для старта) или MySQL (если настроена БД)
Site name: например, Мой блог
Admin username: ваш email
Admin password: надёжный пароль
Остальное — по желанию
```
Сгенерируйте ключи шифрования:
```bash
sudo -u www-data /var/www/writefreely/writefreely keys generate
```
## 🔹 Шаг 5: Создание systemd-сервиса
```bash
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
```
Запустите сервис:
```bash
sudo systemctl daemon-reload
sudo systemctl enable --now writefreely
```
Проверка:
```bash
sudo systemctl status writefreely
```
## 🔹 Шаг 6: Настройка Nginx как обратного прокси
Создайте конфиг (замените wf.gelonet.ru на ваш поддомен):
```bash
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
```
Активируйте сайт:
```bash
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:
```bash
sudo apt install -y certbot python3-certbot-nginx
```
Получите сертификат:
```bash
sudo certbot --nginx -d wf.gelonet.ru
```
Ответьте N на вопрос о передаче email EFF (если не хотите).
Certbot автоматически:
запросит сертификат,
обновит конфиг Nginx для HTTPS,
настроит автоматическое обновление.
📌 Важно: порты 80 и 443 должны быть открыты в UFW и облачном фаерволе!
## 🔹 Шаг 8: Проверка работы
Откройте в браузере свой поддомен, у меня это:
[https://wf.gelonet.ru](https://wf.gelonet.ru)
Вы должны увидеть главную страницу WriteFreely.
Админка доступна по:
[https://wf.gelonet.ru/admin](https://wf.gelonet.ru/admin)
## 🔹 Шаг 9: Проверка автопродления сертификата
Certbot уже настроил таймер, но можно проверить вручную:
```bash
sudo certbot renew --dry-run
```
Если команда завершится без ошибок — всё в порядке.
## 🧰 Полезные команды
Логи WriteFreely:
```bash
sudo journalctl -u writefreely -f
```
Логи Nginx:
```bash
sudo tail -f /var/log/nginx/error.log
```
Обновление WriteFreely:
Остановите сервис: sudo systemctl stop writefreely
Замените бинарник (повторите Шаг 3)
Запустите: sudo systemctl start writefreely
✅ Готово!
Ваш персональный блог на WriteFreely работает по адресу:
👉 <https://wf.gelonet.ru>
Теперь вы полностью контролируете свой контент, без зависимости от сторонних платформ.