diff --git a/donetick/donetick.yaml b/donetick/donetick.yaml new file mode 100644 index 0000000..2e266d0 --- /dev/null +++ b/donetick/donetick.yaml @@ -0,0 +1,121 @@ +# ================================ +# DONETICK - CHORE & TASK TRACKER +# https://github.com/donetick/donetick +# ================================ + +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: donetick-pv +spec: + capacity: + storage: 1Gi + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + storageClassName: donetick-local-storage + local: + path: /home/kimjunte/k8s_storage/donetick + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: + - mist + +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: donetick-pvc +spec: + accessModes: + - ReadWriteOnce + storageClassName: donetick-local-storage + resources: + requests: + storage: 1Gi + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: donetick + labels: + app: donetick +spec: + replicas: 1 + selector: + matchLabels: + app: donetick + template: + metadata: + labels: + app: donetick + spec: + nodeSelector: + kubernetes.io/hostname: mist + containers: + - name: donetick + image: donetick/donetick:latest + ports: + - containerPort: 2021 + env: + - name: DT_ENV + value: "selfhosted" + - name: DT_SQLITE_PATH + value: "/donetick-data/donetick.db" + - name: TZ + value: "America/Toronto" + resources: + requests: + cpu: "100m" + memory: "128Mi" + limits: + cpu: "500m" + memory: "256Mi" + volumeMounts: + - name: donetick-data + mountPath: /donetick-data + - name: donetick-data + mountPath: /config + subPath: config + volumes: + - name: donetick-data + persistentVolumeClaim: + claimName: donetick-pvc + +--- +apiVersion: v1 +kind: Service +metadata: + name: donetick +spec: + selector: + app: donetick + ports: + - port: 2021 + targetPort: 2021 + +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: donetick-ingressroute +spec: + entryPoints: + - websecure + routes: + - match: Host(`donetick.juntekim.com`) + kind: Rule + services: + - name: donetick + port: 2021 + tls: + certResolver: myresolver + domains: + - main: donetick.juntekim.com diff --git a/juntekim_frontend/app/Learning/Todo.md b/juntekim_frontend/app/Learning/Todo.md index a335209..b6bd0aa 100644 --- a/juntekim_frontend/app/Learning/Todo.md +++ b/juntekim_frontend/app/Learning/Todo.md @@ -25,3 +25,4 @@ - [ ] Pandas textbook - [ ] Home Assistant docs on dashboard - [ ] Engineering Management for the Rest of Us +- [ ] https://docs.localstack.cloud/aws/getting-started/installation/#docker-compose diff --git a/juntekim_frontend/app/SelfHosted/page.tsx b/juntekim_frontend/app/SelfHosted/page.tsx index 8f66e80..f4b734a 100644 --- a/juntekim_frontend/app/SelfHosted/page.tsx +++ b/juntekim_frontend/app/SelfHosted/page.tsx @@ -100,6 +100,12 @@ const services = [ url: "https://traefik.mealcraft.com/dashboard/", icon: "📊" }, + { + name: "Donetick", + description: "Chore and task tracker for managing recurring to-dos", + url: "https://donetick.juntekim.com", + icon: "✅" + }, { name: "Papra", description: "Document management and ingestion platform for organizing files",