Bookstack on Docker
Go to file
2026-01-09 11:16:13 +07:00
docker-compose.yml Добавить docker-compose.yml 2026-01-06 22:17:31 +07:00
Readme Обновить Readme 2026-01-09 11:16:13 +07:00

mkdir -p ~/bookstack && cd ~/bookstack

nano docker-compose.yml

services:
  bookstack:
    image: lscr.io/linuxserver/bookstack:version-v25.12
    container_name: bookstack
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Krasnoyarsk
      - APP_URL=https://your.domain.ru
      - APP_KEY=base64:8sR1Fv9xLjZK3mNqYhGcVpWbUeTnXaD2JkM5fEoH7C0=
      - DB_HOST=bookstack_db
      - DB_PORT=3306
      - DB_USERNAME=bs_usr
      - DB_PASSWORD=bs_psswd
      - DB_DATABASE=bs_db
    volumes:
      - ./bookstack/config:/config
    ports:
      - 6875:80
    restart: unless-stopped
    depends_on:
      - bookstack_db
    networks:
      - bookstack_net

  bookstack_db:
    image: lscr.io/linuxserver/mariadb:latest
    container_name: bookstack_db
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Krasnoyarsk
      - MYSQL_ROOT_PASSWORD=bookstack_psswd
      - MYSQL_DATABASE=bs_db
      - MYSQL_USER=bs_usr
      - MYSQL_PASSWORD=bs_psswd
    volumes:
      - ./bookstack/db:/config
    restart: unless-stopped
    networks:
      - bookstack_net

networks:
  bookstack_net:
    driver: bridge

docker compose up -d

#так как lscr.io - уебанский сервис и слои зависают на скачивалии - несколько раз нажимаем ctrl + c и снова docker compose up -d. Слои докачаются.

Первый вход:
Логин (email): admin@admin.com
Пароль: password

#замена ссылок при смене IP
docker exec -it bookstack_db mysql -u bookstack -p bookstack
USE bookstack;
#заменяем старый IP на новый в тексте страниц
UPDATE pages SET html = REPLACE(html, 'http://192.168.30.55:6875', 'http://192.168.30.100:6875');
#заменяем в заголовках (если используются)
UPDATE pages SET text = REPLACE(text, 'http://192.168.30.55:6875', 'http://192.168.30.100:6875');
#заменяем в загруженных файлах (изображения, PDF и т.д.)
UPDATE uploads SET path = REPLACE(path, 'http://192.168.30.55:6875', 'http://192.168.30.100:6875');

#как сделать дамп БД:
docker compose up -d bookstack_db
docker exec -i bookstack_db mysqldump -u bookstack -pyoupassword bookstack > /tmp/bookstack_dump.sql
docker compose down bookstack_db
ls -lh /tmp/bookstack_dump.sql
scp /tmp/bookstack_dump.sql root@192.168.30.55:/tmp/
scp -r ./bookstack root@192.168.30.55:/

#на целевом хосте
mv /bookstack ~/bookstack
cd ~/bookstack
docker compose up -d bookstack_db
docker exec -i bookstack_db mysql -u bookstack -pyourpassword bookstack < /tmp/bookstack_dump.sql
docker compose down bookstack_db
docker compose up -d