summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-10-18 15:11:59 +0300
committerPaul Buetow <paul@buetow.org>2025-10-18 15:11:59 +0300
commit77b1a714b00901b47ea7544ab10f759df864fdfa (patch)
tree3731a355ce42c270859c2e29af88d9906a9337e4
parent15088346fc7a71552bef8b9a56da5d8706101ea8 (diff)
added koreader-sync-server
-rw-r--r--f3s/kobo-sync-server/Justfile12
-rw-r--r--f3s/kobo-sync-server/README.md43
-rw-r--r--f3s/kobo-sync-server/helm-chart/Chart.yaml5
-rw-r--r--f3s/kobo-sync-server/helm-chart/templates/deployment.yaml26
-rw-r--r--f3s/kobo-sync-server/helm-chart/templates/ingress.yaml18
-rw-r--r--f3s/kobo-sync-server/helm-chart/templates/persistent-volume.yaml28
-rw-r--r--f3s/kobo-sync-server/helm-chart/templates/service.yaml11
-rw-r--r--frontends/Rexfile2
8 files changed, 144 insertions, 1 deletions
diff --git a/f3s/kobo-sync-server/Justfile b/f3s/kobo-sync-server/Justfile
new file mode 100644
index 0000000..d1c198f
--- /dev/null
+++ b/f3s/kobo-sync-server/Justfile
@@ -0,0 +1,12 @@
+NAMESPACE := "services"
+RELEASE_NAME := "koreader-sync-server"
+CHART_PATH := "./helm-chart"
+
+install:
+ helm install {{RELEASE_NAME}} {{CHART_PATH}} --namespace {{NAMESPACE}} --create-namespace
+
+upgrade:
+ helm upgrade {{RELEASE_NAME}} {{CHART_PATH}} --namespace {{NAMESPACE}}
+
+delete:
+ helm uninstall {{RELEASE_NAME}} --namespace {{NAMESPACE}}
diff --git a/f3s/kobo-sync-server/README.md b/f3s/kobo-sync-server/README.md
new file mode 100644
index 0000000..559e2eb
--- /dev/null
+++ b/f3s/kobo-sync-server/README.md
@@ -0,0 +1,43 @@
+# Kobo Sync Server
+
+This directory contains the Helm chart for deploying the [koreader-sync-server](https://github.com/koreader/koreader-sync-server).
+
+## Prerequisites
+
+Before installing the chart, you must manually create the following directory on your `f0` host system to be used by the persistent volume:
+
+- `/data/nfs/k3svolumes/koreader-sync-server/data`
+
+To do so, run the following command on `f0`:
+
+```bash
+mkdir -p /data/nfs/k3svolumes/koreader-sync-server/data
+```
+
+## Deployment
+
+To deploy the koreader-sync-server to the k3s cluster, you can use the `Justfile` in this directory.
+
+### Install
+
+To install the Helm chart, run the following command:
+
+```bash
+just install
+```
+
+### Upgrade
+
+To upgrade the Helm chart, run the following command:
+
+```bash
+just upgrade
+```
+
+### Delete
+
+To delete the Helm chart, run the following command:
+
+```bash
+just delete
+```
diff --git a/f3s/kobo-sync-server/helm-chart/Chart.yaml b/f3s/kobo-sync-server/helm-chart/Chart.yaml
new file mode 100644
index 0000000..671368a
--- /dev/null
+++ b/f3s/kobo-sync-server/helm-chart/Chart.yaml
@@ -0,0 +1,5 @@
+apiVersion: v2
+name: koreader-sync-server
+description: A Helm chart for deploying a koreader-sync-server
+version: 0.1.0
+appVersion: "latest"
diff --git a/f3s/kobo-sync-server/helm-chart/templates/deployment.yaml b/f3s/kobo-sync-server/helm-chart/templates/deployment.yaml
new file mode 100644
index 0000000..2f742df
--- /dev/null
+++ b/f3s/kobo-sync-server/helm-chart/templates/deployment.yaml
@@ -0,0 +1,26 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: koreader-sync-server
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: koreader-sync-server
+ template:
+ metadata:
+ labels:
+ app: koreader-sync-server
+ spec:
+ containers:
+ - name: koreader-sync-server
+ image: koreader/kosync:latest
+ ports:
+ - containerPort: 17200
+ volumeMounts:
+ - name: data
+ mountPath: /var/lib/redis
+ volumes:
+ - name: data
+ persistentVolumeClaim:
+ claimName: koreader-sync-server-data
diff --git a/f3s/kobo-sync-server/helm-chart/templates/ingress.yaml b/f3s/kobo-sync-server/helm-chart/templates/ingress.yaml
new file mode 100644
index 0000000..d5991cf
--- /dev/null
+++ b/f3s/kobo-sync-server/helm-chart/templates/ingress.yaml
@@ -0,0 +1,18 @@
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: koreader-sync-server-ingress
+ annotations:
+ kubernetes.io/ingress.class: "traefik"
+spec:
+ rules:
+ - host: koreader.f3s.buetow.org
+ http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: koreader-sync-server
+ port:
+ number: 80
diff --git a/f3s/kobo-sync-server/helm-chart/templates/persistent-volume.yaml b/f3s/kobo-sync-server/helm-chart/templates/persistent-volume.yaml
new file mode 100644
index 0000000..33a8ade
--- /dev/null
+++ b/f3s/kobo-sync-server/helm-chart/templates/persistent-volume.yaml
@@ -0,0 +1,28 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: koreader-sync-server-data-pv
+spec:
+ capacity:
+ storage: 1Gi
+ volumeMode: Filesystem
+ accessModes:
+ - ReadWriteOnce
+ persistentVolumeReclaimPolicy: Retain
+ hostPath:
+ path: /data/nfs/k3svolumes/koreader-sync-server/data
+ type: Directory
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: koreader-sync-server-data
+ namespace: services
+spec:
+ storageClassName: ""
+ accessModes:
+ - ReadWriteOnce
+ resources:
+ requests:
+ storage: 1Gi
+ volumeName: koreader-sync-server-data-pv
diff --git a/f3s/kobo-sync-server/helm-chart/templates/service.yaml b/f3s/kobo-sync-server/helm-chart/templates/service.yaml
new file mode 100644
index 0000000..e0fb9ae
--- /dev/null
+++ b/f3s/kobo-sync-server/helm-chart/templates/service.yaml
@@ -0,0 +1,11 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: koreader-sync-server
+spec:
+ selector:
+ app: koreader-sync-server
+ ports:
+ - protocol: TCP
+ port: 80
+ targetPort: 17200
diff --git a/frontends/Rexfile b/frontends/Rexfile
index 0079387..a700e38 100644
--- a/frontends/Rexfile
+++ b/frontends/Rexfile
@@ -77,7 +77,7 @@ our @dns_zones_remove = qw//;
# k3s cluster running on FreeBSD in my LAN
our @f3s_hosts =
- qw/f3s.buetow.org anki.f3s.buetow.org bag.f3s.buetow.org flux.f3s.buetow.org audiobookshelf.f3s.buetow.org gpodder.f3s.buetow.org radicale.f3s.buetow.org vault.f3s.buetow.org syncthing.f3s.buetow.org uprecords.f3s.buetow.org/;
+ qw/f3s.buetow.org anki.f3s.buetow.org bag.f3s.buetow.org flux.f3s.buetow.org audiobookshelf.f3s.buetow.org gpodder.f3s.buetow.org radicale.f3s.buetow.org vault.f3s.buetow.org syncthing.f3s.buetow.org uprecords.f3s.buetow.org koreader.f3s.buetow.org/;
# optionally, only enable manually for temp time, as no password protection yet
# push @f3s_hosts, 'registry.f3s.buetow.org';