Wiki.js on Ubuntu 24.04 – A Modern, Extensible Wiki Platform for the LTS Generation

Wiki.js is an open-source, Node.js-based wiki platform that prioritizes performance, customizability, and modern collaboration features. When paired with Ubuntu 24.04, an enterprise-grade LTS release supported until 2029, it becomes a reliable and feature-rich solution for teams and organizations seeking a self-hosted documentation platform with a sleek UI and extensive integration capabilities.


What Is Wiki.js?

Wiki.js is designed to be a modern documentation and knowledge base system, ideal for internal wikis, developer documentation, collaborative notes, and public-facing help centers. It features:

  • A clean, responsive interface built with Vue.js
  • A Markdown-first editor with support for WYSIWYG and HTML blocks
  • Real-time collaboration (in active development)
  • Authentication integrations (LDAP, OAuth2, SAML, GitHub, etc.)
  • Modular architecture with over 30 integrations including Git, S3, Google Drive, Azure
  • Built-in versioning, access control, and localization

Ubuntu 24.04 – A Stable Foundation for Wiki.js

Ubuntu 24.04 LTS is a strategic choice for Wiki.js hosting due to its updated packages, long-term support lifecycle, and excellent hardware/software compatibility.

FeatureAdvantage for Wiki.js
Linux Kernel 6.8+Improved I/O and network stack for backend applications
Node.js and NPM supportUp-to-date LTS Node.js versions easily installable via Snap, NVM, or APT
PostgreSQL 16 availabilityNative support for Wiki.js’ preferred database backend
NGINX 1.24+Optimal reverse proxy and TLS termination options
Systemd 255+Advanced process supervision for the Node.js server
AppArmor and UFWRobust access control and firewall configuration

Ubuntu also benefits from strong community support and active documentation for open-source software, including Wiki.js modules.


System Architecture

Wiki.js on Ubuntu typically involves:

ComponentTechnologyRole
BackendNode.jsAPI, authentication, content management
FrontendVue.js (via Nuxt)Browser interface, rich editing features
DatabasePostgreSQLStores content, users, settings, and logs
Web ServerNGINX or ApacheTLS proxying, routing, caching
Optional AuthLDAP, GitHub, SAMLCentralized user management for teams

Wiki.js is modular—authentication, storage, backup, notifications, and editor types can all be enabled or replaced via a user-friendly admin interface.


Practical Use Cases

Wiki.js on Ubuntu 24.04 is a great fit for:

  • DevOps or engineering teams maintaining infrastructure documentation
  • Internal knowledge bases for businesses and academic institutions
  • Public documentation sites for open-source or commercial software
  • Team onboarding manuals with fine-grained access control
  • IT departments with LDAP-backed authentication for internal wikis
  • Compliance & SOP repositories where versioning is important

It is also suited for organizations transitioning away from legacy wikis like MediaWiki or Confluence due to its simplicity and Git integration.


Benefits of Ubuntu 24.04 for Wiki.js

AreaBenefits on Ubuntu 24.04
Node.js RuntimeSupports LTS builds (e.g., 18.x, 20.x) via Snap or NodeSource
TLS SetupNative Certbot (Let’s Encrypt) support with NGINX and systemd timers
Package ConsistencyAPT repository maturity for PostgreSQL, Git, NGINX, etc.
SecurityFull AppArmor profiles, strong kernel hardening, and UFW firewall
Service Managementsystemctl integration for persistent Wiki.js process control

Ubuntu also supports containerized workflows (Docker, LXD) and cloud-native deployments, making it ideal for scalable Wiki.js instances.


Performance Considerations

Wiki.js performs well on modest hardware. A typical medium-scale deployment might include:

  • 1 vCPU / 2 GB RAM minimum for small teams
  • 300–500 MB RAM for the Node.js process under typical load
  • PostgreSQL memory tuning for faster indexing and queries
  • Reverse proxy caching (via NGINX) for static assets and Markdown previews
  • Optional Git-based syncing, which offloads content versioning to external storage

Ubuntu 24.04’s updated kernel and system libraries provide efficient I/O, memory management, and TLS performance, especially under concurrent sessions.


Git & External Integration Support

One of Wiki.js’s standout features is Git-backed content storage, allowing you to:

  • Use GitHub, GitLab, or self-hosted repositories
  • Sync Markdown files automatically or on a schedule
  • Track changes using Git history
  • Enable external CI/CD workflows or static site publishing

Other integrations supported:

  • Authentication: LDAP, SAML, Azure AD, GitHub
  • Storage: AWS S3, GCP, Dropbox, OneDrive, WebDAV
  • Notifications: Email, Slack, Discord, Microsoft Teams
  • Backups: Schedule file exports or PostgreSQL dumps

These modules are configurable via a web interface, no code editing required.


Wiki.js vs Other Platforms on Ubuntu 24.04

FeatureWiki.jsMediaWikiBookStackConfluence (self-hosted)
Backend StackNode.js + PGPHP + MySQLPHP + MySQLJava + PostgreSQL
UI/UXModern, cleanClassicSimpleEnterprise-tier
Git IntegrationBuilt-inManual pluginNoLimited
Custom AuthenticationFullLDAP optionalPartialFull
Markdown SupportFirst-classPoorPartialLimited
System RequirementsLow to moderateLowLowHigh
Open SourceYesYesYesNo

Running Wiki.js on Ubuntu 24.04 offers a powerful, reliable, and secure solution for knowledge management and documentation systems. Ubuntu’s long-term support, ecosystem richness, and excellent compatibility with open-source tools make it a natural fit for hosting modern Node.js applications like Wiki.js.

Whether you’re setting up a small internal team wiki or scaling to hundreds of users with LDAP and Git integrations, Wiki.js on Ubuntu 24.04 is well-positioned to deliver a performant and future-proof experience.


Step 1: Create a Shape.Host VPS instance

Visit https://shape.host and sign in

Click Create → Instance

Shape.host Resources dashboard with Create > Instance highlighted.

Choose a server location near you

Shape.host instance form with the data center location selector highlighted.

Select Ubuntu 24.04 (64-bit) as your OS

Choose a plan with minimum 2 CPUs, 2 GB RAM

Shape.host instance form with the operating system image selector highlighted.

Click Create Instance

Shape.host instance form with the Create Instance button highlighted.

Copy the IP address from the “Resources” section once the instance is ready

Shape.host Resources dashboard with the server IP address highlighted.

Step 2: Connect to your VPS

On Linux/macOS:

ssh root@your_server_ip

On Windows:

  1. Download and install PuTTY
  2. Open it, enter your_server_ip as hostname
  3. Keep port 22, click Open
  4. Log in with root and password

Step 3: Update system packages

apt update
Terminal showing APT package management commands and output.

Step 4: Install required packages

apt install -y curl gnupg2 ca-certificates software-properties-common apt-transport-https unzip wget nginx nodejs npm postgresql

Installs Node.js, Nginx, PostgreSQL, and dependencies needed by Wiki.js.

Terminal showing APT package management commands and output.

Step 5: Set up PostgreSQL for Wiki.js

Create the database user and the database:

su - postgres -c "psql -c \"CREATE USER wikijs WITH PASSWORD 'StrongPasswordHere';\""
su - postgres -c "psql -c \"CREATE DATABASE wikijs OWNER wikijs;\""

(Optional: Test DB connection)

psql -U wikijs -d wikijs -h localhost -W

Terminal showing SQL database and user configuration commands.

Step 6: Create a system user for Wiki.js

useradd -r -m -d /opt/wikijs -s /usr/sbin/nologin wikijs

Step 7: Download Wiki.js

mkdir -p /opt/wikijs
cd /opt/wikijs
wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
tar -xzf wiki-js.tar.gz
chown -R wikijs:wikijs /opt/wikijs
Terminal showing Linux user account management commands.
Terminal showing file download commands and transfer output.

Step 8: Configure Wiki.js

Copy and edit the config file:

cp config.sample.yml config.yml
nano config.yml
Terminal showing Wiki.js configuration file preparation commands.

Update the following section:

db:
  type: postgres
  host: localhost
  port: 5432
  user: wikijs
  pass: StrongPasswordHere
  db: wikijs
  ssl: false

bindIP: 127.0.0.1
port: 3000
Terminal showing mysql commands or output during Configure Wiki.js.

Step 9: Create a systemd service for Wiki.js

nano /etc/systemd/system/wikijs.service

Paste:

[Unit]
Description=Wiki.js
After=network.target postgresql.service

[Service]
Type=simple
User=wikijs
WorkingDirectory=/opt/wikijs
ExecStart=/usr/bin/node server
Restart=always
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target
Terminal showing a systemd service unit configuration.

Step 10: Enable and start Wiki.js

systemctl daemon-reexec
systemctl daemon-reload
systemctl enable --now wikijs
Terminal showing systemd service management commands or output.

Step 11: Configure Nginx reverse proxy

nano /etc/nginx/sites-available/wikijs

Paste:

server {
    listen 80;
    server_name wiki.example.com;

    access_log /var/log/nginx/wikijs.access.log;
    error_log  /var/log/nginx/wikijs.error.log;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $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;
    }
}
Terminal showing web server configuration text.

Then enable the config:

ln -s /etc/nginx/sites-available/wikijs /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
Terminal showing systemd service management commands or output.

Step 12: Enable HTTPS with Let’s Encrypt

apt install certbot python3-certbot-nginx
certbot --nginx -d wiki.example.com --redirect --agree-tos --email you@example.com

Make sure DNS is pointing to your server IP before running the command.

Terminal showing APT package management commands and output.
Terminal showing Certbot certificate commands and messages.

Step 13: Access Wiki.js

Now open:

  • http://wiki.example.com
  • or https://wiki.example.com if SSL is enabled

Now create the administrator user for Wiki.js and input your email address and password. Then, click INSTALL to confirm the installation.

Wiki.js setup interface.

Once the installation is finished, you should be redirected to your Wiki.js login page. Input your admin email address and password, then click LOGIN.

Wiki.js sign-in form.

If your installation is successful, you should see the welcome page of Wiki.js. From here, you can create a new home page or access the Wiki.js administration dashboard.

Wiki.js getting started screen.

If you click the ADMINISTRATION, you should see the Wiki.js administration page like this:

Wiki.js dashboard.

This guide was tested on a Shape.Host Linux SSD VPS, offering fast and reliable servers ideal for Wiki.js.
Start with Shape.Host today and deploy in minutes!