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 7ce16bfc9d7122a2c074913d98fa6eed136480dd

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 healthcheck:
46 test:
47 [
48 "CMD-SHELL",
49 'node -e "fetch(''http://127.0.0.1:3000/api/v1/health'').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"',
50 ]
51 interval: 30s
52 timeout: 5s
53 retries: 3
54 start_period: 20s
55
56 postgres:
57 container_name: bookorbit-db
58 image: pgvector/pgvector:pg16@sha256:7d400e340efb42f4d8c9c12c6427adb253f726881a9985d2a471bf0eed824dff
59 restart: unless-stopped
60 environment:
61 POSTGRES_USER: bookorbit
62 POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
63 POSTGRES_DB: bookorbit
64 PGDATA: /var/lib/postgresql/data/pgdata
65 volumes:
66 - ./data/postgres:/var/lib/postgresql/data
67 healthcheck:
68 test:
69 ["CMD-SHELL", 'pg_isready -U "$${POSTGRES_USER}" -d "$${POSTGRES_DB}"']
70 interval: 10s
71 timeout: 5s
72 retries: 10
73 start_period: 20s