Memos ist eine datenschutzorientierte, selbstgehostete Wissensdatenbank, die sich nahtlos für persönliche Notizen, Team-Wikis und Wissensmanagement eignet. Entwickelt mit Go und React, bietet sie blitzschnelle Performance ohne Kompromisse bei Funktionen oder Benutzerfreundlichkeit. Memos ist mein täglicher Begleiter und in Verbindung mit der MoeMemosApp eine echte Softwareperle und Must have. Hier noch der Link zu einer LiveDemo.
| Datum | Änderung |
| 20.12.2025 | Erstellung der Anleitung |
| 28.12.2025 | Überarbeitet Danke @psycho0verload |
1. Grundvoraussetzungen
- Docker & Docker Compose v2 (Debian / Ubuntu)
- Traefik V3 Installation, Konfiguration und CrowdSec-Security
2. Ordner und Dateien anlegen
Zuerst legen wir einen Ordner an.
mkdir -p /opt/containers/memos mkdir -p /opt/containers/memos/data
3. Docker Compose erstellen
Nun erstellen wir uns eine Docker Compose Datei.
nano /opt/containers/memos/docker-compose.yml
Inhalt
services:
memos:
container_name: memos
image: neosmemo/memos:0.25
environment:
MEMOS_MODE: prod
labels:
traefik.enable: "true"
traefik.docker.network: proxy
traefik.http.routers.memos.entrypoints: websecure
traefik.http.routers.memos.rule: Host(`memos.eurodomain.de`)
traefik.http.routers.memos.middlewares: default@file
traefik.http.routers.memos.tls: "true"
traefik.http.routers.memos.tls.certresolver: tls_resolver
traefik.http.routers.memos.service: memos
traefik.http.services.memos.loadbalancer.server.port: "5230"
volumes:
- ./data:/var/opt/memos
networks:
- proxy
read_only: true
restart: always
security_opt:
- no-new-privileges:true
networks:
proxy:
external: true
Noch anzupassen:
- eure Domain bei Traefik (memos.euredomain.de)
4. Memos starten
Dazu gebt ihr einfach folgenden Befehl ein:
docker compose -f /opt/containers/memos/docker-compose.yml up -d
Wartet nun einige Minuten und geht anschließend auf eure Homepage memos.euredomain.de
Dort solltet ihr folgendes sehen:

Nun euren Benutzer registrieren und einloggen.


Ihr könnt in den Einstellungen die Sprache u.a. einstellen. Ich habe ein Iphone und nutzte die open source MoeMemos App. Diese soll es auch für Android geben. Viel Spaß und Freude an Memos. Ein Hinweis noch, die MoeMemosApp wurde nicht vom gleichen Entwickler programmiert und hängt manchmal mit der Entwicklung hinterher. Deshalb trage ich bei mir im Image nicht latest ein und teste ob die neuen Updates mit der MoeMemosApp kompatibel sind und falls nicht warte ich mit dem Update.

Moin moin
steje
Ich habe 2 Hinweise für dich:
Folgende Zeilen sind überflüssig
volumes:
data:
Erklärung: Du mountest data lokal in deinem Filesystem mit ./data damit brauchst du kein Volume mehr.
Die schreibweiße könnte aktualisiert werden:
services:
memos:
container_name: memos
environment:
MEMOS_MODE: prod
image: neosmemo/memos:0.25
labels:
traefik.docker.network: proxy
traefik.enable: “true”
traefik.http.routers.memos.entrypoints: websecure
traefik.http.routers.memos.middlewares: default@file
traefik.http.routers.memos.rule: (Host(
memos.euredomain.de))traefik.http.routers.memos.service: memos
traefik.http.routers.memos.tls: “true”
traefik.http.routers.memos.tls.certresolver: tls_resolver
traefik.http.services.memos.loadbalancer.server.port: “5230”
networks:
proxy:
read_only: true
restart: always
security_opt:
– no-new-privileges:true
volumes:
– ./data:/var/opt/memos
networks:
proxy:
external: true
Ich verstehe, dass du das Image fixierst, aber es bis zum Patch-Level zu Fixieren bedeutet auch, dass es keine wichtigen Patches bekommt. Hier wäre die Eingränzung auf Minor empfehlenswert