# QNAPNASのContainerStation上でBookStackを構築する

### 手順
- **1. アプリケーションを作成する**
  - Container Stationでアプリケーションを新規作成する
    - "再作成"だとうまくいかないので、作り直す場合は一度アプリケーションごと削除してから、新しく作成する。
    - nginxデフォルトの `404 Not Found - nginx/x.xx.x`が表示されることを確認する。
- **2. bookstack_nginxコンテナ上のnginx設定を調整する**
  - bookstack_nginxコンテナに入り、`/etc/nginx/conf.d/default.conf`の内容調整を行う。
  - 具体的には下記の手順を踏む。
    - nanoエディタをインストールする
      - `apt-get update; apt-get install -y nano;`
    - ファイルを開く
      - `nano /etc/nginx/conf.d/default.conf`
    - `location / {proxy_pass http://bookstack/;}`を記載する。
      - `location /`にほかの内容が定義されている場合は、その内容をコメントアウトしておく。
      - `include /etc/nginx/mime.types;`を念のため記述しておく。
    - ファイルを保存し、閉じる
      - `Ctrl + X` ⇒ `Y` ⇒ `Enter` で上書き保存ができる。
- **3. bookstack_nginxコンテナを再起動する**
  - bookstackコンテナとbookstack_dbのログが落ち着いていること（初期設定が終わっていること）を確認したら、bookstack_ngixコンテナのみを再起動する。
- **4. バックアップ済みデータを投入する**
  - bookstackコンテナに入り、バックアップデータを投入する。
  - `docker compose exec -it bookstack_db bash`
  - `/usr/bin/mariadb -h localhost -u bookstack -p bookstackapp < /db_backup/bookstack_backup.$(date +%Y%m%d).sql`


### docker-compose.yml
```
services:
  bookstack:
    image: lscr.io/linuxserver/bookstack
    container_name: bookstack
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Tokyo
      - APP_URL=https://bookstack.nonoha.me
      - APP_KEY=base64:FFVPzMApkfvCi+Ns/SbduItMOkbhPP6oVs4aH7EPHFk=
      - DB_HOST=bookstack_db
      - DB_PORT=3306
      - DB_USERNAME=bookstack
      - DB_PASSWORD=itezoranonoha
      - DB_DATABASE=bookstackapp
    restart: unless-stopped
    depends_on:
      - bookstack_db

  bookstack_db:
    image: lscr.io/linuxserver/mariadb
    container_name: bookstack_db
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Tokyo
      - MYSQL_ROOT_PASSWORD=itezoranonoha
      - MYSQL_DATABASE=bookstackapp
      - MYSQL_USER=bookstack
      - MYSQL_PASSWORD=itezoranonoha
    restart: unless-stopped
    volumes:
      - ./../persistent_data/bookstack/db_backup:/db_backup

  bookstack_nginx:
    image: nginx:latest
    container_name: bookstack_nginx
#    command: bash -c "apt-get update; apt-get install -y nano && /bin/bash"
    ports:
      - 6875:80
    volumes:
#      - ./../persistent_data/bookstack/nginx_conf:/etc/nginx/conf.d
      - ./nginx/html:/var/html
      - /etc/letsencrypt:/etc/letsencrypt
    restart: unless-stopped
#    tty: true

  bookstack_certbot:
    image: certbot/certbot:latest
    container_name: bookstack_certbot
    volumes:
      - /etc/letsencrypt:/etc/letsencrypt
      - ./nginx/html:/var/html

```