From 4acccbe392a115644e1547e4372fdc950245e525 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Thu, 27 Nov 2025 19:45:39 -0600 Subject: [PATCH] Remove aborted kanboard, add donetick --- manifests/donetick/configmap.yaml | 79 +++++++++++++++++++ manifests/donetick/deployment.yaml | 38 +++++++++ manifests/donetick/ingress.yaml | 15 ++++ manifests/donetick/kustomization.yaml | 9 +++ .../{kanboard => donetick}/namespace.yaml | 2 +- manifests/donetick/pvc.yaml | 11 +++ manifests/donetick/service.yaml | 13 +++ manifests/kanboard/chart.yaml | 61 -------------- manifests/kanboard/kustomize.yaml | 5 -- manifests/kustomization.yaml | 1 + 10 files changed, 167 insertions(+), 67 deletions(-) create mode 100644 manifests/donetick/configmap.yaml create mode 100644 manifests/donetick/deployment.yaml create mode 100644 manifests/donetick/ingress.yaml create mode 100644 manifests/donetick/kustomization.yaml rename manifests/{kanboard => donetick}/namespace.yaml (70%) create mode 100644 manifests/donetick/pvc.yaml create mode 100644 manifests/donetick/service.yaml delete mode 100644 manifests/kanboard/chart.yaml delete mode 100644 manifests/kanboard/kustomize.yaml diff --git a/manifests/donetick/configmap.yaml b/manifests/donetick/configmap.yaml new file mode 100644 index 0000000..29d0849 --- /dev/null +++ b/manifests/donetick/configmap.yaml @@ -0,0 +1,79 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: donetick-config + namespace: donetick +data: + # Value pulled from + # https://github.com/donetick/donetick/blob/main/config/selfhosted.yaml + selfhosted.yaml: |- + name: "selfhosted" + is_done_tick_dot_com: false + is_user_creation_disabled: false + telegram: + token: "" + pushover: + token: "" + database: + type: "sqlite" + migration: true + # these are only required for postgres + host: "secret" + port: 5432 + user: "secret" + password: "secret" + name: "secret" + jwt: + secret: "This is really a secure JWT secret now!" + session_time: 168h + max_refresh: 168h + server: + port: 2021 + read_timeout: 10s + write_timeout: 10s + rate_period: 60s + rate_limit: 300 + cors_allow_origins: + - "http://localhost:5173" + - "http://localhost:7926" + # the below are required for the android app to work + - "https://localhost" + - "capacitor://localhost" + serve_frontend: true + logging: + level: "info" + encoding: "json" + development: false + scheduler_jobs: + due_job: 30m + overdue_job: 3h + pre_due_job: 3h + email: + host: + port: + key: + email: + appHost: + oauth2: + client_id: + client_secret: + auth_url: + token_url: + user_info_url: + redirect_url: + name: + # Real-time configuration + realtime: + enabled: true + sse_enabled: true + heartbeat_interval: 60s + connection_timeout: 120s + max_connections: 1000 + max_connections_per_user: 5 + event_queue_size: 2048 + cleanup_interval: 2m + stale_threshold: 5m + enable_compression: true + enable_stats: true + allowed_origins: + - "*" diff --git a/manifests/donetick/deployment.yaml b/manifests/donetick/deployment.yaml new file mode 100644 index 0000000..3744a03 --- /dev/null +++ b/manifests/donetick/deployment.yaml @@ -0,0 +1,38 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: donetick + namespace: donetick +spec: + replicas: 1 + selector: + matchLabels: + app: donetick + template: + metadata: + labels: + app: donetick + spec: + containers: + - name: donetick + image: donetick/donetick + ports: + - containerPort: 2021 + name: http + env: + - name: DT_ENV + value: "selfhosted" + - name: DT_SQLITE_PATH + value: "/data/donetick.db" + volumeMounts: + - name: config + mountPath: /config + - name: data + mountPath: /data + volumes: + - name: config + configMap: + name: donetick-config + - name: data + persistentVolumeClaim: + claimName: donetick-data diff --git a/manifests/donetick/ingress.yaml b/manifests/donetick/ingress.yaml new file mode 100644 index 0000000..7e46bc1 --- /dev/null +++ b/manifests/donetick/ingress.yaml @@ -0,0 +1,15 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: donetick-tailscale + namespace: donetick +spec: + ingressClassName: tailscale + defaultBackend: + service: + name: donetick + port: + number: 2021 + tls: + - hosts: + - todo diff --git a/manifests/donetick/kustomization.yaml b/manifests/donetick/kustomization.yaml new file mode 100644 index 0000000..7a67d25 --- /dev/null +++ b/manifests/donetick/kustomization.yaml @@ -0,0 +1,9 @@ +namespace: donetick + +resources: + - namespace.yaml + - configmap.yaml + - pvc.yaml + - deployment.yaml + - service.yaml + - ingress.yaml diff --git a/manifests/kanboard/namespace.yaml b/manifests/donetick/namespace.yaml similarity index 70% rename from manifests/kanboard/namespace.yaml rename to manifests/donetick/namespace.yaml index 8a4613c..928c8eb 100644 --- a/manifests/kanboard/namespace.yaml +++ b/manifests/donetick/namespace.yaml @@ -1,4 +1,4 @@ apiVersion: v1 kind: Namespace metadata: - name: kanboard + name: donetick diff --git a/manifests/donetick/pvc.yaml b/manifests/donetick/pvc.yaml new file mode 100644 index 0000000..ba9c2c7 --- /dev/null +++ b/manifests/donetick/pvc.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: donetick-data + namespace: donetick +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi diff --git a/manifests/donetick/service.yaml b/manifests/donetick/service.yaml new file mode 100644 index 0000000..4630479 --- /dev/null +++ b/manifests/donetick/service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: donetick + namespace: donetick +spec: + selector: + app: donetick + ports: + - name: http + port: 2021 + targetPort: 2021 + protocol: TCP diff --git a/manifests/kanboard/chart.yaml b/manifests/kanboard/chart.yaml deleted file mode 100644 index 4b907bd..0000000 --- a/manifests/kanboard/chart.yaml +++ /dev/null @@ -1,61 +0,0 @@ -apiVersion: source.toolkit.fluxcd.io/v1 -kind: HelmRepository -metadata: - name: hellings -spec: - interval: "24h" - url: https://src.thehellings.com/greg/helm-chart ---- -apiVersion: helm.toolkit.fluxcd.io/v2 -kind: HelmRelease -metadata: - name: kanboard -spec: - interval: 1h - chart: - spec: - chart: hellings - version: "1.0.0" - sourceRef: - kind: HelmRepository - name: hellings - interval: "1h" - values: - fullnameOverride: kanboard - image: - repository: kanboard - tag: v1.2.47 - database: - postgres: - enabled: true - readinessProbe: - httpGet: - path: /healthcheck.php - pvc: - - name: kanboard-data - path: /var/www/app/data - size: 10Gi - - name: kanboard-plugins - path: /var/www/app/plugins - size: 10Gi - environment: - - name: DB_DRIVER - value: postgres - - name: DB_HOSTNAME - value: cluster.db.svc.local - - name: DB_NAME - value: kanboard - - name: DB_USERNAME - valueFrom: - secretKeyRef: - name: kanboard-postgres-user - key: username - - name: DB_PASSWORD - valueFrom: - secretKeyRef: - name: kanboard-postgres-user - key: password - - name: LOG_DRIVER - value: stdout - - name: PLUGIN_INSTALLER - value: "true" diff --git a/manifests/kanboard/kustomize.yaml b/manifests/kanboard/kustomize.yaml deleted file mode 100644 index 43675d7..0000000 --- a/manifests/kanboard/kustomize.yaml +++ /dev/null @@ -1,5 +0,0 @@ -namespace: kanboard - -resources: - - namespace.yaml - - helm.yaml diff --git a/manifests/kustomization.yaml b/manifests/kustomization.yaml index c73100e..3d7f764 100644 --- a/manifests/kustomization.yaml +++ b/manifests/kustomization.yaml @@ -13,3 +13,4 @@ resources: - pinchflat - smokeping - uptimekuma + - donetick