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