Instalación · 10 min read · Dec 19, 2025
Cómo instalar Wiki.js en Ubuntu 22.04 LTS

Wiki.js es un software wiki ligero y de código abierto. Está construido sobre el marco de JavaScript Node.js. Se puede utilizar para escribir documentación, wikis y contenido web utilizando un editor Markdown para desarrolladores y un editor WYSIWYG para personas no técnicas. Soporta múltiples tipos de contenido, incluyendo diagramas UML, expresiones matemáticas utilizando la sintaxis Tex o MathML, y código. Incluye múltiples módulos para varias funciones, incluyendo análisis, autenticación, registro, motores de búsqueda de terceros y múltiples servicios de almacenamiento para sincronizar tu contenido.
En este tutorial, aprenderás a instalar Wiki.js en un servidor Ubuntu 22.04 utilizando la base de datos PostgreSQL y el servidor Nginx para el proxy.
Prerrequisitos
- Un servidor que ejecute Ubuntu 22.04.
- Un usuario no root con privilegios sudo.
- Un nombre de dominio completamente calificado (FQDN) apuntando a tu servidor. Para nuestros propósitos, utilizaremos
wiki.example.comcomo el nombre de dominio. - Asegúrate de que todo esté actualizado.
$ sudo apt update && sudo apt upgrade - Instala paquetes de utilidad básicos. Algunos de ellos pueden ya estar instalados.
$ sudo apt install wget curl ca-certificates gnupg gnupg2 nano unzip lsb-release ubuntu-keyring -y
Paso 1 - Configurar el Firewall
Antes de instalar cualquier paquete, el primer paso es configurar el firewall para permitir conexiones HTTP y HTTPS.
Verifica el estado del firewall.
$ sudo ufw status
Deberías ver algo como lo siguiente.
Estado: activo
Para Acción Desde
-- ------ ----
OpenSSH PERMITIR En cualquier lugar
OpenSSH (v6) PERMITIR En cualquier lugar (v6)
Permite los puertos HTTP y HTTPS.
$ sudo ufw allow http
$ sudo ufw allow https
Verifica el estado nuevamente para confirmar.
$ sudo ufw status
Estado: activo
Para Acción Desde
-- ------ ----
OpenSSH PERMITIR En cualquier lugar
80/tcp PERMITIR En cualquier lugar
443 PERMITIR En cualquier lugar
OpenSSH (v6) PERMITIR En cualquier lugar (v6)
80/tcp (v6) PERMITIR En cualquier lugar (v6)
443 (v6) PERMITIR En cualquier lugar (v6)
Paso 2 - Instalar PostgreSQL y Utilidades
Ubuntu 22.04 viene con una versión más antigua de PostgreSQL. Instalaremos Postgres 14 para nuestro tutorial.
Instala el repositorio para PostgreSQL.
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Importa la clave GPG de PostgreSQL.
$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null
Actualiza la lista de repositorios del sistema.
$ sudo apt update
Instala el servidor PostgreSQL 14.
$ sudo apt install -y postgresql-14
Verifica el estado del servicio.
$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
Cargado: cargado (/lib/systemd/system/postgresql.service; habilitado; ajuste de proveedor: habilitado)
Activo: activo (salido) desde mar 2022-10-25 06:24:24 UTC; hace 10min
PID principal: 4032 (código=salido, estado=0/ÉXITO)
CPU: 1ms
Oct 25 06:24:24 wiki systemd[1]: Iniciando PostgreSQL RDBMS...
Oct 25 06:24:24 wiki systemd[1]: Finalizado PostgreSQL RDBMS.
Paso 3 - Configurar PostgreSQL
Inicia sesión en el shell de PostgreSQL.
$ sudo -i -u postgres psql
Crea una nueva base de datos para Wiki.js.
postgres=# CREATE DATABASE wikidb;
Crea un nuevo usuario de base de datos con una contraseña fuerte.
postgres=# CREATE USER wikiuser WITH ENCRYPTED PASSWORD 'wikipassword';
Otorga los derechos al usuario para usar la base de datos.
postgres=# GRANT ALL PRIVILEGES ON DATABASE wikidb TO wikiuser;
Sal del Shell de Postgres.
postgres=# \q
Paso 4 - Instalar Node.js
Wiki.js soporta Node v16 en el momento de escribir este tutorial.
Instala el repositorio de Node utilizando el siguiente comando.
$ curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
Instala Node.
$ sudo apt install nodejs -y
Verifica la instalación de Node.
$ node --version
v16.18.0
Paso 5 - Descargar Wiki.js
Crea una carpeta para instalar Wiki.js.
$ sudo mkdir -p /var/www/wikijs
Establece al usuario actualmente conectado como el propietario de la carpeta.
$ sudo chown $USER:$USER /var/www/wikijs
Cambia al directorio y descarga el archivo de código de Wiki.js.
$ cd /var/www/wikijs && wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
Extrae el archivo descargado.
$ tar xzf wiki-js.tar.gz
Elimina el archivo.
$ rm wiki-js.tar.gz
Paso 6 - Configurar y Ejecutar Wiki.js
Crea el archivo de configuración a partir del ejemplo.
$ cp config.sample.yml config.yml
Abre el archivo de configuración para editar.
$ nano config.yml
Encuentra la siguiente configuración de base de datos y actualiza sus valores con los configurados en el paso 3.
# PostgreSQL / MySQL / MariaDB / MS SQL Server solo:
host: localhost
port: 5432
user: wikiuser
pass: wikipassword
db: wikidb
ssl: false
Encuentra la línea bindIP: 0.0.0.0 y actualízala de la siguiente manera.
bindIP: 127.0.0.1
Esto hará que Wiki.js escuche en la dirección de loopback porque utilizaremos el proxy Nginx para acceder a él desde el exterior.
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Ejecuta Wiki.js utilizando el siguiente comando.
$ node server
Recibirás una salida similar confirmando una instalación exitosa.
Cargando configuración desde /var/www/wikijs/config.yml... OK
2022-10-25T06:40:46.294Z [MASTER] info: =======================================
2022-10-25T06:40:46.296Z [MASTER] info: = Wiki.js 2.5.289 =====================
2022-10-25T06:40:46.296Z [MASTER] info: =======================================
2022-10-25T06:40:46.296Z [MASTER] info: Inicializando...
2022-10-25T06:40:46.962Z [MASTER] info: Usando el controlador de base de datos pg para postgres [ OK ]
2022-10-25T06:40:46.974Z [MASTER] info: Conectando a la base de datos...
2022-10-25T06:40:47.067Z [MASTER] info: Conexión a la base de datos exitosa [ OK ]
2022-10-25T06:40:47.345Z [MASTER] warn: La configuración de la base de datos está vacía o incompleta. Cambiando a modo de configuración...
2022-10-25T06:40:47.345Z [MASTER] info: Iniciando el asistente de configuración...
2022-10-25T06:40:47.510Z [MASTER] info: Iniciando el servidor HTTP en el puerto 3000...
2022-10-25T06:40:47.511Z [MASTER] info: Servidor HTTP en el puerto: [ 3000 ]
2022-10-25T06:40:47.515Z [MASTER] info: Servidor HTTP: [ EN EJECUCIÓN ]
2022-10-25T06:40:47.515Z [MASTER] info: .......................................................................
2022-10-25T06:40:47.515Z [MASTER] info:
2022-10-25T06:40:47.516Z [MASTER] info: Navega a http://YOUR-SERVER-IP:3000/ para completar la configuración!
2022-10-25T06:40:47.516Z [MASTER] info:
2022-10-25T06:40:47.516Z [MASTER] info: ............................................................................
Presiona Ctrl + C para detener el proceso.
Paso 7 - Configurar un Servicio Systemd
El proceso anterior para mantener Wiki.js en ejecución es temporal. Para hacer que el proceso sea permanente, necesitaremos crear un servicio systemd para Wiki.js para ejecutarlo como un servicio en segundo plano. Esto permitirá que Wiki.js se ejecute a través de reinicios del sistema.
Crea un archivo de servicio systemd para Wiki.js y ábrelo para editar.
$ sudo nano /etc/systemd/system/wikijs.service
Pega el siguiente código en él. Reemplaza el valor de la variable User con el nombre de tu usuario del sistema.
[Unit]
Description=Wiki.js
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always
User=navjot
Environment=NODE_ENV=production
WorkingDirectory=/var/www/wikijs
[Install]
WantedBy=multi-user.target
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Recarga el demonio del sistema.
$ sudo systemctl daemon-reload
Habilita el servicio de Wiki.js.
$ sudo systemctl enable wikijs
Paso 8 - Instalar Nginx
Ubuntu 22.04 viene con una versión más antigua de Nginx. Necesitas descargar el repositorio oficial de Nginx para instalar la última versión.
Importa la clave oficial de Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Configura el repositorio oficial para Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Fija el repositorio para dar preferencia al repositorio oficial sobre el de Ubuntu.
$ echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
| sudo tee /etc/apt/preferences.d/99nginx
Actualiza la lista de repositorios del sistema.
$ sudo apt update
Instala el servidor Nginx.
$ sudo apt install nginx -y
Verifica la instalación.
$ nginx -v
nginx version: nginx/1.22.1
Inicia el servidor Nginx.
$ sudo systemctl start nginx
Verifica el estado del servicio.
$ sudo systemctl status nginx
? nginx.service - nginx - servidor web de alto rendimiento
Cargado: cargado (/lib/systemd/system/nginx.service; habilitado; ajuste de proveedor: habilitado)
Activo: activo (en ejecución) desde mar 2022-10-25 06:50:05 UTC; hace 2s
Docs: https://nginx.org/en/docs/
Proceso: 5522 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (código=salido, estado=0/ÉXITO)
PID principal: 5523 (nginx)
Tareas: 2 (límite: 1030)
Memoria: 1.8M
CPU: 4ms
CGroup: /system.slice/nginx.service
??5523 "nginx: proceso maestro /usr/sbin/nginx -c /etc/nginx/nginx.conf"
??5524 "nginx: proceso trabajador" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
Oct 25 06:50:05 wiki systemd[1]: Iniciando nginx - servidor web de alto rendimiento...
Paso 9 - Instalar SSL
Necesitamos instalar Certbot para generar el certificado SSL. Puedes instalar Certbot utilizando el repositorio de Ubuntu o obtener la última versión utilizando la herramienta Snapd. Usaremos la versión de Snapd.
Ubuntu 22.04 viene con Snapd instalado por defecto. Ejecuta los siguientes comandos para asegurarte de que tu versión de Snapd esté actualizada.
$ sudo snap install core
$ sudo snap refresh core
Instala Certbot.
$ sudo snap install --classic certbot
Usa el siguiente comando para asegurarte de que el comando Certbot pueda ejecutarse creando un enlace simbólico al directorio /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Ejecuta el siguiente comando para emitir el certificado.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d wiki.example.com
El comando anterior descargará un certificado en el directorio /etc/letsencrypt/live/wiki.example.com en tu servidor.
Genera un certificado de grupo Diffie-Hellman.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Verifica el servicio programador de renovación de Certbot.
$ sudo systemctl list-timers
Encontrarás snap.certbot.renew.service como uno de los servicios programados para ejecutarse.
NEXT LEFT LAST PASSED UNIT ACTIVATES
.................................................................................................................................
Mar 2022-10-25 00:00:00 UTC 17h left Mar 2022-10-25 04:49:20 UTC 2h ago logrotate.timer logrotate.service
Mar 2022-10-25 02:39:09 UTC 20h left Mar 2022-10-25 06:47:33 UTC 12min ago apt-daily.timer apt-daily.service
Mar 2022-10-25 06:02:00 UTC 8h left n/a n/a snap.certbot.renew.timer snap.certbot.renew.service
Haz una prueba del proceso para verificar si la renovación de SSL está funcionando correctamente.
$ sudo certbot renew --dry-run
Si no ves errores, estás listo. Tu certificado se renovará automáticamente.
Paso 10 - Configurar Nginx
Crea y abre el archivo /etc/nginx/conf.d/wikijs.conf para editar.
$ sudo nano /etc/nginx/conf.d/wikijs.conf
Pega el siguiente código en él.
# hacer cumplir HTTPS
server {
listen 80;
listen [::]:80;
server_name wiki.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name wiki.example.com;
root /var/www/wikijs;
access_log /var/log/nginx/wiki.access.log;
error_log /var/log/nginx/wiki.error.log;
http2_push_preload on; # Habilitar HTTP/2 Server Push
ssl_certificate /etc/letsencrypt/live/wiki.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wiki.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/wiki.example.com/chain.pem;
ssl_session_timeout 1d;
# Habilitar versiones TLS (TLSv1.3 es requerido para el próximo HTTP/3 QUIC).
ssl_protocols TLSv1.2 TLSv1.3;
# Habilitar 0-RTT de TLSv1.3. Usa $ssl_early_data cuando se haga proxy inverso a
# prevenir ataques de repetición.
#
# @ver: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
ssl_early_data on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
# OCSP Stapling ---
# obtener registros OCSP de la URL en ssl_certificate y almacenarlos en caché
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
add_header X-Early-Data $tls1_3_early_data;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:3000;
}
}
# Este bloque es útil para depurar TLS v1.3. Siéntete libre de eliminar esto
# y usar la variable `$ssl_early_data` expuesta por NGINX directamente si deseas hacerlo.
map $ssl_early_data $tls1_3_early_data {
"~." $ssl_early_data;
default "";
}
Reemplaza la ubicación raíz en el archivo anterior con el directorio en tu servidor.
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Abre el archivo /etc/nginx/nginx.conf para editar.
$ sudo nano /etc/nginx/nginx.conf
Agrega la siguiente línea antes de la línea include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Verifica tu configuración de Nginx.
$ sudo nginx -t
Si no ves errores, significa que estás listo para continuar.
Inicia el servicio de Wiki.js.
$ sudo systemctl start wikijs
Recarga el servidor Nginx.
$ sudo systemctl reload nginx
Paso 11 - Termina la Instalación
Visita la URL https://wiki.example.com para terminar la instalación.

Completa los detalles de tu cuenta de administrador y la URL. Desactiva la Telemetría desmarcando la opción Permitir Telemetría. También puedes desactivarla desde el panel de Administración. Haz clic en el botón Instalar para continuar.
Serás llevado a la página de inicio de sesión.

Ingresa los detalles de tu cuenta y haz clic en el botón Iniciar sesión para proceder a la página de administración.

Ahora puedes comenzar a usar Wiki.js.
Conclusión
Esto concluye nuestro tutorial, donde aprendiste cómo instalar Wiki.js en un servidor Ubuntu 22.04. Si tienes alguna pregunta, publícalas en los comentarios a continuación.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.