---
title: "Docmost: Docker Compose i hosting jednym kliknięciem"
description: "Docmost to wiki i dokumentacja open source: przestrzenie, edycja na żywo i diagramy. Hostuj tę alternatywę dla Confluence i Notion u siebie w jeden klik."
---

[← Wszystkie szablony](https://pethost.dev/pl/templates/) · [Notatki i wiki](https://pethost.dev/pl/templates/notes/)

# Wdróż Docmost jednym kliknięciem

Wiki i dokumentacja do wspólnej pracy, z przestrzeniami, edycją w czasie rzeczywistym i diagramami

Alternatywa dla Notion i Confluence, hostowana u siebie.

[Wdróż na Pethost](https://console.pethost.dev/?template=docmost)

## Czym jest Docmost?

Docmost to oprogramowanie open source do wiki i dokumentacji. Strony są w przestrzeniach, z których każda ma własnych członków i uprawnienia, a tę samą stronę może edytować kilka osób naraz. Edytor obsługuje polecenia po ukośniku, tabele, załączniki i osadzanie treści z usług takich jak Airtable, Loom czy Miro, a diagramy tworzy za pomocą Draw.io, Excalidraw i Mermaid. Każda strona zachowuje swoją historię, z której można przywrócić wersję, ludzie komentują to, co czytają, wyszukiwanie obejmuje pełny tekst, a stronę można udostępnić publicznie przez link.

Zespoły hostują Docmost u siebie jako bazę wiedzy albo wewnętrzne wiki zamiast Confluence czy Notion, ze stronami zaimportowanymi z Notion, Markdowna albo HTML-a. Ten szablon uruchamia darmową edycję Community z PostgreSQL i Redisem oraz tworzy przestrzeń roboczą i jej właściciela z pól formularza, zanim Docmost komukolwiek odpowie. Haczyk: SSO, uwierzytelnianie dwuskładnikowe, AI, klucze API, uprawnienia do poszczególnych stron i import z Confluence są w płatnej edycji Business.

## Hosting Docmost na Pethost

1. Logujesz się do Pethost kluczem dostępu, przez GitHub albo Google. Nie masz jeszcze maszyny? Wybierasz plan, a link czeka, aż będzie gotowa.
2. Okno „Nowy projekt” otwiera się na aplikacji Docmost. Wypełniasz to, o co prosi, i klikasz „Utwórz projekt”: **Nazwa użytkownika**, **E-mail**, **Hasło administratora**.
3. Za minutę czy dwie aplikacja Docmost działa pod własnym adresem z HTTPS. Jej sekrety są tworzone losowo, a dane trafiają do nocnego backupu.
4. To projekt jak każdy inny: ty albo twój agent możecie go zmienić, cofnąć do wcześniejszej wersji albo przywrócić.

## Pytania o Docmost

**Czy Docmost jest darmowy?**

Tak. Edycja Community to open source na licencji AGPL-3.0, którą można za darmo hostować u siebie, ze współpracą w czasie rzeczywistym, przestrzeniami i wyszukiwaniem pełnotekstowym. Edycja Business kosztuje 6 $ za użytkownika miesięcznie, przy płatności rocznej za co najmniej 10 użytkowników, i dodaje SSO, uwierzytelnianie dwuskładnikowe, AI, klucze API i uprawnienia do poszczególnych stron.

**Docmost czy Confluence albo Notion?**

Jako wiki Docmost daje to samo: przestrzenie, drzewo stron, edycję w czasie rzeczywistym, komentarze i historię stron. Confluence i Notion działają w chmurach swoich twórców, a Docmost tam, gdzie go wdrożysz, i jego edycja Community jest darmowa dla dowolnej liczby użytkowników.

**Czy mogę zaimportować strony z Notion do Docmosta?**

Tak. Docmost importuje do przestrzeni eksport z Notion oraz pliki Markdown i HTML. Import z Confluence jest częścią płatnej edycji Business.

**Czy kilka osób może naraz edytować tę samą stronę Docmosta?**

Tak. Jego edytor działa wspólnie w czasie rzeczywistym: każdy na stronie widzi zmiany innych w trakcie pisania, a historia strony zachowuje każdą wersję.

**Jak zaprosić ludzi do Docmosta?**

Przez Invite People, e-mailem i z rolą. Docmost nie ma publicznej rejestracji, więc każdy dołącza przez swoje zaproszenie, które Docmost wysyła e-mailem, gdy w pliku .env projektu są SMTP_HOST i pozostałe ustawienia SMTP_. Do tego czasu link wyślesz samodzielnie: skopiujesz go przez Copy link przy oczekującym zaproszeniu na stronie Settings → Members.

**Ile pamięci i miejsca na dysku potrzebuje Docmost?**

Docmost ma małe wymagania: około 300 MB pamięci razem z Postgresem i Redisem, a strony rosną powoli; załączniki zajmują tyle miejsca, co ich pliki. Na Pethost wystarczy mu plan Starter, z miejscem na inne aplikacje obok.

## Docmost: plik Docker Compose

Szablon to ten compose.yaml i zmienne zapisywane do .env projektu przy jego tworzeniu. Pethost uruchamia plik dokładnie tak, jak jest napisany.

**Kontenery:** docmost (docmost/docmost:0.97), postgres (postgres:18-alpine), redis (redis:8-alpine).

**Wolumeny, w nocnym backupie:** 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)[Zobacz na GitHubie](https://github.com/pethost-dev/templates/tree/main/docmost)

## [Więcej w kategorii Notatki i wiki](https://pethost.dev/pl/templates/notes/)

- [**Memos**Krótkie notatki Markdown na prywatnej osi czasu](https://pethost.dev/pl/templates/memos/)
- [**HedgeDoc**Notatki w Markdownie, które piszesz razem z innymi w czasie rzeczywistym](https://pethost.dev/pl/templates/hedgedoc/)
- [**Obsidian LiveSync**Serwer CouchDB, który synchronizuje twoje sejfy Obsidiana przez Self-hosted LiveSync](https://pethost.dev/pl/templates/obsidian-livesync/)
- [**BookStack**Wiki uporządkowane w półki, książki, rozdziały i strony](https://pethost.dev/pl/templates/bookstack/)
- [**Etherpad**Dokumenty edytowane wspólnie w czasie rzeczywistym: każdy autor w swoim kolorze, z czatem, historią i wtyczkami](https://pethost.dev/pl/templates/etherpad/)
- [**MediaWiki**Oprogramowanie wiki, na którym działa Wikipedia: strony, które każdy może czytać, edytowane wizualnie albo w kodzie źródłowym](https://pethost.dev/pl/templates/mediawiki/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Szablony](https://pethost.dev/pl/templates/)
- [O nas](https://pethost.dev/about/)
- [Dokumentacja](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/pl/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Regulamin](https://pethost.dev/terms/)
- [Prywatność](https://pethost.dev/privacy/)
- [Zwroty](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bazy danych

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

Porównania

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/pl/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/pl/blog/coolify-cloud-vs-dokploy-cloud/)
- [Cennik Railway vs Render vs Fly.io](https://pethost.dev/pl/blog/railway-vs-render-vs-fly-io-pricing/)
- [Zarządzany hosting Docker Compose](https://pethost.dev/pl/blog/managed-docker-compose-hosting/)

Alternatywy

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