This repository was archived by the owner on Mar 23, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompose.yaml
More file actions
100 lines (87 loc) · 2.93 KB
/
compose.yaml
File metadata and controls
100 lines (87 loc) · 2.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
name: booklore
x-daemonless:
title: "BookLore"
icon: ":material-book-open-page-variant:"
category: "Media Management"
description: "Self-hosted digital library with smart shelves, metadata, OPDS support, and built-in reader."
deprecated:
reason: "Upstream development has stopped and the repository has been deleted."
successor: "https://daemonless.io/images/grimmory"
upstream_url: "https://github.com/booklore-app/booklore"
web_url: "https://booklore.org/"
user: "bsd"
mlock: false
upstream_binary: true
notes: |
## Networking
This compose uses `network_mode: host` so services communicate via `127.0.0.1`.
For isolated networking (multiple stacks, no port conflicts), use bridge mode with the [dnsname CNI plugin](https://github.com/containers/dnsname):
```yaml
services:
booklore:
# remove network_mode: host, add ports
ports:
- "6060:6060"
environment:
SPRING_DATASOURCE_URL: "jdbc:mariadb://mariadb:3306/booklore"
mariadb:
# remove network_mode: host
# container name becomes DNS hostname
```
## Migration from Official Image
This image uses `/app/data` for application data, matching the official `ghcr.io/booklore-app/booklore` image. You can migrate from Linux to FreeBSD:
1. Stop containers on source host
2. Copy `/containers/booklore/` (data + mariadb) to destination
3. Start containers on destination
The MariaDB data format is compatible between Linux and FreeBSD.
docs:
env:
SPRING_DATASOURCE_URL: "MariaDB JDBC URL (e.g., jdbc:mariadb://mariadb:3306/booklore)"
SPRING_DATASOURCE_USERNAME: "Database username"
SPRING_DATASOURCE_PASSWORD: "Database password"
JAVA_OPTS: "Additional JVM options"
volumes:
/app/data: "Configuration and application data"
/books: "Book library directory"
/bookdrop: "Drop folder for automatic imports"
ports:
6060: "Web interface"
services:
booklore:
image: ghcr.io/daemonless/booklore:latest
container_name: booklore
network_mode: host
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- SPRING_DATASOURCE_URL=jdbc:mariadb://127.0.0.1:3306/booklore
- SPRING_DATASOURCE_USERNAME=booklore
- SPRING_DATASOURCE_PASSWORD=changeme
volumes:
- booklore-data:/app/data
- booklore-books:/books
- booklore-bookdrop:/bookdrop
depends_on:
- mariadb
restart: unless-stopped
mariadb:
image: ghcr.io/daemonless/mariadb:latest
container_name: booklore-mariadb
network_mode: host
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- MYSQL_ROOT_PASSWORD=changeme
- MYSQL_DATABASE=booklore
- MYSQL_USER=booklore
- MYSQL_PASSWORD=changeme
volumes:
- booklore-mariadb:/config
restart: unless-stopped
volumes:
booklore-data:
booklore-books:
booklore-bookdrop:
booklore-mariadb: