Dokumentasi tim biasanya mati dengan salah satu dari dua cara: tercecer di utas obrolan yang tidak bisa dicari siapa pun, atau terkubur di wiki yang begitu merepotkan sampai tidak ada yang memperbaruinya. BookStack adalah wiki self-hosted langka yang benar-benar dipakai orang. Kontennya tersusun di rak, buku, bab, dan halaman — struktur yang dipahami semua orang tanpa pelatihan. Dan nyaris tidak butuh server.
Kenapa BookStack
- Struktur yang jelas. Buku dan bab, bukan tumpukan halaman yang datar.
- Pengeditan yang tidak menakutkan. Editor WYSIWYG secara default, Markdown bagi yang lebih suka.
- Izin yang sungguhan. Peran per rak, buku, atau halaman — jauhkan dokumen HR dari kontraktor.
- Login perusahaan. LDAP, SAML2, dan OpenID Connect sudah tersedia.
- Data Anda. Semuanya ada di database MariaDB dan satu folder di server Anda.
Ini bukan alat yang tepat untuk segalanya. Dokumentasi developer yang harus berubah bersama kode tempatnya di repositori, bukan di wiki.
Yang dibutuhkan
BookStack itu ringan. Untuk kebanyakan tim, Micro-IP — 1 vCPU, 2 GB, $10 per bulan — sudah lebih dari cukup. IP dedicated-lah yang memungkinkan rekan kerja menjangkaunya lewat HTTPS di domain Anda. Disk bertambah seiring tangkapan layar dan PDF yang diunggah, bukan jumlah halaman.
Instalasi dengan Docker Compose
Kita akan memakai image LinuxServer.io yang populer. Pertama, buat kunci aplikasi:
docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey
Salin nilai base64:... yang ditampilkan. Lalu buat 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 harus sama dengan alamat yang akan dipakai orang, termasuk https://. Kalau salah, gambar dan tautan rusak dengan cara yang aneh. Selengkapnya tentang Compose ada di panduan deploy stack kami.
HTTPS dan login pertama
Arahkan subdomain ke server (caranya), pasang nginx di depan 127.0.0.1:6875, dan tambahkan sertifikat dengan certbot — panduan reverse proxy memandu langkah demi langkah.
Lalu login dengan akun default: admin@admin.com / password. Ganti email dan kata sandi saat itu juga, sebelum membagikan tautan. Yang lain mendapat akun sendiri atau login lewat penyedia identitas Anda.
Backup
Dua hal yang perlu dilindungi: database dan unggahan di dalam ./bookstack. Tugas malam seperti ini mencakup database:
docker compose exec -T db mysqldump -u bookstack -pchange-me bookstack > /var/backups/bookstack.sql
Lalu backup /var/backups dan folder compose ke luar server — persis yang dilakukan panduan restic kami. Managed Backups menambahkan titik pemulihan harian untuk seluruh server di atasnya.
Perawatan
Pembaruan cukup dengan docker compose pull && docker compose up -d. BookStack menjalankan migrasi database saat mulai. Baca catatan rilis sebelum versi mayor; isinya singkat dan jelas.
Kalau tim Anda juga butuh tempat untuk tiket dan kode, server Git self-hosted pas berdampingan dengannya, di jenis paket yang sama.
Komentar
Belum ada komentar. Jadilah yang pertama.