diff --git a/Kavita/docker-compose.yaml b/Kavita/docker-compose.yaml new file mode 100644 index 0000000..fbc4086 --- /dev/null +++ b/Kavita/docker-compose.yaml @@ -0,0 +1,41 @@ +version: "3" + +services: + kavita: + image: jvmilazz0/kavita:latest # Using the stable branch from the offical repo. + container_name: kavita + volumes: + - ${KAVITA_DIR}:/kavita/config # /kavita/config must not be changed + - ${KAVITA_DATA_DIR}:/data + env_file: + - stack.env + ports: + - ${KAVITA_PORT_HTTP}:5000 + restart: unless-stopped + labels: + - traefik.enable=true + + # HTTP redirection to HTTPS + - traefik.http.routers.kavita.entrypoints=web + - traefik.http.routers.kavita.rule=Host(`${KAVITA_URL}`) + - traefik.http.middlewares.kavita-https-redirect.redirectscheme.scheme=https + - traefik.http.routers.kavita.middlewares=kavita-https-redirect + + # HTTPS config + - traefik.http.routers.kavita-secure.entrypoints=websecure + - traefik.http.routers.kavita-secure.rule=Host(`${KAVITA_URL}`) + - traefik.http.routers.kavita-secure.tls=true + - traefik.http.routers.kavita-secure.tls.certresolver=myresolver + - traefik.http.services.kavita-secure.loadbalancer.server.port=5000 + + - traefik.docker.network=proxy + + - homepage.group=Media + - homepage.name=Kavita + - homepage.icon=kavita.png + - homepage.href=https://${KAVITA_URL} + - homepage.description=Books, comics and mangas + - homepage.widget.type=kavita + - homepage.widget.url=https://${KAVITA_URL} + - homepage.widget.username=${KAVITA_API_USERNAME} + - homepage.widget.password=${KAVITA_API_PASSWORD} \ No newline at end of file diff --git a/Kavita/stack.env b/Kavita/stack.env new file mode 100644 index 0000000..887293d --- /dev/null +++ b/Kavita/stack.env @@ -0,0 +1,10 @@ + +KAVITA_PORT_HTTP=5000 +KAVITA_DIR=/path/to/kavita +KAVITA_DATA_DIR=/path/to/books +KAVITA_URL=books.example.com + +KAVITA_API_USERNAME=YourAdminUsername +KAVITA_API_PASSWORD=YourAdminPassword + +TZ=America/Toronto