step 1
Services

Step 2
compose

step 3
+

step 4

step 5
start service

step 6
Load page

step 7
Login

step 8
first look

services:
mariadb:
image: mariadb:11.4-noble #LTS Long Time Support Until May 29, 2029.
container_name: BookLore-DB
security_opt:
- no-new-privileges:true
hostname: booklore-db
environment:
MARIADB_DATABASE: booklore
MARIADB_USER: bookloreuser
MARIADB_PASSWORD: booklorepass
MARIADB_ROOT_PASSWORD: rootpass
TZ: Europe/Bucharest
volumes:
- /volume1/docker/booklore/db:/var/lib/mysql:rw
restart: on-failure:5
booklore:
image: ghcr.io/booklore-app/booklore:latest
container_name: BookLore
healthcheck:
test: ["CMD-SHELL", "nc -z 127.0.0.1 6060 || exit 1"]
interval: 10s
timeout: 5s
retries: 3
start_period: 90s
environment:
USER_ID: 1026
GROUP_ID: 100
TZ: Europe/Bucharest
DATABASE_URL: jdbc:mariadb://mariadb:3306/booklore #Or jdbc:mariadb://booklore-db:3306/booklore if you Experience Connection Issues.
DATABASE_USERNAME: bookloreuser
DATABASE_PASSWORD: booklorepass
depends_on:
mariadb:
condition: service_started
ports:
- 6060:6060
volumes:
- /volume1/docker/booklore/data:/app/data:rw
- /volume1/docker/booklore/books:/books:rw
- /volume1/docker/booklore/bookdrop:/bookdrop:rw #Files inside the bookdrop folder are automatically detected.
restart: on-failure:5



