Delete directory 'apps/notesnook'

This commit is contained in:
2026-09-02 19:35:23 +00:00
parent 8f480657ef
commit 1b20db2e02
25 changed files with 0 additions and 585 deletions
-23
View File
@@ -1,23 +0,0 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: notesnook-attachments
namespace: notesnook
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
traefik.ingress.kubernetes.io/router.entrypoints: websecure
spec:
ingressClassName: traefik
rules:
- host: attachments.notes.aleshym.co
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: notesnook-s3
port: { number: 9000 }
tls:
- hosts: ["attachments.notes.aleshym.co"]
secretName: notesnook-attachments-tls
-27
View File
@@ -1,27 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: notesnook-db-init
namespace: notesnook
annotations:
argocd.argoproj.io/hook: PostSync
argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
spec:
backoffLimit: 20
template:
spec:
restartPolicy: OnFailure
containers:
- name: rs-init
image: mongo:7.0.12
command: ["bash", "-c"]
args:
- |
until mongosh mongodb://notesnook-db:27017 --quiet --eval 'db.runCommand("ping").ok' ; do
echo "waiting for mongod..."; sleep 3;
done
mongosh mongodb://notesnook-db:27017 --quiet --eval '
try { rs.status() }
catch (e) { rs.initiate({_id:"rs0", members:[{_id:0, host:"notesnook-db:27017"}]}) }
'
echo "replica set ready"
-13
View File
@@ -1,13 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: notesnook-db
namespace: notesnook
spec:
clusterIP: None
selector:
app: notesnook-db
ports:
- name: mongo
port: 27017
targetPort: 27017
-42
View File
@@ -1,42 +0,0 @@
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: notesnook-db
namespace: notesnook
spec:
serviceName: notesnook-db
replicas: 1
selector:
matchLabels:
app: notesnook-db
template:
metadata:
labels:
app: notesnook-db
spec:
containers:
- name: mongod
image: mongo:7.0.12
args: ["--replSet", "rs0", "--bind_ip_all"]
ports:
- containerPort: 27017
name: mongo
volumeMounts:
- name: dbdata
mountPath: /data/db
readinessProbe:
exec:
command: ["mongosh", "--quiet", "--eval", "db.runCommand('ping').ok"]
initialDelaySeconds: 10
periodSeconds: 15
resources:
requests: { cpu: "100m", memory: "256Mi" }
limits: { cpu: "1000m", memory: "1Gi" }
volumeClaimTemplates:
- metadata:
name: dbdata
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 10Gi
-39
View File
@@ -1,39 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: notesnook-identity
namespace: notesnook
spec:
replicas: 1
selector:
matchLabels:
app: notesnook-identity
template:
metadata:
labels:
app: notesnook-identity
spec:
containers:
- name: identity
image: streetwriters/identity:latest
envFrom:
- configMapRef: { name: notesnook-config }
- secretRef: { name: notesnook-secret }
env:
- name: MONGODB_CONNECTION_STRING
value: "mongodb://notesnook-db:27017/identity?replSet=rs0"
- name: MONGODB_DATABASE_NAME
value: "identity"
ports:
- { containerPort: 8264, name: http }
readinessProbe:
httpGet: { path: /health, port: 8264 }
initialDelaySeconds: 20
periodSeconds: 15
livenessProbe:
httpGet: { path: /health, port: 8264 }
initialDelaySeconds: 60
periodSeconds: 30
resources:
requests: { cpu: "50m", memory: "128Mi" }
limits: { cpu: "500m", memory: "512Mi" }
-23
View File
@@ -1,23 +0,0 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: notesnook-auth
namespace: notesnook
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
traefik.ingress.kubernetes.io/router.entrypoints: websecure
spec:
ingressClassName: traefik
rules:
- host: auth.notes.aleshym.co
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: notesnook-identity
port: { name: http }
tls:
- hosts: ["auth.notes.aleshym.co"]
secretName: notesnook-auth-tls
-10
View File
@@ -1,10 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: notesnook-identity
namespace: notesnook
spec:
selector:
app: notesnook-identity
ports:
- { name: http, port: 8264, targetPort: 8264 }
-27
View File
@@ -1,27 +0,0 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: notesnook
resources:
- namespace.yaml
- notesnook-config.yaml
- notesnook-sealedsecret.yaml
- db-service.yaml
- db-statefulset.yaml
- db-init-job.yaml
- minio-pvc.yaml
- minio-deployment.yaml
- minio-service.yaml
- minio-bucket-job.yaml
- identity-deployment.yaml
- identity-service.yaml
- identity-ingress.yaml
- sync-deployment.yaml
- sync-service.yaml
- sync-ingress.yaml
- sse-deployment.yaml
- sse-service.yaml
- sse-ingress.yaml
- monograph-deployment.yaml
- monograph-service.yaml
- monograph-ingress.yaml
- attachments-ingress.yaml
-26
View File
@@ -1,26 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: notesnook-s3-setup
namespace: notesnook
annotations:
argocd.argoproj.io/hook: PostSync
argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
spec:
backoffLimit: 20
template:
spec:
restartPolicy: OnFailure
containers:
- name: mc
image: minio/mc:RELEASE.2024-07-26T13-08-44Z
envFrom:
- secretRef: { name: notesnook-secret }
command: ["/bin/bash", "-c"]
args:
- |
until mc alias set minio http://notesnook-s3:9000 "$MINIO_ROOT_USER" "$MINIO_ROOT_PASSWORD"; do
sleep 2;
done
mc mb --ignore-existing minio/attachments
echo "bucket ready"
-42
View File
@@ -1,42 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: notesnook-s3
namespace: notesnook
spec:
replicas: 1
strategy: { type: Recreate }
selector:
matchLabels:
app: notesnook-s3
template:
metadata:
labels:
app: notesnook-s3
spec:
containers:
- name: minio
image: minio/minio:RELEASE.2024-07-29T22-14-52Z
args: ["server", "/data/s3", "--console-address", ":9090"]
envFrom:
- secretRef: { name: notesnook-secret }
env:
- name: MINIO_BROWSER
value: "on"
ports:
- { containerPort: 9000, name: api }
- { containerPort: 9090, name: console }
volumeMounts:
- name: s3data
mountPath: /data/s3
readinessProbe:
tcpSocket: { port: 9000 }
initialDelaySeconds: 10
periodSeconds: 15
resources:
requests: { cpu: "50m", memory: "128Mi" }
limits: { cpu: "500m", memory: "512Mi" }
volumes:
- name: s3data
persistentVolumeClaim:
claimName: notesnook-s3-data
-10
View File
@@ -1,10 +0,0 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: notesnook-s3-data
namespace: notesnook
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 20Gi
-11
View File
@@ -1,11 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: notesnook-s3
namespace: notesnook
spec:
selector:
app: notesnook-s3
ports:
- { name: api, port: 9000, targetPort: 9000 }
- { name: console, port: 9090, targetPort: 9090 }
-37
View File
@@ -1,37 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: notesnook-monograph
namespace: notesnook
spec:
replicas: 1
selector:
matchLabels:
app: notesnook-monograph
template:
metadata:
labels:
app: notesnook-monograph
spec:
containers:
- name: monograph
image: streetwriters/monograph:latest
envFrom:
- configMapRef: { name: notesnook-config }
- secretRef: { name: notesnook-secret }
env:
- name: HOST
value: "0.0.0.0"
- name: API_HOST
value: "http://notesnook-sync:5264"
- name: PUBLIC_URL
value: "https://monograph.notes.aleshym.co"
ports:
- { containerPort: 3000, name: http }
readinessProbe:
httpGet: { path: /, port: 3000 }
initialDelaySeconds: 20
periodSeconds: 15
resources:
requests: { cpu: "50m", memory: "128Mi" }
limits: { cpu: "500m", memory: "512Mi" }
-21
View File
@@ -1,21 +0,0 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: notesnook-monograph
namespace: notesnook
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
traefik.ingress.kubernetes.io/router.entrypoints: websecure
spec:
ingressClassName: traefik
rules:
- host: monograph.notes.aleshym.co
http:
paths:
- path: /
pathType: Prefix
backend:
service: { name: notesnook-monograph, port: { name: http } }
tls:
- hosts: ["monograph.notes.aleshym.co"]
secretName: notesnook-monograph-tls
-10
View File
@@ -1,10 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: notesnook-monograph
namespace: notesnook
spec:
selector:
app: notesnook-monograph
ports:
- { name: http, port: 3000, targetPort: 3000 }
-4
View File
@@ -1,4 +0,0 @@
apiVersion: v1
kind: Namespace
metadata:
name: notesnook
-29
View File
@@ -1,29 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: notesnook-config
namespace: notesnook
data:
INSTANCE_NAME: "aleshym-notesnook"
DISABLE_SIGNUPS: "true"
NOTESNOOK_APP_PUBLIC_URL: "https://app.notesnook.com"
AUTH_SERVER_PUBLIC_URL: "https://auth.notes.aleshym.co"
MONOGRAPH_PUBLIC_URL: "https://monograph.notes.aleshym.co"
ATTACHMENTS_SERVER_PUBLIC_URL: "https://attachments.notes.aleshym.co"
NOTESNOOK_CORS_ORIGINS: "https://app.notesnook.com,https://notes.aleshym.co"
KNOWN_PROXIES: ""
SELF_HOSTED: "1"
NOTESNOOK_SERVER_HOST: "notesnook-sync"
NOTESNOOK_SERVER_PORT: "5264"
IDENTITY_SERVER_HOST: "notesnook-identity"
IDENTITY_SERVER_PORT: "8264"
SSE_SERVER_HOST: "notesnook-sse"
SSE_SERVER_PORT: "7264"
IDENTITY_SERVER_URL: "https://auth.notes.aleshym.co"
NOTESNOOK_APP_HOST: "https://app.notesnook.com"
S3_INTERNAL_SERVICE_URL: "http://notesnook-s3:9000"
S3_INTERNAL_BUCKET_NAME: "attachments"
S3_SERVICE_URL: "https://attachments.notes.aleshym.co"
S3_BUCKET_NAME: "attachments"
S3_REGION: "us-east-1"
MINIO_BROWSER: "on"
@@ -1,24 +0,0 @@
---
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
name: notesnook-secret
namespace: notesnook
spec:
encryptedData:
MINIO_ROOT_PASSWORD: AgDAj0bx9aNQHIXAcNB3YfA4+P5qIhVNwEDBDDTEcJ9OQ3qrmTrZ0HtYIWswMU1CYuCGzfCT9sdoJ94L4VFWCdqavHdPn3/zDtXXR7WAaMOoYygiKIPTVO1rmRNnk0gzirl1aWSm+fWsc61+SYCvx08C/RnSyTeocfhpY0rvm0r9eiIxmdjc0u2VKksh1ARSkSqJkLniPXBH6PCFH/tUOH3FZqYycCW+FEhj8KE9D/FIVKy3pCFhfg9KfH7XHqQx5wnQ0j2aL9ljqA6DPI6tDB5rcR8lW7+3iC8X3YZwaExFfWq+3ksZj5LLnESBlqwvV1IY8B7k1VoiL8f5r/5VAE/EJ6SFvIueoOnKxUWC+NJroWeBSnk0isDpNPluVkrGJOVTHv0bx3bAhUVjr3lQsimvyi1ZZXKvr/b/Hpg++RLTF3wBGLjM7tsJ0RHnzysvIyfg8euU2OYitjfkQKbvDIREkU5A0AQ35oapgNnVAB2gWlm4SAkkfOQuT/oowTOLEYKg4zzk64lQiOWFtD5q82Dr6PU6s/snIDixkY/5ICgcV5/Y1Oq0wtvhblDBroWpEnohoQAqlYkRNN4jh+oSEJwJORv6mF370XxBxY9k3h/IyCdJeC9xv9DocUjUP+FU9HQE7Qvd3OcNag1DAyhmtLv5wDgZEea3fPX5XMhnvE5U+YUxZDXkN1MchItTTMMim5fySIPg5KZ+Hr2Ticpxfjw47RMFNH3y2qfDqb8hBfB9SA==
MINIO_ROOT_USER: AgAyLNT8gHmThqLjQBBcmoZsxtEG/ZR/hjUICEZKAyF8+FV6A3WFizA8tYBzjNyfaGFSdS2yLmZGbwtEKmHSApBmXoY4xgnyZpEjh2whsgeBjMFdx2jWt+odvEaPGA+xEbuODJbkJMQiXhi/ctyiMD1/y6WIWZ5Ya8Ahz469di0fT1znMk9B050FKFgVEK6Sfzb8MQuZBj2wukTgZ2rlKMQ+7EQi6pb6cEATLDjheXvbgx4g9LTPwVN+1uZcC5GU7jg/IGJcEg/QJfmOCgRmz9iDx3/d9lFnDnJBOv8Plt6PmWEMR9QOvdQjUhWiN2BwrdICHqFxFTnV+z9JbMk2kT2Ovw6W239BT+KbabEaiwVE5+3ubLLymF3bXwRO7fqPO3xy6/aVsv6k9995jPY7/DNIr5kozo/uFf2DeP8sbldJp2ymR2RBoa8TCiGHT5pgWr36qHxMt1J7fU1mWIRPeUmkFJchCjNc8qDr1bwY9hjrdXxC5fUkFsG/gyb5FsmzvQaAPAy45Wl1DRpp4xBiE/SUc+xBcA1y3Bo6lJ2w7w8tB2bMZUqZkgOyPDaPfzLViMtPUlnCnKRGzvi8HoGvzLS4gN1jjRUK33YtLpLqa6B9Wj1/fkgu9H1cIz1ffS3baL4ZIyA3K7/4LrAS2xzUcJ8HdezxjuZQKqtwDgJSysZJ0blXG6GLpx8JonZh4gx8na1c9kKt07BNYao=
NOTESNOOK_API_SECRET: AgC3JoH/PCMgUPPvUCkIsRWGEIJtwt+E+wXvfBTi2V60nN19RiJLpXF860UrKnFZxvloFalJLIxA1mtLUAfO2wZuzGpid8IIrAUIyhXCZkZWkZr9UbB/TjzmorC5NEAwjo08zhBKIlME+Emdb7BrpHGbj2ykQlyKqwCSTPKoitkypdgXQsbPWM6j03o/F9hSmKVFCTb6ugBY72rXBlVBqBGdeoPLkwSnuk7kk6y+lOfufeqGw2MXoNCZJ1+rbZQ2ihGFSGLKd955I3wnidcu8oCQO50u4V1IHhj0/iJHh/bXu6ipXEw4ZX886SFQgqqb36sFt8b2PIk+h2GtqFC+Ixew+ay790B/wXIMWhze680oAwq/6ZvWe0PSbJgDXLCYga7ZIw8RYFphk3+VblYfc9EObGWvuLDoGzSs/qgi/+euxOkM1P8lGUGuSETz4Bm7VEg4udEneuCnfHqQ19/qkhu/isMwN7KpOaymKwpw0Yb2oefUljjPOGHq+ni08TUU1V+fmKMmnxG3Uq05mLDjTpN6lkpm5yF5xCA4WRflL1kqLFsCPm4JF62NiLDXuVb7c0uz9l85YaJg06RaYVHOf5Km7B3wnBHHrk8sJ2NtkUa2vvGbkZ64JFP9PrD7Ubvh62i4QoXn83nv67rihtzB8BNzkA7sQVLH2OpBqFkbJaTquBWXo3zg8AWcxpuXvNXv6ba4kZJEbBbCDpQDUdQ//MSJttHEgPKvZgmqtqCQ7W3Mypr6CWWGhSfcEmgAzcSfYlYNAbGAGxFErDkXelhbsgNr
S3_ACCESS_KEY: AgC9kcAVZEpanlIjfkpJjDDJe6nikUTorye4l03NhgOoMrU6ivxVXBboiXAYyRYYRidp60r041YPs5lZNCYOwwpuf5iquAlAuD5mecR2xFJIsv3Mxi5wEdoFvPtCIFv8Xm0MTMvR1ch4J4X1gds4S3HQmYIxEKSg/qU+/4ww1CccbDexGOhwOwMMor2KZwfGTrDIZO7/3SwMQs6h8XVRUR5BhuLGftV6tUFEOQBQ6pjijurkSW/faG6YJbE2hpmWNdot6Qau7matCcJhRZI0NAeZhAPeCvIlyrEyJpqjMxNEMVJszj//F7dlPxTW8AkWyw2bmzzgNPhAYvpRTxrDDr70huRUWIo5mAlBbJypT3haVjKYFoRKAGXWC/8dhLSp3NKWQ/smBzpvUOQ30N4EskIVT+V8GArkrLN35yi2yP1aFaQpvLCA1m8pp5hUTgyDm1dqcOnQg3DRJgiMN7/Jt+P9TQGs2RiKoHCPp6lIfDGRKDLYeG5uuiUouridf1HnkrKGXlSmnd4xYWYlym6ZAC7Uzd9GlwTeZwZT8YJCQHqnZFPGq6MAVOPR5B+kQldAH81qosXjRdQyn8RT3DefdAjbduh4/DzuLJTTu8OeSmyPx7H5uqDIrkn1DLuBca2+lJPu4xMv6bthGRzwBLA1aU+nmniFBznkg+YlI5XxJLrA5Ra/PZsglhCHRz1hSiajZ5g1jUzMk2XDjti/q3Xbqj1AkmLmKjZbR05e7VRELMIj4g==
S3_ACCESS_KEY_ID: AgAjLq/HHmD30h2/2mHU/iQKS6l4PRTRhquB4UgCdJjkr/a4eGfxxPZWRJJrj/AbFaWQrAq/ADqa9cAxwXsJInwVLkmv42sB9hODGxRtKbQgwubJaa84uOqdNvce/GvlxXrVIh5H7GUTTKuIXSuS5U/AtBniPudJ5/p8QulYXyqY3K34uePIMEqBP5m7CJ8kKB7EPTLvb29pjr/VdKCpSMwnhXiiiwU/Y1NDdf4ZiIc1gsp79kRd1RhFsLfJky/tBntv4waHHfYKZ7jkCJOGp189ZSqNFlAkP2TPg+jpygpznPvTTggQB45DlYKupUI1bMGlkWcfYLM9+/jmvHngGuzPvSUlGFukaPHkhJ8YwLz+Jc+K6xxdbX9WjzqqGYs3CW41ccxHjxgrZnUW62NbCYIR7xj1K2vCVmmyjwC++N9ArDvS/VreXAq2QJsxKQjL7YElsQrFlMzKrRw98kUd4vpQPQxK+nkLe9HVj0VJprDK22ZrfCcyA8rl64Zx8huwbKEmNscZou49oDx3LJRI8vGFS0lQJFLBrjJKjF9xT+7R59SIo+7JxFAWDvmEaJrdPSq4EDEturHhzvKcv5y1Gy1ul4nwIGvxDZAK9kwp5oiGxfARncoVzgFINqwlVmVfPRb4RZl5mzu8IToMebwvJ52Rpf+IhkW1yEnCYxppBNmUyPWewTc3UUvtViOOawaARaXii6O9sR0uhlE=
SMTP_HOST: AgBZiWzF45lbMOrRXlGi2k1jq2bA+hQWF1DVLJemKgn9et0uBfcIyICHS/7E4cukDI+MOInEQEYem5M4FoQ2mM2ylcIm+LrUI+p5azDKRYkkbcwKD2F0+J9G5YDXxYth11NzS3fLhrVxAuqmbqy3LxOmSkjFvFdJxLx0Su78B2CSDBXmy+gu4soY7bdQV0L3T/zfG6s1WuLzR8WPnji3EmBM5dexG7Smhziz0dymOuhdGfSwaI2MWrYzw9J3Vshc+mRXzw1JvI5mVbawhQOLrnW57NvXlJtk19LLr/kXWOt1ppJcJOYGOxWrFs4VA4Bg4QSN2piARWZ6FbL1/a8ynamUhw+R2yDlT/J8oQIVBzhIWCU5EwfHgDu+QRKzmd2iAhfYZjrUkJNojUjqaQvb7RXrG4DVL9UJxGjushebgc2EG/PykdzoRL2d1KMfJRK6O5ouM42UvOCqRzbBbWuTiA6fj8hGTIZYFXX3vWIM368uDvrEVxj2C+skrRzHEzAQgsJEaWtFvZm6WGkZZOLTuava9+JxMvnpftWMIE8FrYCAYwn5xa88eftgw+GW65EWVSm8IXFtGoNd4DKYj5OGF2DcN//OxteoVd3OxsmuJtY0Qx0REb9nqg9Qdw2bP6emmpmgtyw8opUS/VubGghdCnhLUES+CA08ooK4a8n8rZSSFiujvjMjoDdOnVktM/D3R6ECftJRakhMes4INANM4w==
SMTP_PASSWORD: AgAdjxnT2uC0LRUmlQ/BOlLs6l1PCP13tMmgmSnqqNWSuucYkWwTWtz4qBnG3dauhC0ufS5eqABJqZq0r+QpyhxU0Otqzk7oVcea0Mq9ai159IMCx/rZL8HXIkUF76muv8GOGDYlaf3A+CbrNTsaRXDbjZ7LjzD8OwsdfaeIzUejyNXgs5EMjSOHLx4YhmVfVEZLAtoP9zcNlDSNFaat79wnwjwUifHuY3usvQXhJS+vLVtLLtWwKF0rCsfkbCRwJtJCCrOvOLuid8aZ3cO9Y7n0+TOAlkSe4dSSq0D2psg3njEZ2l3RNLW2YbM2LkcXK+MjIpCivqSCXLufq1dUuhDxCirxSd0VgTt5TPgeTCi+kuNv/UAqydQWDQlh6izUDdnTtMlRqtk4ZFhoBvIo1NVdpObmbFlSlBURwrmNqmdyO1/MNZT40gi1UsuEtktDCohoq6zQrahiGqcXr1VVscE+u5VoV7PRTICMSJQexFV9fx8YsZxDycng7zaf6xbK0JWVSuU1IXwb1ZOReQs0MtZj45o/c9JtYS1HPoSZRCCSCAd6qPhnHoUc6jYYFznfKTqvrpSdXqoBF61I1Sw+CKuVA/aut9mgCzWIwGjb38Hjh/VYufrgkFMcvnqbpkX4F8sMvzI3zsvFT2S0RwNGHOay6f+otg2KJdPlE2HSLVGLTFxS1Ku2F3ZPL79/Br8eCW3PPnq4c6w4f0XBFtuGSXtt
SMTP_PORT: AgATegLz9D+74mUBak9tv+7L/LeRqcJXcE58T1fOh1shsz3KjSzuXb4HxytqghT0LqplAEemCPoG823wPFKYnxZtvedQ2CyZGCxEXPoV6iUvBAVC3Pj6H92k9CIEZRPHLvR6IR+mXzu6HLWwJsOGrxn28waSx374uVizylptkpjIHvyseY3chfH0N/x2tK0yZn9rKOqnzfjKVGh4DF+i7wU/uuFPhcMbqRPg70J0pxhesTKHBAerGnvfnoCxFRoSl0ZPgC0kK5NfIEp3zWW45NWshPNsbb0yix76Rnr+8dEn/Rbopa8jZtfdK260ZPclLRO6z04ks69Zp5u9kE1g883Q25I+M9C8B27QDC+KHxgSwq0w8a5CwlCYDRu/e9UBHtsJobRaARgghyyAVsS4FsDS45kJom3U7n0Ip/27hg2VMm+jwNRoB5cmlyhDDlFng49U36DRsd0z2d2wBFAG4NM4xgbWlK5zUDmKCveC7zJfFAuZGsMbY5U8/lDv1WvGIG8xmQsg5CgriVL6gG3ReRjk3BmK93b8OkUhfquFHKBoyqJZWIIz+W5dcP2fKdjZc0Ec2vPqszHaNTN+dEcGzm9MGFpeus6rA6Egxzq1esVbEPuixcI6eXc87SOG0Ntn2wbPJQKpNZq+JkzYSXBUZcemPz5M2nybLr/lwuX7//Qg5b95nwzXMRRm9kagwWubDPNPpd8=
SMTP_USERNAME: AgAxdxvMjUjvj8vYu8upKMfpAIi00dBizXD83F5f6TCSlAFlo3kuVFbfJ8tCQZNRSdU7vP6n3zQfW2IhYUQSnO44+Wb8q5V4sfs1cClbPyGpQdEyFeLk1KwW3LeFxsi9cym3H7Qtu9e/S3dOmD9IxK8AuOJkq5t7Xepum7WvuOuvBVFm2nVetZlTs1BmHoxA8dHlAhk+qwGMAuo/Xltut67uDsPzZTcA4fEAYe+We7zqfD0hpN+k1TffZHE7x+GpA3tyc6yUf/uSsWRq9HKyASc0UM5uoK/WoxYoUA7RF5j5FXFrA1jY/Y1pE3oLjQmpB59q5vOasd77uXE/1b+rs6l8L1zngWw+8MeKA/julrmWBwte+vs68yqDFOL7QNfwpYmYoaAcuvezeXZwF4nnwzXyE8ZEO7xtbp/r9DATeGypjRnm1bDAMTARGLgHoxV18UELCiksNNCbVO7twXJs+HUE/sbfI3tQmk6O5zbWD/GbcR0lTsTjM+hcM5r9ZYfrq7Ad3Oyb3ANU184Rm4fiR9v+t9OyJf9jIASF9p8oFcTr2dupdv3r8wzPq/ayfvN44nyOr2xVfIv+ubMqjjLixg0jUDeFoR/GST6fpvWBmd2HVMG1tHvZxphUb0V/M946HxKBMpsFn/WWyLgUzJG64bIICDAetCferbaa4UFEHP23G/R5tLBWM2GNZpT6yfkBQYppc6e1/KAjGNVMrTpKQeNkD/xs
template:
metadata:
annotations:
sealedsecrets.bitnami.com/managed: "true"
name: notesnook-secret
namespace: notesnook
type: Opaque
@@ -1,25 +0,0 @@
# NOTE: This app's Secret is now managed via SealedSecrets (notesnook-sealedsecret.yaml),
# which IS committed (encrypted). You should not need to hand-apply a plain Secret.
#
# This file remains only as documentation of the required keys.
#
# To change a secret value:
# 1. Build a plain Secret locally (NEVER commit it):
# kubectl -n notesnook create secret generic notesnook-secret \
# --from-literal=KEY=value ... --dry-run=client -o yaml > /tmp/s.yaml
# 2. Seal it:
# kubeseal --format yaml --scope strict < /tmp/s.yaml \
# > apps/notesnook/notesnook-sealedsecret.yaml
# 3. Commit the SealedSecret; ArgoCD applies it, controller unseals it.
#
# DISASTER RECOVERY: the controller's private key is backed up GPG-encrypted at
# /mnt/bulk/backups/sealed-secrets/master-key-YYYYMMDD.gpg (passphrase in password manager)
# Restore it BEFORE applying SealedSecrets to a rebuilt cluster:
# gpg -d master-key-YYYYMMDD.gpg | kubectl apply -f -
# kubectl -n kube-system rollout restart deploy/sealed-secrets-controller
#
# Required keys:
# NOTESNOOK_API_SECRET (reuse existing — do NOT regenerate)
# SMTP_USERNAME, SMTP_PASSWORD, SMTP_HOST, SMTP_PORT
# MINIO_ROOT_USER, MINIO_ROOT_PASSWORD
# S3_ACCESS_KEY_ID (= MINIO_ROOT_USER), S3_ACCESS_KEY (= MINIO_ROOT_PASSWORD)
-34
View File
@@ -1,34 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: notesnook-sse
namespace: notesnook
spec:
replicas: 1
selector:
matchLabels:
app: notesnook-sse
template:
metadata:
labels:
app: notesnook-sse
spec:
containers:
- name: sse
image: streetwriters/sse:latest
envFrom:
- configMapRef: { name: notesnook-config }
- secretRef: { name: notesnook-secret }
ports:
- { containerPort: 7264, name: http }
readinessProbe:
httpGet: { path: /health, port: 7264 }
initialDelaySeconds: 20
periodSeconds: 15
livenessProbe:
httpGet: { path: /health, port: 7264 }
initialDelaySeconds: 60
periodSeconds: 30
resources:
requests: { cpu: "50m", memory: "128Mi" }
limits: { cpu: "500m", memory: "256Mi" }
-21
View File
@@ -1,21 +0,0 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: notesnook-sse
namespace: notesnook
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
traefik.ingress.kubernetes.io/router.entrypoints: websecure
spec:
ingressClassName: traefik
rules:
- host: events.notes.aleshym.co
http:
paths:
- path: /
pathType: Prefix
backend:
service: { name: notesnook-sse, port: { name: http } }
tls:
- hosts: ["events.notes.aleshym.co"]
secretName: notesnook-sse-tls
-10
View File
@@ -1,10 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: notesnook-sse
namespace: notesnook
spec:
selector:
app: notesnook-sse
ports:
- { name: http, port: 7264, targetPort: 7264 }
-39
View File
@@ -1,39 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: notesnook-sync
namespace: notesnook
spec:
replicas: 1
selector:
matchLabels:
app: notesnook-sync
template:
metadata:
labels:
app: notesnook-sync
spec:
containers:
- name: sync
image: streetwriters/notesnook-sync:latest
envFrom:
- configMapRef: { name: notesnook-config }
- secretRef: { name: notesnook-secret }
env:
- name: MONGODB_CONNECTION_STRING
value: "mongodb://notesnook-db:27017/?replSet=rs0"
- name: MONGODB_DATABASE_NAME
value: "notesnook"
ports:
- { containerPort: 5264, name: http }
readinessProbe:
httpGet: { path: /health, port: 5264 }
initialDelaySeconds: 20
periodSeconds: 15
livenessProbe:
httpGet: { path: /health, port: 5264 }
initialDelaySeconds: 60
periodSeconds: 30
resources:
requests: { cpu: "50m", memory: "128Mi" }
limits: { cpu: "1000m", memory: "512Mi" }
-28
View File
@@ -1,28 +0,0 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: notesnook-sync
namespace: notesnook
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
traefik.ingress.kubernetes.io/router.entrypoints: websecure
spec:
ingressClassName: traefik
rules:
- host: sync.notes.aleshym.co
http:
paths:
- path: /
pathType: Prefix
backend:
service: { name: notesnook-sync, port: { name: http } }
- host: notes.aleshym.co
http:
paths:
- path: /
pathType: Prefix
backend:
service: { name: notesnook-sync, port: { name: http } }
tls:
- hosts: ["sync.notes.aleshym.co", "notes.aleshym.co"]
secretName: notesnook-sync-tls
-10
View File
@@ -1,10 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: notesnook-sync
namespace: notesnook
spec:
selector:
app: notesnook-sync
ports:
- { name: http, port: 5264, targetPort: 5264 }