← Alle Vorlagen · Notizen und Wikis
Docmost mit einem Klick deployen
Gemeinsames Wiki und Dokumentation, mit Bereichen, Bearbeitung in Echtzeit und Diagrammen
Eine selbst gehostete Alternative zu Notion und Confluence.
Was ist Docmost?
Docmost ist Open-Source-Software für Wikis und Dokumentation. Seiten liegen in Bereichen, jeder mit eigenen Mitgliedern und Berechtigungen, und mehrere Personen können dieselbe Seite gleichzeitig bearbeiten. Der Editor bietet Slash-Befehle, Tabellen, Dateianhänge und Einbettungen etwa von Airtable, Loom und Miro und zeichnet Diagramme mit Draw.io, Excalidraw und Mermaid. Jede Seite behält ihren Verlauf, der sich wiederherstellen lässt, alle können kommentieren, was sie lesen, die Suche erfasst den gesamten Text, und eine Seite lässt sich per Link öffentlich teilen.
Teams hosten Docmost selbst als Wissensdatenbank oder internes Wiki statt Confluence oder Notion und importieren Seiten aus Notion, Markdown oder HTML. Diese Vorlage betreibt die kostenlose Community Edition mit PostgreSQL und Redis und legt den Workspace und seinen Besitzer aus den Feldern an, bevor Docmost irgendwem antwortet. Der Haken: SSO, Zwei-Faktor-Authentifizierung, KI, API-Keys, Berechtigungen pro Seite und der Import aus Confluence gehören zur kostenpflichtigen Business Edition.
Docmost-Hosting auf Pethost
- Du meldest dich bei Pethost an, mit Passkey, GitHub oder Google. Noch keine Maschine? Du wählst einen Tarif, und der Link wartet, bis sie bereit ist.
- „Neues Projekt“ öffnet sich bei Docmost. Du füllst aus, was die App braucht, und klickst auf „Projekt erstellen“: Benutzername, E-Mail, Admin-Passwort.
- In ein, zwei Minuten läuft Docmost unter eigener Adresse mit HTTPS. Die Secrets werden zufällig erzeugt, und die Daten sind im nächtlichen Backup.
- Es ist ein Projekt wie jedes andere: Du oder dein Agent könnt es ändern, zurückrollen oder wiederherstellen.
Fragen zu Docmost
Ist Docmost kostenlos?
Ja. Die Community Edition ist Open Source unter der AGPL-3.0 und kostenlos selbst zu hosten, mit Zusammenarbeit in Echtzeit, Bereichen und Volltextsuche. Die Business Edition kostet 6 $ pro Benutzer im Monat, jährlich abgerechnet für mindestens 10 Benutzer, und bringt SSO, Zwei-Faktor-Authentifizierung, KI, API-Keys und Berechtigungen pro Seite dazu.
Docmost, Confluence oder Notion?
Docmost deckt als Wiki dasselbe ab: Bereiche, Seiten in einem Baum, Bearbeitung in Echtzeit, Kommentare und Seitenverlauf. Confluence und Notion laufen in der Cloud ihrer Hersteller, Docmost dagegen dort, wo du es deployst, und seine Community Edition ist für beliebig viele Benutzer kostenlos.
Kann ich meine Notion-Seiten in Docmost importieren?
Ja. Docmost importiert einen Export aus Notion sowie Markdown- und HTML-Dateien in einen Bereich. Der Import aus Confluence gehört zur kostenpflichtigen Business Edition.
Können mehrere Personen eine Seite in Docmost gleichzeitig bearbeiten?
Ja. Der Editor ist für die Zusammenarbeit in Echtzeit gebaut: Alle auf einer Seite sehen die Änderungen der anderen, während sie tippen, und der Seitenverlauf behält jede Version.
Wie lade ich Personen in Docmost ein?
Mit „Personen einladen“, per E-Mail und mit einer Rolle. Docmost hat keine öffentliche Registrierung, also kommt eine Person über ihre Einladung dazu, die Docmost per E-Mail verschickt, sobald SMTP_HOST und die übrigen SMTP_-Einstellungen in der .env des Projekts stehen. Bis dahin gibt dir „Link kopieren“ bei einer ausstehenden Einladung unter „Einstellungen“ → „Mitglieder“ den Link, den du selbst verschickst.
Wie viel RAM und Speicherplatz braucht Docmost?
Docmost ist leicht: etwa 300 MB RAM mit Postgres und Redis, und Seiten wachsen langsam; Anhänge belegen so viel, wie ihre Dateien groß sind. Auf Pethost reicht dafür der Tarif Starter, mit Platz für weitere Apps daneben.
Docmost: die Docker-Compose-Datei
Die Vorlage ist diese compose.yaml und die Variablen, die beim Erstellen in die .env des Projekts geschrieben werden. Pethost führt die Datei so aus, wie sie geschrieben ist.
Container: docmost (docmost/docmost:0.97), postgres (postgres:18-alpine), redis (redis:8-alpine).
Volumes, im nächtlichen Backup: data, db, redis.
services:
docmost:
image: docmost/docmost:0.97
restart: unless-stopped
# Docmost does not stop on SIGTERM as the first process: an init passes it on.
init: true
# Any setting of Docmost can be added to the project's .env, such as SMTP_HOST and the other
# SMTP_ settings, which send its invitations and password resets by email.
env_file: .env
environment:
APP_URL: ${URL}
APP_SECRET: ${APP_SECRET}
DATABASE_URL: postgresql://docmost:${POSTGRES_PASSWORD}@postgres:5432/docmost
REDIS_URL: redis://redis:6379
ADMIN_NAME: ${ADMIN_NAME}
ADMIN_EMAIL: ${ADMIN_EMAIL}
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
# A new Docmost offers its setup, which makes the workspace and its owner, to whoever opens it
# first. So while it has no workspace, it runs on port 3001, which nobody reaches, and the
# owner is made there from the fields; only then does Docmost answer on 3000.
command:
- sh
- -c
- |
set -e
cd /app/apps/server
if ! node -e '
const sql = require("postgres")(process.env.DATABASE_URL, { max: 1 });
(async () => {
for (let i = 0; i < 60; i++) {
try {
const [row] = await sql`select count(*)::int as n from workspaces`;
process.exit(row.n > 0 ? 0 : 1);
} catch (error) {
// No such table: a new database, which the migrations of Docmost have yet to fill.
if (error.code === "42P01") process.exit(1);
await new Promise((done) => setTimeout(done, 1000));
}
}
process.exit(1);
})();
'; then
NODE_ENV=production PORT=3001 node dist/main &
setup=$$!
node -e '
const setUp = async () => {
const response = await fetch("http://127.0.0.1:3001/api/auth/setup", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({
workspaceName: "Docmost",
name: process.env.ADMIN_NAME,
email: process.env.ADMIN_EMAIL,
password: process.env.ADMIN_PASSWORD
})
});
// 403: a workspace exists already, made by an earlier start.
if (response.ok || response.status === 403) return;
const body = await response.text();
if (response.status === 400) {
console.error("Docmost refused the administrator: " + body);
process.exit(1);
}
throw new Error("setup: " + response.status + " " + body);
};
(async () => {
let failure;
for (let i = 0; i < 180; i++) {
try {
return await setUp();
} catch (error) {
failure = error;
await new Promise((done) => setTimeout(done, 1000));
}
}
console.error(failure);
process.exit(1);
})();
'
kill $$setup
wait $$setup || true
fi
NODE_ENV=production exec node dist/main
volumes:
- data:/app/data/storage
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
postgres:
image: postgres:18-alpine
restart: unless-stopped
environment:
POSTGRES_DB: docmost
POSTGRES_USER: docmost
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- db:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U docmost -d docmost"]
interval: 5s
timeout: 5s
retries: 10
start_period: 30s
redis:
image: redis:8-alpine
restart: unless-stopped
command: ["redis-server", "--appendonly", "yes", "--maxmemory-policy", "noeviction"]
volumes:
- redis:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 10
volumes:
data:
db:
redis:
Mehr in Notizen und Wikis
- MemosKurze Markdown-Notizen in einer privaten Timeline
- HedgeDocMarkdown-Notizen, die du mit anderen in Echtzeit gemeinsam schreibst
- Obsidian LiveSyncEin CouchDB-Server, der deine Obsidian-Vaults mit Self-hosted LiveSync synchronisiert
- BookStackEin Wiki aus Regalen, Büchern, Kapiteln und Seiten
- EtherpadDokumente, die gemeinsam in Echtzeit bearbeitet werden: jede Person in ihrer eigenen Farbe, mit Chat, Verlauf und Plugins
- MediaWikiDie Wiki-Software von Wikipedia: Seiten, die alle lesen können, bearbeitet im visuellen oder im Quelltext-Editor
