Installing Joplin in kubernetes for free evernote like notetaking.
May 03, 2023
kapilnakhwa
Hi,
I was doing this competitive strategy building for my technology consulting firm. And I needed to document a lot of notes with grate support for attaching screenshots and images. Was going over ken bruke's guide to competitive strategy building. I could not find a nice binder to document all of my competiton to build a competitive analysis sheet. So decided to go digital, Now I have used various tools before for notetaking. (evernote, apple notes, mkdocs, Markdown systems .. etc ) . But one of my current goals is to move away from apple products and services and host my own data. I decided to search for a free and open source self hosted options. Also was playing around with k3s and traefik.
Quick google led me to joplin, which seemed like a nice alternative and quite mature too. I wanted to see if there were any pre-built helm charts. Came across a nice well maintained chart here.
Let's add above repo into our repo list in our local machine with following commands.
I was doing this competitive strategy building for my technology consulting firm. And I needed to document a lot of notes with grate support for attaching screenshots and images. Was going over ken bruke's guide to competitive strategy building. I could not find a nice binder to document all of my competiton to build a competitive analysis sheet. So decided to go digital, Now I have used various tools before for notetaking. (evernote, apple notes, mkdocs, Markdown systems .. etc ) . But one of my current goals is to move away from apple products and services and host my own data. I decided to search for a free and open source self hosted options. Also was playing around with k3s and traefik.
Quick google led me to joplin, which seemed like a nice alternative and quite mature too. I wanted to see if there were any pre-built helm charts. Came across a nice well maintained chart here.
Let's add above repo into our repo list in our local machine with following commands.
helm repo add qjoly https://qjoly.github.io/helm-charts/
Now I want to look at the values.
helm show values qjoly/joplin >> values.yaml
Here was the values.yaml .
replicaCount: 1 image: repository: joplin/server pullPolicy: IfNotPresent tag: "2.10.9-beta" database: dbname: joplindb dbuser: joplinuser dbpassword: veryhugepasswordhere image: repository: postgres pullPolicy: IfNotPresent tag: 15 joplin: base_url: http://ur-domain.tld:22300 mailer: enabled: false host: mailserver noreplymail: noreply@mailserver noreplyname: noreplyname@mailserver port: 25 user: usermail password: password security: none # none / TLS / STARTLS imagePullSecrets: [] nameOverride: "" fullnameOverride: "" podAnnotations: {} podSecurityContext: fsGroup: 2000 securityContext: # capabilities: # drop: # - ALL # readOnlyRootFilesystem: true # runAsNonRoot: true # runAsUser: 1000 service: joplin: type: ClusterIP port: 22300 database: type: ClusterIP port: 5432 persistence: storageClassName: "" # leave empty if you want to use default enabled: true size: "1Gi" # We recommend to allocate a minimum of 1GB if you do not use attachments # Uncomment if you want to use an existing PVC # pvcClaim: ur_pvc ingress: isIngressRoute: false enabled: true className: "" # Only if you use ingress annotations: {} domain: ur-domain.tld entrypoint: websecure # Useless if you use ingressroute certresolver: letsencrypt resources: {} # limits: # cpu: 100m # memory: 128Mi # requests: # cpu: 100m # memory: 128Mi nodeSelector: {} tolerations: [] affinity: {}
Since I mostly use sslip.io for keeping track of my apps instead of remembering specific ports. ( I Know i should host heimdall, Perhaps someday ) . I needed to change a few configurations there.
Let's change the base_url for our joplin_app first. and I hate to have ports in my cluster
joplin: base_url: http://joplin.100.111.59.19.sslip.io
I do not use Nginx reverse proxy but use traefik .
So I quickly wrote up an ingressroute.
So I quickly wrote up an ingressroute.
apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: joplin-ingress-route spec: entryPoints: - web - websecure routes: - kind: Rule match: Host("joplin.100.111.59.19.sslip.io") services: - name: joplin-app port: 22300
Now I need to apply this ingress route
kubectl apply -f ingressroute.yaml
and tada .
Going over to the url and using default username and password (i.e : admin@localhost and admin ) .
Now I Needed a client . I downloaded a client in my 2018 macbook pro. and followed instructions as shown above, Quite happy with results so far.
There you go , Have a free version of evernote like notetaking capabilities forever, If you need help or have opinions regarding this. Feel free to reach out.
Going over to the url and using default username and password (i.e : admin@localhost and admin ) .
Now I Needed a client . I downloaded a client in my 2018 macbook pro. and followed instructions as shown above, Quite happy with results so far.
There you go , Have a free version of evernote like notetaking capabilities forever, If you need help or have opinions regarding this. Feel free to reach out.