Skip to main content

Docker Install

  1. Rent a VPS with 2GB of RAM or more
  2. Install Ubuntu 24.04 or whatever you want
  3. Install updates
  4. Install docker and docker-compose
  5. add user to the docker group
  6. create the following two files 
    1. docker-compose.yml

      version: '3'
      
      services:
        caddy:
          image: caddy:latest
          container_name: caddy
          ports:
            - 80:80       # HTTP
            - 443:443     # HTTPS
          volumes:
            - ./Caddyfile:/etc/caddy/Caddyfile
            - caddy_data:/data
            - caddy_config:/config
          restart: unless-stopped
      
        bookstack:
          image: linuxserver/bookstack:latest
          container_name: bookstack
          environment:
            - PUID=1000               # Change to your user id
            - PGID=1000               # Change to your group id
            - APP_URL=https://web.site.url  # Change this to your domain
            - DB_HOST=db
            - DB_USER=bookstack       # BookStack database username
            - DB_PASS=secret          # BookStack database password
            - DB_DATABASE=bookstack   # BookStack database name
          volumes:
            - ./bookstack_data:/config
          depends_on:
            - db
          restart: unless-stopped
      
        db:
          image: mysql:5.7
          container_name: bookstack_db
          environment:
            - MYSQL_ROOT_PASSWORD=rootpassword  # Root password for MySQL
            - MYSQL_DATABASE=bookstack          # Create BookStack database
            - MYSQL_USER=bookstack              # BookStack database username
            - MYSQL_PASSWORD=secret             # BookStack database password
          volumes:
            - ./mysql_data:/var/lib/mysql
          restart: unless-stopped
      
      volumes:
        caddy_data:
        caddy_config:
      
    2. Caddyfile

       

      web.site.url {
          reverse_proxy bookstack:80  # Proxy traffic to the BookStack container
          encode gzip
      }
      
      # Redirect HTTP to HTTPS
      :80 {
          redir https://{host}{uri}
      }


  7. run docker-compose up -d
  8. Log in with admin@admin.com and password
  9. Change admin login and you're done