---
title: "Docmost Docker Compose und Hosting mit einem Klick"
description: "Docmost selbst hosten: Open-Source-Wiki und Doku mit Bereichen, Echtzeit-Bearbeitung und Diagrammen. Confluence- und Notion-Alternative mit einem Klick."
---

[← Alle Vorlagen](https://pethost.dev/de/templates/) · [Notizen und Wikis](https://pethost.dev/de/templates/notes/)

# Docmost mit einem Klick deployen

Gemeinsames Wiki und Dokumentation, mit Bereichen, Bearbeitung in Echtzeit und Diagrammen

Eine selbst gehostete Alternative zu Notion und Confluence.

[Auf Pethost deployen](https://console.pethost.dev/?template=docmost)

## 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

1. 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.
2. „Neues Projekt“ öffnet sich bei Docmost. Du füllst aus, was die App braucht, und klickst auf „Projekt erstellen“: **Benutzername**, **E-Mail**, **Admin-Passwort**.
3. 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.
4. 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:
```

[compose.yaml](https://pethost.dev/templates/docmost/compose.yaml)[Auf GitHub ansehen](https://github.com/pethost-dev/templates/tree/main/docmost)

## [Mehr in Notizen und Wikis](https://pethost.dev/de/templates/notes/)

- [**Memos**Kurze Markdown-Notizen in einer privaten Timeline](https://pethost.dev/de/templates/memos/)
- [**HedgeDoc**Markdown-Notizen, die du mit anderen in Echtzeit gemeinsam schreibst](https://pethost.dev/de/templates/hedgedoc/)
- [**Obsidian LiveSync**Ein CouchDB-Server, der deine Obsidian-Vaults mit Self-hosted LiveSync synchronisiert](https://pethost.dev/de/templates/obsidian-livesync/)
- [**BookStack**Ein Wiki aus Regalen, Büchern, Kapiteln und Seiten](https://pethost.dev/de/templates/bookstack/)
- [**Etherpad**Dokumente, die gemeinsam in Echtzeit bearbeitet werden: jede Person in ihrer eigenen Farbe, mit Chat, Verlauf und Plugins](https://pethost.dev/de/templates/etherpad/)
- [**MediaWiki**Die Wiki-Software von Wikipedia: Seiten, die alle lesen können, bearbeitet im visuellen oder im Quelltext-Editor](https://pethost.dev/de/templates/mediawiki/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Vorlagen](https://pethost.dev/de/templates/)
- [Über uns](https://pethost.dev/about/)
- [Doku](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/de/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [AGB](https://pethost.dev/terms/)
- [Datenschutz](https://pethost.dev/privacy/)
- [Erstattung](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Datenbanken

- [Postgres](https://pethost.dev/de/postgres/)

Vergleiche

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/de/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/de/blog/coolify-cloud-vs-dokploy-cloud/)
- [Railway vs Render vs Fly.io Preise](https://pethost.dev/de/blog/railway-vs-render-vs-fly-io-pricing/)
- [Managed Hosting für Docker Compose](https://pethost.dev/de/blog/managed-docker-compose-hosting/)

Alternativen

- [Railway-Alternativen](https://pethost.dev/de/blog/railway-alternatives/)
- [Heroku-Alternativen](https://pethost.dev/de/blog/heroku-alternatives/)
- [Dokploy-Alternativen](https://pethost.dev/de/blog/dokploy-alternatives/)
- [Coolify-Alternativen](https://pethost.dev/de/blog/coolify-alternatives/)
- [Render-Alternativen](https://pethost.dev/de/blog/render-alternatives/)
- [Sliplane-Alternativen](https://pethost.dev/de/blog/sliplane-alternatives/)
