emanuelegori

emanuelegori / BookOrbit

Last active 18 hours ago

Like 0

BookOrbit è una piattaforma self‑hosted e open source per gestire e leggere ebook, audiolibri e fumetti. Offre lettori integrati per più formati, gestione automatica dei metadati, sincronizzazione con Kobo e KOReader, supporto multi‑utente con SSO, cataloghi OPDS privati e analitiche di lettura avanzate, il tutto con una semplice distribuzione via Docker e senza abbonamenti.

Revision e15ad68bfd340d44ed876ef40c6bf68e691cedfc

docker-compose.yml Raw
1services:
2 bookorbit:
3 container_name: bookorbit-app
4 image: ghcr.io/bookorbit/bookorbit:latest
5 restart: unless-stopped
6 init: true
7 ports:
8 - "3000:3000"
9 environment:
10 NODE_ENV: production
11 PORT: 3000
12 POSTGRES_HOST: postgres
13 POSTGRES_PORT: 5432
14 POSTGRES_USER: bookorbit
15 POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
16 POSTGRES_DB: bookorbit
17 JWT_SECRET: ${JWT_SECRET}
18 SETUP_BOOTSTRAP_TOKEN: ${SETUP_BOOTSTRAP_TOKEN}
19 APP_URL: https://libri.tuodominio.it
20 CLIENT_URL: https://libri.tuodominio.it
21 PUID: 1000
22 PGID: 1000
23 NODE_MAX_OLD_SPACE_SIZE: 2048
24 depends_on:
25 postgres:
26 condition: service_healthy
27 volumes:
28 - ./books:/books
29 - ./data/app:/data
30 - ./data/app/book-dock:/data/book-dock
31 read_only: true
32 tmpfs:
33 - /tmp
34 cap_drop:
35 - ALL
36 cap_add:
37 - CHOWN
38 - DAC_OVERRIDE
39 - FOWNER
40 - SETGID
41 - SETUID
42 security_opt:
43 - no-new-privileges:true
44 stop_grace_period: 30s
45 networks:
46 - npm-network
47 healthcheck:
48 test:
49 [
50 "CMD-SHELL",
51 'node -e "fetch(''http://127.0.0.1:3000/api/v1/health'').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"',
52 ]
53 interval: 30s
54 timeout: 5s
55 retries: 3
56 start_period: 20s
57
58 postgres:
59 container_name: bookorbit-db
60 image: pgvector/pgvector:pg16@sha256:7d400e340efb42f4d8c9c12c6427adb253f726881a9985d2a471bf0eed824dff
61 restart: unless-stopped
62 environment:
63 POSTGRES_USER: bookorbit
64 POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
65 POSTGRES_DB: bookorbit
66 PGDATA: /var/lib/postgresql/data/pgdata
67 volumes:
68 - ./data/postgres:/var/lib/postgresql/data
69 healthcheck:
70 test:
71 ["CMD-SHELL", 'pg_isready -U "$${POSTGRES_USER}" -d "$${POSTGRES_DB}"']
72 interval: 10s
73 timeout: 5s
74 retries: 10
75 start_period: 20s
76
77networks:
78 npm-network:
79 name: npm-network
80 external: true