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 65a8a9bda8c4891e30f6062136ce4e8a772fc130

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