−25%

на годовую оплату Windows, до 31.10. К тарифам

EQVPS

VPS для BookStack: своя вики для команды

BookStack на VPS как база документации команды: установка в Docker с MariaDB, HTTPS на своём домене, первый вход, бэкапы и сколько нужно ресурсов.

Командная документация обычно умирает одним из двух способов: разбросана по чатам, где ничего не найти, или похоронена в вики настолько неудобной, что её никто не обновляет. BookStack — редкая самостоятельно размещаемая вики, которой люди реально пользуются. Контент лежит на полках, в книгах, главах и страницах — структура понятна всем без обучения. И сервер ей почти не нужен.

Почему BookStack

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

Что нужно

BookStack лёгкий. Большинству команд с головой хватит Micro-IP — 1 vCPU, 2 ГБ, $10 в месяц. Выделенный IP нужен, чтобы коллеги заходили по HTTPS на ваш домен. Диск растёт от загруженных скриншотов и PDF, а не от числа страниц.

Установка через Docker Compose

Используем популярные образы LinuxServer.io. Сначала сгенерируйте ключ приложения:

docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey

Скопируйте выведенное значение base64:.... Затем создайте docker-compose.yml:

services:
  bookstack:
    image: lscr.io/linuxserver/bookstack:latest
    environment:
      - PUID=1000
      - PGID=1000
      - APP_URL=https://wiki.example.com
      - APP_KEY=base64:paste-your-key-here
      - DB_HOST=db
      - DB_PORT=3306
      - DB_DATABASE=bookstack
      - DB_USERNAME=bookstack
      - DB_PASSWORD=change-me
    volumes:
      - ./bookstack:/config
    ports:
      - 127.0.0.1:6875:80
    depends_on:
      - db
    restart: unless-stopped
  db:
    image: lscr.io/linuxserver/mariadb:latest
    environment:
      - PUID=1000
      - PGID=1000
      - MYSQL_ROOT_PASSWORD=change-me-too
      - MYSQL_DATABASE=bookstack
      - MYSQL_USER=bookstack
      - MYSQL_PASSWORD=change-me
    volumes:
      - ./db:/config
    restart: unless-stopped
docker compose up -d
docker compose logs -f bookstack

APP_URL должен совпадать с адресом, по которому будут заходить люди, включая https://. Ошибётесь — картинки и ссылки начнут ломаться странным образом. Больше о Compose — в нашей инструкции по развёртыванию стека.

HTTPS и первый вход

Направьте поддомен на сервер (как), поставьте nginx перед 127.0.0.1:6875 и добавьте сертификат через certbot — инструкция по обратному прокси проведёт по шагам.

Затем войдите под аккаунтом по умолчанию: admin@admin.com / password. Сразу смените почту и пароль, до того как поделитесь ссылкой. Остальные получают свои аккаунты или входят через ваш провайдер идентификации.

Бэкапы

Защищать нужно две вещи: базу и загрузки внутри ./bookstack. Ночное задание вроде этого покрывает базу:

docker compose exec -T db mysqldump -u bookstack -pchange-me bookstack > /var/backups/bookstack.sql

Дальше бэкапьте /var/backups и папку с compose вне сервера — ровно это делает наша инструкция по restic. Managed Backups добавят сверху ежедневные точки восстановления всего сервера.

Сопровождение

Обновление — это docker compose pull && docker compose up -d. BookStack сам запускает миграции базы при старте. Перед мажорными версиями читайте release notes — они короткие и понятные.

Если команде нужно ещё и место для задач и кода, рядом на таком же тарифе отлично встанет свой Git-сервер.

Готовы развернуть? Оплата криптой, без KYC — сервер за минуту.

Развернуть →

Частые вопросы

Сколько ресурсов нужно BookStack?

Совсем немного. BookStack — PHP-приложение с базой MariaDB; команда в несколько десятков человек спокойно живёт на 1 vCPU и 2 ГБ памяти. Диск в основном занимают загруженные картинки и вложения.

Какой логин по умолчанию?

admin@admin.com и пароль 'password'. Войдите и сразу смените оба — до того, как поделитесь адресом с кем-то.

Можно ли входить через корпоративную учётку?

Да. BookStack поддерживает LDAP, SAML2 и OpenID Connect, так что сотрудники входят через уже используемого провайдера идентификации.

Нужен ли выделенный IP?

Для команды — да. Коллеги открывают вики в браузере по HTTPS, а для этого нужен входящий порт 443 на своём IP. Для личного блокнота подойдёт и SSH-туннель на NAT-тарифе.

Как её бэкапить?

Делайте дамп базы и копируйте папку загрузок, которая лежит в подключённом томе конфигурации. Наша инструкция по restic автоматизирует и то и другое в зашифрованные снимки вне сервера.

Комментарии

Пока нет комментариев. Будьте первым.

Оставить комментарий

Комментарии проходят модерацию перед публикацией.