Instalación · 10 min read · Oct 14, 2025
Cómo instalar Wiki.js en Rocky Linux 9

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 usando sintaxis Tex o MathML, y código. Incluye múltiples módulos para diversas 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 Rocky Linux 9 utilizando la base de datos PostgreSQL y el servidor Nginx para el proxy.
Prerrequisitos
- Un servidor que ejecute Rocky Linux 9.
- 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 dnf update - Instala paquetes de utilidad básicos. Algunos de ellos pueden estar ya instalados.
$ sudo dnf install wget curl nano unzip yum-utils -y
Paso 1 - Configurar el Firewall
El primer paso es configurar el firewall. Rocky Linux utiliza Firewalld Firewall. Verifica el estado del firewall.
$ sudo firewall-cmd --state
running
El firewall trabaja con diferentes zonas, y la zona pública es la predeterminada que utilizaremos. Lista todos los servicios y puertos activos en el firewall.
$ sudo firewall-cmd --permanent --list-services
Debería mostrar la siguiente salida.
cockpit dhcpv6-client ssh
Wiki.js necesita los puertos HTTP y HTTPS para funcionar. Ábrelos.
$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --add-service=https --permanent
Recarga el firewall para aplicar los cambios.
$ sudo firewall-cmd --reload
Paso 2 - Instalar PostgreSQL y Utilidades
Rocky Linux 9 viene con una versión más antigua de PostgreSQL. Instalaremos Postgres 14 para nuestro tutorial.
Instala el RPM del repositorio para PostgreSQL.
$ sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Instala el servidor PostgreSQL 14.
$ sudo dnf install -y postgresql14-server postgresql14-contrib
Inicializa la base de datos.
$ sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
Habilita e inicia el servicio de PostgreSQL.
$ sudo systemctl enable postgresql-14 --now
Verifica el estado del servicio.
$ sudo systemctl status postgresql-14
? postgresql-14.service - Servidor de base de datos PostgreSQL 14
Loaded: loaded (/usr/lib/systemd/system/postgresql-14.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2022-10-22 09:52:41 UTC; 2s ago
Docs: https://www.postgresql.org/docs/14/static/
Process: 103857 ExecStartPre=/usr/pgsql-14/bin/postgresql-14-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 103862 (postmaster)
Tasks: 8 (limit: 5915)
Memory: 16.6M
CPU: 61ms
CGroup: /system.slice/postgresql-14.service
??103862 /usr/pgsql-14/bin/postmaster -D /var/lib/pgsql/14/data/
??103863 "postgres: logger "
??103865 "postgres: checkpointer "
??103866 "postgres: background writer "
??103867 "postgres: walwriter "
??103868 "postgres: autovacuum launcher "
??103869 "postgres: stats collector "
??103870 "postgres: logical replication launcher "
Oct 22 09:52:41 wiki.example.com systemd[1]: Starting PostgreSQL 14 database server...
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://rpm.nodesource.com/setup_16.x | sudo bash -
Instala Node.
$ sudo dnf 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
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 bucle invertido 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.
2022-10-22T10:25:48.187Z [MASTER] info: =======================================
2022-10-22T10:25:48.190Z [MASTER] info: = Wiki.js 2.5.289 =========================
2022-10-22T10:25:48.191Z [MASTER] info: =======================================
2022-10-22T10:25:48.191Z [MASTER] info: Inicializando...
2022-10-22T10:25:49.079Z [MASTER] info: Usando el controlador de base de datos pg para postgres [ OK ]
2022-10-22T10:25:49.086Z [MASTER] info: Conectando a la base de datos...
2022-10-22T10:25:49.117Z [MASTER] info: Conexión a la base de datos exitosa [ OK ]
2022-10-22T10:25:49.467Z [MASTER] warn: La configuración de la base de datos está vacía o incompleta. Cambiando a modo de configuración...
2022-10-22T10:25:49.468Z [MASTER] info: Iniciando el asistente de configuración...
2022-10-22T10:25:49.740Z [MASTER] info: Iniciando el servidor HTTP en el puerto 3000...
2022-10-22T10:25:49.741Z [MASTER] info: Servidor HTTP en el puerto: [ 3000 ]
2022-10-22T10:25:49.745Z [MASTER] info: Servidor HTTP: [ EN EJECUCIÓN ]
2022-10-22T10:25:49.745Z [MASTER] info: .......................................
2022-10-22T10:25:49.745Z [MASTER] info:
2022-10-22T10:25:49.746Z [MASTER] info: Navega a http://YOUR-SERVER-IP:3000/ para completar la configuración!
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
Rocky Linux viene con una versión más antigua de Nginx. Necesitas descargar el repositorio oficial de Nginx para instalar la última versión.
Crea y abre el archivo /etc/yum.repos.d/nginx.repo para crear el repositorio oficial de Nginx.
$ sudo nano /etc/yum.repos.d/nginx.repo
Pega el siguiente código en él.
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Instala el servidor Nginx.
$ sudo dnf install nginx -y
Verifica la instalación.
$ nginx -v
nginx version: nginx/1.22.1
Habilita e inicia el servidor Nginx.
$ sudo systemctl enable nginx --now
Verifica el estado del servidor.
$ sudo systemctl status nginx
? nginx.service - nginx - servidor web de alto rendimiento
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2022-10-22 11:15:39 UTC; 49min ago
Docs: http://nginx.org/en/docs/
Process: 116236 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 116237 (nginx)
Tasks: 2 (limit: 5915)
Memory: 5.0M
CPU: 245ms
CGroup: /system.slice/nginx.service
??116237 "nginx: proceso maestro /usr/sbin/nginx -c /etc/nginx/nginx.conf"
??116238 "nginx: proceso trabajador"
Oct 22 11:15:39 wiki.example.com systemd[1]: Starting nginx - servidor web de alto rendimiento...
Paso 9 - Instalar SSL
Usaremos la herramienta Certbot utilizando la herramienta Snapd para emitir certificados SSL. Requiere el repositorio EPEL para funcionar.
$ sudo dnf install epel-release
Usaremos Snapd para instalar Certbot. Instala Snapd.
$ sudo dnf install snapd
Habilita e inicia el servicio Snap.
$ sudo systemctl enable snapd.socket --now
Crea los enlaces necesarios para que Snapd funcione.
$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh
Instala el repositorio core de Snapd.
$ sudo snap install core
$ sudo snap refresh core
Instala Certbot.
$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Genera el certificado. El siguiente comando también configurará automáticamente Nginx.
$ 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
Haz una prueba del proceso para verificar si la renovación de SSL está funcionando bien.
$ sudo certbot renew --dry-run
Si no ves errores, estás listo. Tu certificado se renovará automáticamente.
Paso 10 - Configurar SELinux
Ejecuta los siguientes comandos para aplicar el contexto SELinux correcto al directorio de Wiki.js.
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wikijs(/.*)?"
$ sudo restorecon -Rv /var/www/wikijs
Crea un puerto para HTTP y asígnalo al 3000 para hacer que Wiki.js funcione con SELinux.
$ sudo semanage port -a -t http_port_t -p tcp 3000
Permite que Nginx se conecte a la red.
$ sudo setsebool -P httpd_can_network_connect 1
Paso 11 - 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.
# forzar 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.
#
# @see: 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-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 así lo
# deseas.
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 12 - Terminar 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 a instalar Wiki.js en un servidor Rocky Linux 9. 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.