← Todas las plantillas · Notas y wikis
Despliega Docmost en un clic
Wiki y documentación colaborativas, con espacios, edición en tiempo real y diagramas
Una alternativa autoalojada a Notion y Confluence.
¿Qué es Docmost?
Docmost es software de código abierto para wikis y documentación. Las páginas viven en espacios, cada uno con sus propios miembros y permisos, y varias personas pueden editar la misma página a la vez. El editor admite comandos de barra, tablas, archivos adjuntos y contenido incrustado como Airtable, Loom y Miro, y dibuja diagramas con Draw.io, Excalidraw y Mermaid. Cada página conserva su historial, que se puede restaurar, la gente comenta lo que lee, la búsqueda abarca el texto completo y una página se puede compartir públicamente con un enlace.
Los equipos autoalojan Docmost como base de conocimiento o wiki interna en lugar de Confluence o Notion, con páginas importadas de Notion, Markdown o HTML. Esta plantilla ejecuta la edición Community gratuita con PostgreSQL y Redis, y crea el espacio de trabajo y su propietario con los datos de los campos antes de que Docmost responda a nadie. El inconveniente: el SSO, la autenticación de dos factores, la IA, las claves de API, los permisos por página y el importador de Confluence están en la edición Business, que es de pago.
Hosting de Docmost en Pethost
- Inicias sesión en Pethost con una passkey, GitHub o Google. ¿Aún no tienes máquina? Eliges un plan, y el enlace espera hasta que esté lista.
- Nuevo proyecto se abre en Docmost. Rellenas lo que pide y haces clic en Crear proyecto: Nombre de usuario, Correo electrónico, Contraseña de administrador.
- En un par de minutos Docmost está en marcha en su propia dirección con HTTPS. Sus secretos se generan al azar, y sus datos entran en el backup de cada noche.
- Es un proyecto como cualquier otro: tú o tu agente lo pueden cambiar, volver a una versión anterior o restaurar.
Preguntas sobre Docmost
¿Docmost es gratis?
Sí. La edición Community es de código abierto bajo la AGPL-3.0 y gratis de autoalojar, con colaboración en tiempo real, espacios y búsqueda de texto completo. La edición Business cuesta 6 USD por puesto al mes, con facturación anual de al menos 10 puestos, y agrega SSO, autenticación de dos factores, IA, claves de API y permisos por página.
¿Docmost frente a Confluence o Notion?
Docmost cubre lo mismo que una wiki: espacios, páginas en árbol, edición en tiempo real, comentarios e historial de las páginas. Confluence y Notion funcionan en la nube de sus creadores, mientras que Docmost funciona donde lo despliegues, y su edición Community es gratis para cualquier número de usuarios.
¿Puedo importar mis páginas de Notion a Docmost?
Sí. Docmost importa a un espacio una exportación de Notion, y también archivos Markdown y HTML. El importador de Confluence es parte de la edición Business, que es de pago.
¿Varias personas pueden editar una página de Docmost a la vez?
Sí. Su editor es colaborativo en tiempo real: cada persona en una página ve los cambios de las demás mientras escriben, y el historial de la página guarda cada versión.
¿Cómo invito a personas a Docmost?
Con “Invitar personas”, por correo y con un rol. Docmost no tiene registro público, así que cada persona entra con su invitación, que Docmost envía por correo en cuanto SMTP_HOST y los demás ajustes SMTP_ están en el .env del proyecto. Mientras tanto, “Copiar enlace” en una invitación pendiente de Configuración → Miembros te da el enlace para que lo envíes tú.
¿Cuánta memoria y disco necesita Docmost?
Docmost es ligero: unos 300 MB de memoria con Postgres y Redis, y las páginas crecen despacio; los adjuntos ocupan lo que ocupan sus archivos. En Pethost le basta el plan Starter, y queda sitio para otras apps a su lado.
El archivo Docker Compose de Docmost
La plantilla es este compose.yaml y las variables que se escriben en el .env del proyecto al crearlo. Pethost ejecuta el archivo tal como está escrito.
Contenedores: docmost (docmost/docmost:0.97), postgres (postgres:18-alpine), redis (redis:8-alpine).
Volúmenes, en el backup de cada noche: 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:
Más en Notas y wikis
- MemosNotas breves en Markdown en una línea de tiempo privada
- HedgeDocNotas en Markdown que escribes junto con otros en tiempo real
- Obsidian LiveSyncUn servidor CouchDB que sincroniza tus bóvedas de Obsidian con Self-hosted LiveSync
- BookStackUna wiki organizada en estantes, libros, capítulos y páginas
- EtherpadDocumentos editados en equipo en tiempo real: cada autor con su propio color, con chat, historial y plugins
- MediaWikiEl software de wiki de Wikipedia: páginas que cualquiera puede leer, editadas con el editor visual o con el de código
