−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 автоматизує і те, й інше в зашифровані знімки поза сервером.

Коментарі

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

Залишити коментар

Коментарі проходять модерацію перед публікацією.