# BookStack構築

# 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


```

# 見出しサイズの確認

# 見出し1

## 見出し2

### 見出し3

#### 見出し4

##### 見出し5

###### 見出し6

通常の文章

# 全テーブルを削除し、再作成する

バージョンアップなどで、必要に応じて実施する。（前テーブルが削除されるので、バックアップ必須）

```
docker compose exec -it bookstack bash 
cd /app/www
php artisan migrate:fresh

```

[https://www.reddit.com/r/BookStack/comments/1izk6ns/sorting\_completely\_broken\_after\_updating/](https://www.reddit.com/r/BookStack/comments/1izk6ns/sorting_completely_broken_after_updating/)

[https://manualmaton.com/2024/09/15/bookstack%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%90%E7%A7%BB%E8%A1%8C%E3%81%A7%E3%83%8F%E3%83%9E%E3%81%A3%E3%81%9F%E3%81%93%E3%81%A8%E3%80%82/](https://manualmaton.com/2024/09/15/bookstack%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%90%E7%A7%BB%E8%A1%8C%E3%81%A7%E3%83%8F%E3%83%9E%E3%81%A3%E3%81%9F%E3%81%93%E3%81%A8%E3%80%82/)

[https://github.com/BookStackApp/BookStack/issues/5506](https://github.com/BookStackApp/BookStack/issues/5506)

# DBにバックアップデータを投入する

```
docker compose exec -it bookstack_db bash
mysql -h localhost -u bookstack -p bookstackapp < /db_backup/bookstack_backup.$(date +%Y%m%d).sql

```

# バックアップを行う

https://www.bookstackapp.com/docs/admin/backup-restore/

### データベース

```
docker compose exec -it bookstack_db bash
mysqldump -h localhost -u bookstack -p --no-tablespaces --single-transaction bookstackapp > bookstack_backup.$(date +%Y%m%d).sql

```

### ファイル

```
docker compose exec -it bookstack bash
tar -czvf bookstack-files-backup.tar.gz .env public/uploads storage/uploads themes

```

# CSSいじり

```
<style>

.page-content h1 {
    font-size: 2.3em;
    border-bottom: solid 1.5px;
}
.page-content h2 {
    font-size: 1.9em;
    border-bottom: solid 0.8px;
}
.page-content h3 {
    font-size: 1.6em;
}
.page-content h4 {
    font-size: 1.6em;
}

</style>

```