Posts Make your own self-hosted docs server using Bookstack
Post
Cancel

Make your own self-hosted docs server using Bookstack

BookStack is a simple, self-hosted, easy-to-use platform for organizing and storing documentation. It’s a web application that makes it easy to create, store, and share your documents, knowledge base, and other files.

  • Create directory
1
2
3
4
sudo mkdir -p /srv/bookstack
sudo mkdir -p /srv/bookstack/public/uploads
sudo mkdir -p /srv/bookstack/storage/uploads
sudo chown -R $USER:$USER /srv/bookstack
  • Install mysql database and create user for it.
  • Create docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
version: "3.8"
services:
  bookstack:
    container_name: bookstack
    image: techthinkerorg/bookstack:25.5
    ports:
      - 8080:8080
    networks:
      - mysql_mynet
    environment:
      - DB_HOST=${DB_HOST}
      - DB_DATABASE=${DB_DATABASE}
      - DB_USERNAME=${DB_USERNAME}
      - DB_PASSWORD=${DB_PASSWORD}
      - APP_URL=http://localhost:8801
      - MAIL_DRIVER=${MAIL_DRIVER}
      - MAIL_HOST=${MAIL_HOST}
      - MAIL_PORT=${MAIL_PORT}
      - MAIL_ENCRYPTION=${MAIL_ENCRYPTION}
      - MAIL_VERIFY_SSL=${MAIL_VERIFY_SSL}
      - MAIL_USERNAME=${MAIL_USERNAME}
      - MAIL_PASSWORD=${MAIL_PASSWORD}
      - MAIL_FROM=${MAIL_FROM}
      - MAIL_FROM_NAME=${MAIL_FROM_NAME}
    volumes:
      - public_upload:/var/www/bookstack/public/uploads
      - storage_upload:/var/www/bookstack/storage/uploads
networks:
  mysql_mynet:
    external: true
volumes:
  public_upload:
    driver: local
    driver_opts:
      type: none
      device: /srv/bookstack/public/uploads
      o: bind
  storage_upload:
    driver: local
    driver_opts:
      type: none
      device: /srv/bookstack/storage/uploads
      o: bind
  • Create .env file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
DB_HOST=mysql
DB_DATABASE=bookstack
DB_USERNAME=bookstack
DB_PASSWORD=secret

MAIL_DRIVER=smtp
# SMTP server host address
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_ENCRYPTION=tls
MAIL_VERIFY_SSL=false

# Authentication details for your SMTP service
MAIL_USERNAME=<gmail address>
MAIL_PASSWORD=<password>

# The "from" email address for outgoing email
MAIL_FROM=<from email address>

# The "from" name used for outgoing email
MAIL_FROM_NAME=BookStack
  • Docker compose up
1
docker-compose up -d
Note:
  • Default username: admin@admin.com
  • Default password: password