← Wszystkie szablony · Notatki i wiki
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.
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
- Logujesz się do Pethost kluczem dostępu, przez GitHub albo Google. Nie masz jeszcze maszyny? Wybierasz plan, a link czeka, aż będzie gotowa.
- 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.
- 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.
- 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:
Więcej w kategorii Notatki i wiki
- MemosKrótkie notatki Markdown na prywatnej osi czasu
- HedgeDocNotatki w Markdownie, które piszesz razem z innymi w czasie rzeczywistym
- Obsidian LiveSyncSerwer CouchDB, który synchronizuje twoje sejfy Obsidiana przez Self-hosted LiveSync
- BookStackWiki uporządkowane w półki, książki, rozdziały i strony
- EtherpadDokumenty edytowane wspólnie w czasie rzeczywistym: każdy autor w swoim kolorze, z czatem, historią i wtyczkami
- MediaWikiOprogramowanie wiki, na którym działa Wikipedia: strony, które każdy może czytać, edytowane wizualnie albo w kodzie źródłowym
