Развертывание wiki.homevault.su
Полное руководство: настройка гостевого доступа в BookStack, получение SSL Certbot и конфигурирование внешнего Nginx
Данный документ содержит пошаговый план настройки домашней базы знаний на домене wiki.homevault.su. Руководство включает в себя как внутреннюю конфигурацию контейнера BookStack (для работы без пароля), так и внешнюю обвязку безопасности на хост-системе Debian.
1. Архитектура каталогов BookStack
Данные BookStack в Docker разделены на две ключевые директории на хосте:
db_data— база данных (MySQL/MariaDB). Напрямую не редактируется.app_data— файлы приложения. Конфигурация находится по путиapp_data/www/.env.
app_data/
├── backups/
├── keys/
├── log/
├── nginx/
├── php/
└── www/ <-- Папка веб-приложения
└── .env <-- Главный файл настроек (скрытый)
2. Активация гостевого доступа (без пароля)
Для того чтобы сделать часть статей публичными (как в Википедии), необходимо включить системный гостевой режим.
- Перейдите в папку с файлом конфигурации:
cd app_data/www/
- Откройте скрытый файл
.env:nano .env
- Найдите (или добавьте в конец) строку, разрешающую публичный просмотр:
ALLOW_PUBLIC_VIEWING=true
- Измените основной URL приложения на защищенный HTTPS-адрес:
APP_URL=https://wiki.homevault.su
- Сохраните файл (
Ctrl+O, затемEnter) и выйдите (Ctrl+X). - Перезапустите Docker-контейнеры, чтобы изменения применились.
3. Получение SSL-сертификата Certbot
Выпуск бесплатного сертификата Let's Encrypt выполняется на хост-системе Debian через Certbot:
- Убедитесь, что Certbot и плагин Nginx установлены на хосте:
sudo apt update && sudo apt install certbot python3-certbot-nginx -y
- Запустите мастер автоматического получения сертификата:
sudo certbot --nginx -d wiki.homevault.su
После успешного завершения ваши ключи сохранятся в директории: /etc/letsencrypt/live/wiki.homevault.su/
4. Настройка обратного прокси Nginx на хосте
Для перенаправления внешнего зашифрованного трафика внутрь Docker-контейнера создается виртуальный хост Nginx.
- Создайте конфигурационный файл:
sudo nano /etc/nginx/sites-available/wiki.homevault.su
- Вставьте следующую конфигурацию (при необходимости скорректируйте порт контейнера, по умолчанию указан
8080):
# Редирект HTTP -> HTTPS
server {
listen 80;
listen [::]:80;
server_name wiki.homevault.su;
return 301 https://$host$request_uri;
}
# HTTPS Сервер
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name wiki.homevault.su;
# SSL сертификаты от Certbot
ssl_certificate /etc/letsencrypt/live/wiki.homevault.su/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wiki.homevault.su/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
access_log /var/log/nginx/bookstack_access.log;
error_log /var/log/nginx/bookstack_error.log;
client_max_body_size 50M; # Лимит загрузки картинок
location / {
proxy_pass http://127.0.0.1:8080; # Локальный порт контейнера BookStack
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_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
proxy_buffering off;
}
}
- Активируйте конфигурацию, создав символическую ссылку:
sudo ln -s /etc/nginx/sites-available/wiki.homevault.su /etc/nginx/sites-enabled/
- Убедитесь в отсутствии ошибок в синтаксисе конфигурационных файлов:
sudo nginx -t
- Примените конфигурацию:
sudo systemctl reload nginx
5. Управление гостевыми ролями в интерфейсе
После включения ALLOW_PUBLIC_VIEWING незарегистрированные пользователи привязаны к роли Public (Общедоступный) в панели управления BookStack:
Варианты настройки прав доступа:
А. Открытая база знаний: В Настройки -> Роли -> Public выставите глобальные галочки на "Просмотр" (View) для всех книг и страниц.
Б. Выборочные статьи: Оставьте настройки роли Public пустыми. Перейдите к нужной книге/странице, нажмите кнопку "Права" (Permissions), включите собственные разрешения и в строке роли Public отметьте "Просмотр".
При точечном (выборочном) доступе гостевые пользователи увидят пустую главную страницу. Чтобы они нашли нужные статьи, делитесь с ними прямыми ссылками или настройте структуру так, чтобы они могли пользоваться поисковой строкой на сайте.
Нет комментариев для отображения
Нет комментариев для отображения