Este repositorio contiene la configuración necesaria para desplegar una instancia de Wiki.js utilizando Docker Compose, junto con Nginx como servidor proxy inverso y PostgreSQL como base de datos.
Wiki.js es una potente plataforma wiki de código abierto, moderna y elegante, desarrollada con Node.js. Permite la creación y gestión colaborativa de documentación, bases de conocimiento y contenido estructurado.
Este repositorio proporciona una configuración Docker completa para desplegar Wiki.js en un entorno de producción con:
- Wiki.js: La aplicación principal para gestionar tu contenido wiki
- Nginx: Servidor web que actúa como proxy inverso, mejorando la seguridad y rendimiento
- PostgreSQL: Base de datos robusta para almacenar todo el contenido
- Certbot: Gestión automatizada de certificados SSL para garantizar conexiones seguras
Esta configuración permite desplegar rápidamente una plataforma de documentación colaborativa completa, segura y escalable para equipos, organizaciones o proyectos de cualquier tamaño.
La configuración incluye los siguientes servicios:
- nginx: Servidor web que actúa como proxy inverso para Wiki.js
- wikijs: La aplicación principal Wiki.js
- wikijs-db: Base de datos PostgreSQL para almacenar el contenido de Wiki.js
- certbot: Servicio opcional para la gestión de certificados SSL
- Un servidor con acceso público a internet (para certificados SSL)
- Puertos 80 y 443 disponibles
- Clona este repositorio:
git clone https://github.com/pederysky/wiki.js-nginx-certbot.git
cd wiki.js-nginx-certbot
- Crea las carpetas necesarias para los volúmenes persistentes:
mkdir -p data certbot/etc certbot/lib certbot/log nginx
- Inicia los servicios:
docker compose up -d
Una vez que los contenedores estén en funcionamiento, puedes acceder a Wiki.js a través de:
- http://localhost:3000 (si accedes desde el servidor)
- http://tu-dominio.com (si has configurado un dominio)
En el primer acceso, se te pedirá completar la configuración inicial de Wiki.js.
El archivo docker-compose incluye un servicio Certbot para gestionar certificados SSL. Para configurarlo correctamente:
- Detén los servicios:
docker compose down
-
Actualiza la configuración de Nginx para incluir tu dominio en lugar de "localhost"
-
Configura Certbot para obtener certificados para tu dominio:
docker compose run --rm certbot certonly --webroot --webroot-path=/var/www/certbot -d tu-dominio.com -d www.tu-dominio.com
-
Actualiza nuevamente la configuración de Nginx para usar los certificados SSL
-
Reinicia los servicios:
docker compose up -d
Para mayor seguridad, se recomienda cambiar las credenciales predeterminadas de la base de datos. Modifica las siguientes variables en el archivo docker-compose.yml:
# En el servicio wikijs-db
environment:
- POSTGRES_USER=usuario
- POSTGRES_PASSWORD=contraseña
- POSTGRES_DB=wikijs
# En el servicio wikijs (para que coincidan)
environment:
- DB_USER=usuario
- DB_PASS=contraseña
Si necesitas personalizar la configuración de Nginx, puedes modificar el comando en el servicio de Nginx para que apunte a un archivo de configuración personalizado montado como volumen.
La base de datos PostgreSQL guarda sus datos en el directorio ./data
. Para realizar copias de seguridad:
- Detén los servicios o asegúrate de que no hay escrituras:
docker compose pause wikijs wikijs-db
- Haz una copia de seguridad del directorio de datos:
tar -czf wikijs-backup-$(date +%Y%m%d).tar.gz data/
- Reanuda los servicios:
docker compose unpause wikijs wikijs-db
Si encuentras problemas con la implementación, comprueba los logs de los servicios:
# Ver logs de todos los servicios
docker compose logs
# Ver logs de un servicio específico
docker compose logs wikijs
docker compose logs nginx
docker compose logs wikijs-db