Technik: Joplin mit proxmox, tailscale
Und wer mag:
Unten die Variante mit docker und ohne Joplin LXC-Container (Variante2) - meine Wahl
Das Rezept
- proxmox
- tailscale
- und Spaß an Joplin als eigenständigen LXC-Container
Joplin Server als proxmox LXC-Container mit Community Script und das dann über tailscale ansprechen
- Proxmox helper scripts Community Scipt für Joplin Server in der PVE Console starten.
- neuen LXC-Container überprüfen
Bei mir:
joplin-server.fritz.box:22300
Erste default Mailadresse: admin@localhost
Erstes default password: admin
LXC-Container anpassen für tailscale
/dev/net/tun durchreichen

Console auf dem PVE
/etc/pve/lxc/109.conf editieren (mit Deiner Nummer natürlich)
folgende 2 Zeilen einfügen. Speichern und schließen.
* lxc.cgroup2.devices.allow: c 10:200 rwm* lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
Neustart
Tailscale installieren
curl -fsSL https://tailscale.com/install.sh | sh
Folgende Datei editieren
APP_BASE_URL anpassen mit dem Tailscale-Ziel-Namen der Maschine
GNU nano 8.4 /opt/joplin-server/.env
PM2_HOME=/opt/pm2NODE_ENV=productionAPP_BASE_URL=http://joplin-server.DeinTailscaleName.ts.net:22300APP_PORT=22300DB_CLIENT=pgPOSTGRES_PASSWORD=*** Dein Password ***POSTGRES_DATABASE=joplinPOSTGRES_USER=joplinPOSTGRES_PORT=5432POSTGRES_HOST=localhost
Tailscale up
===> MAGIC happens
... und jetzt im Client bei Replication die Adresse
http://joplin-server.DeinTailscaleName.ts.net:22300
user Mailadresse und user Kennwort eingeben und los geht es.
Variante 2
Rezept
- proxmox docker LXC-Container
- tailscale
- docktail docker container (um tailscale mit docker zu kuppeln)
- joplin-server docker container
tailscale mit docker verheiraten
docktail docker container
ja, ich nutze auch noch traefik... aber für diese container kann das docker netzwerk auch ein Anderes sein.
außerdem nutze ich Arcane und Portainer gemischt. Daher die environment-Dateien mit expliziter Benennung. Das kann bei Dir anders sein.
services: docktail: image: ghcr.io/marvinvr/docktail:latest restart: unless-stopped container_name: docktail hostname: docktail volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - /var/run/tailscale:/var/run/tailscale environment: # Optional but recommended - enables auto-service-creation - TAILSCALE_OAUTH_CLIENT_ID=${TAILSCALE_OAUTH_CLIENT_ID} - TAILSCALE_OAUTH_CLIENT_SECRET=${TAILSCALE_OAUTH_CLIENT_SECRET} networks: - traefik env_file: - ./.env - ../.env.global# -----------------------------------------------------------------networks: traefik: external: true
Joplin als docker container aufsetzen
services: joplin-server: image: ghcr.io/etechonomy/joplin-server:latest container_name: joplin-server hostname: joplin-server environment: - APP_BASE_URL={APP_BASE_URL} - APP_PORT=22300 - DB_CLIENT=pg - POSTGRES_PASSWORD={POSTGRES_PASSWORD} - POSTGRES_DATABASE={POSTGRES_DATABASE} - POSTGRES_USER={POSTGRES_USER} - POSTGRES_PORT=5432 - POSTGRES_HOST=joplin-db #restart: "no" restart: unless-stopped ports: - 22300:22300 volumes: - ${XHOME_DOCKER}/joplin/data/logs:/home/joplin/packages/server/logs networks: - traefik env_file: - ./.env - ../.env.global labels: - "docktail.service.enable=true" - "docktail.service.name=joplin" - "docktail.service.port=22300" - "docktail.service.service-port=80" joplin-db: image: postgres:16 container_name: joplin-db hostname: joplin-db #restart: "no" restart: unless-stopped ports: - 5433:5432 volumes: - ${XHOME_DOCKER}/joplin/db:/var/lib/postgresql/data networks: - traefik environment: - POSTGRES_PASSWORD={POSTGRES_PASSWORD} - POSTGRES_DB={POSTGRES_DATABASE} - POSTGRES_USER={POSTGRES_USER} env_file: - ./.env - ../.env.global# ---------------------------------------------------------------------networks: traefik: external: true
Jetzt kann man im Client, die tailscale Adresse des Services eingeben und braucht KEINEN Port am Ende.
Ich nehm Variante 2
Na denn man tau! Viel Spaß!


