インストールガイド · 5 min read · Dec 19, 2025
Ubuntu 22.04 LTSにWiki.jsをインストールする方法

Wiki.jsはオープンソースの軽量ウィキソフトウェアです。Node.js JavaScriptフレームワーク上に構築されています。開発者向けのMarkdownエディタと、非技術者向けのWYSIWYGエディタを使用して、ドキュメント、ウィキ、ウェブコンテンツを書くために使用できます。UMLダイアグラム、TexまたはMathML構文を使用した数式、コードなど、複数のコンテンツタイプをサポートしています。分析、認証、ログ記録、サードパーティの検索エンジン、コンテンツを同期するための複数のストレージサービスなど、さまざまな機能のための複数のモジュールが含まれています。
このチュートリアルでは、PostgreSQLデータベースとNginxサーバーを使用して、Ubuntu 22.04サーバーにWiki.jsをインストールする方法を学びます。
前提条件
- Ubuntu 22.04を実行しているサーバー。
- sudo権限を持つ非rootユーザー。
- サーバーを指す完全修飾ドメイン名(FQDN)。ここでは、
wiki.example.comをドメイン名として使用します。 - すべてが更新されていることを確認してください。
$ sudo apt update && sudo apt upgrade - 基本的なユーティリティパッケージをインストールします。いくつかはすでにインストールされているかもしれません。
$ sudo apt install wget curl ca-certificates gnupg gnupg2 nano unzip lsb-release ubuntu-keyring -y
ステップ1 - ファイアウォールの設定
パッケージをインストールする前に、最初のステップはファイアウォールを設定してHTTPおよびHTTPS接続を許可することです。
ファイアウォールのステータスを確認します。
$ sudo ufw status
次のような出力が表示されるはずです。
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
HTTPおよびHTTPSポートを許可します。
$ sudo ufw allow http
$ sudo ufw allow https
再度ステータスを確認して確認します。
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
ステップ2 - PostgreSQLとユーティリティのインストール
Ubuntu 22.04には古いバージョンのPostgreSQLが付属しています。このチュートリアルではPostgres 14をインストールします。
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'
PostgreSQL GPGキーをインポートします。
$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null
システムのリポジトリリストを更新します。
$ sudo apt update
PostgreSQL 14サーバーをインストールします。
$ sudo apt install -y postgresql-14
サービスのステータスを確認します。
$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Tue 2022-10-25 06:24:24 UTC; 10min ago
Main PID: 4032 (code=exited, status=0/SUCCESS)
CPU: 1ms
Oct 25 06:24:24 wiki systemd[1]: Starting PostgreSQL RDBMS...
Oct 25 06:24:24 wiki systemd[1]: Finished PostgreSQL RDBMS.
ステップ3 - PostgreSQLの設定
PostgreSQLシェルにログインします。
$ sudo -i -u postgres psql
Wiki.js用の新しいデータベースを作成します。
postgres=# CREATE DATABASE wikidb;
強力なパスワードを持つ新しいデータベースユーザーを作成します。
postgres=# CREATE USER wikiuser WITH ENCRYPTED PASSWORD 'wikipassword';
ユーザーにデータベースを使用する権利を付与します。
postgres=# GRANT ALL PRIVILEGES ON DATABASE wikidb TO wikiuser;
Postgresシェルを終了します。
postgres=# \q
ステップ4 - Node.jsのインストール
Wiki.jsは、このチュートリアル執筆時点でNode v16をサポートしています。
次のコマンドを使用してNodeリポジトリをインストールします。
$ curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
Nodeをインストールします。
$ sudo apt install nodejs -y
Nodeのインストールを確認します。
$ node --version
v16.18.0
ステップ5 - Wiki.jsのダウンロード
Wiki.jsをインストールするためのフォルダーを作成します。
$ sudo mkdir -p /var/www/wikijs
現在ログインしているユーザーをフォルダーの所有者に設定します。
$ sudo chown $USER:$USER /var/www/wikijs
ディレクトリに移動し、Wiki.jsのコードアーカイブをダウンロードします。
$ cd /var/www/wikijs && wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
ダウンロードしたアーカイブを抽出します。
$ tar xzf wiki-js.tar.gz
アーカイブを削除します。
$ rm wiki-js.tar.gz
ステップ6 - Wiki.jsの設定と実行
サンプルから設定ファイルを作成します。
$ cp config.sample.yml config.yml
設定ファイルを編集のために開きます。
$ nano config.yml
次のデータベース設定を見つけ、ステップ3で設定した値に更新します。
# PostgreSQL / MySQL / MariaDB / MS SQL Serverのみ:
host: localhost
port: 5432
user: wikiuser
pass: wikipassword
db: wikidb
ssl: false
bindIP: 0.0.0.0の行を見つけ、次のように更新します。
bindIP: 127.0.0.1
これにより、Nginxプロキシを使用して外部からアクセスするために、Wiki.jsがループバックアドレスでリッスンするようになります。
ファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。
次のコマンドを使用してWiki.jsを実行します。
$ node server
成功したインストールを確認する類似の出力が表示されます。
Loading configuration from /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: Initializing...
2022-10-25T06:40:46.962Z [MASTER] info: Using database driver pg for postgres [ OK ]
2022-10-25T06:40:46.974Z [MASTER] info: Connecting to database...
2022-10-25T06:40:47.067Z [MASTER] info: Database Connection Successful [ OK ]
2022-10-25T06:40:47.345Z [MASTER] warn: DB Configuration is empty or incomplete. Switching to Setup mode...
2022-10-25T06:40:47.345Z [MASTER] info: Starting setup wizard...
2022-10-25T06:40:47.510Z [MASTER] info: Starting HTTP server on port 3000...
2022-10-25T06:40:47.511Z [MASTER] info: HTTP Server on port: [ 3000 ]
2022-10-25T06:40:47.515Z [MASTER] info: HTTP Server: [ RUNNING ]
2022-10-25T06:40:47.515Z [MASTER] info: .......................................................................
2022-10-25T06:40:47.515Z [MASTER] info:
2022-10-25T06:40:47.516Z [MASTER] info: Browse to http://YOUR-SERVER-IP:3000/ to complete setup!
2022-10-25T06:40:47.516Z [MASTER] info:
2022-10-25T06:40:47.516Z [MASTER] info: ............................................................................
Ctrl + Cを押してプロセスを停止します。
ステップ7 - Systemdサービスの設定
上記のプロセスでWiki.jsを実行し続けるのは一時的です。このプロセスを永続的にするために、Wiki.jsをバックグラウンドサービスとして実行するためのsystemdサービスを作成する必要があります。これにより、システムの再起動を超えてWiki.jsが実行されるようになります。
Wiki.jsのsystemdサービスファイルを作成し、編集のために開きます。
$ sudo nano /etc/systemd/system/wikijs.service
次のコードを貼り付けます。変数Userの値をシステムユーザーの名前に置き換えます。
[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
ファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。
システムデーモンをリロードします。
$ sudo systemctl daemon-reload
Wiki.jsサービスを有効にします。
$ sudo systemctl enable wikijs
ステップ8 - Nginxのインストール
Ubuntu 22.04には古いバージョンのNginxが付属しています。最新バージョンをインストールするために公式のNginxリポジトリをダウンロードする必要があります。
公式のNginxキーをインポートします。
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
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
リポジトリをピン留めして、公式リポジトリをUbuntuのものより優先させます。
$ echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
| sudo tee /etc/apt/preferences.d/99nginx
システムのリポジトリリストを更新します。
$ sudo apt update
Nginxサーバーをインストールします。
$ sudo apt install nginx -y
インストールを確認します。
$ nginx -v
nginx version: nginx/1.22.1
Nginxサーバーを起動します。
$ sudo systemctl start nginx
サービスのステータスを確認します。
$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-10-25 06:50:05 UTC; 2s ago
Docs: https://nginx.org/en/docs/
Process: 5522 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 5523 (nginx)
Tasks: 2 (limit: 1030)
Memory: 1.8M
CPU: 4ms
CGroup: /system.slice/nginx.service
??5523 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
??5524 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
Oct 25 06:50:05 wiki systemd[1]: Starting nginx - high performance web server...
ステップ9 - SSLのインストール
SSL証明書を生成するためにCertbotをインストールする必要があります。Ubuntuのリポジトリを使用してCertbotをインストールするか、Snapdツールを使用して最新バージョンを取得できます。ここではSnapdバージョンを使用します。
Ubuntu 22.04にはデフォルトでSnapdがインストールされています。次のコマンドを実行して、Snapdのバージョンが最新であることを確認します。
$ sudo snap install core
$ sudo snap refresh core
Certbotをインストールします。
$ sudo snap install --classic certbot
次のコマンドを使用して、Certbotコマンドが/usr/binディレクトリで実行できるようにシンボリックリンクを作成します。
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
次のコマンドを実行して証明書を発行します。
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d wiki.example.com
上記のコマンドは、サーバーの/etc/letsencrypt/live/wiki.example.comディレクトリに証明書をダウンロードします。
Diffie-Hellmanグループ証明書を生成します。
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Certbotの更新スケジューラーサービスを確認します。
$ sudo systemctl list-timers
snap.certbot.renew.serviceがスケジュールされたサービスの1つとして表示されます。
NEXT LEFT LAST PASSED UNIT ACTIVATES
.................................................................................................................................
Tue 2022-10-25 00:00:00 UTC 17h left Tue 2022-10-25 04:49:20 UTC 2h ago logrotate.timer logrotate.service
Tue 2022-10-25 02:39:09 UTC 20h left Tue 2022-10-25 06:47:33 UTC 12min ago apt-daily.timer apt-daily.service
Tue 2022-10-25 06:02:00 UTC 8h left n/a n/a snap.certbot.renew.timer snap.certbot.renew.service
SSL更新が正常に機能しているかどうかを確認するために、プロセスのドライランを行います。
$ sudo certbot renew --dry-run
エラーが表示されない場合は、すべて設定完了です。証明書は自動的に更新されます。
ステップ10 - Nginxの設定
/etc/nginx/conf.d/wikijs.confファイルを作成し、編集のために開きます。
$ sudo nano /etc/nginx/conf.d/wikijs.conf
次のコードを貼り付けます。
# 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; # HTTP/2サーバープッシュを有効にする
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;
# TLSバージョンを有効にする(TLSv1.3は今後のHTTP/3 QUICに必要)
ssl_protocols TLSv1.2 TLSv1.3;
# TLSv1.3の0-RTTを有効にする。リバースプロキシを使用する場合は、$ssl_early_dataを使用して
# 再生攻撃を防ぎます。
#
# @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-GCM-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
# OCSPスタンピング ---
# ssl_certificateのURLからOCSPレコードを取得し、キャッシュします
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;
}
}
# このブロックはTLS v1.3のデバッグに役立ちます。必要に応じてこれを削除し、
# NGINXが直接公開する$ssl_early_data変数を使用してください。
map $ssl_early_data $tls1_3_early_data {
"~." $ssl_early_data;
default "";
}
上記のファイル内のルート位置をサーバー上のディレクトリに置き換えます。
ファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。
/etc/nginx/nginx.confファイルを編集のために開きます。
$ sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;の前に次の行を追加します。
server_names_hash_bucket_size 64;
ファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。
Nginxの設定を確認します。
$ sudo nginx -t
エラーが表示されない場合は、準備完了です。
Wiki.jsサービスを起動します。
$ sudo systemctl start wikijs
Nginxサーバーをリロードします。
$ sudo systemctl reload nginx
ステップ11 - インストールの完了
URL https://wiki.example.comにアクセスしてインストールを完了します。

管理者アカウントの詳細とURLを入力します。Telemetryを許可オプションのチェックを外してTelemetryを無効にします。管理パネルからも無効にできます。インストールボタンをクリックして続行します。
ログインページに移動します。

アカウントの詳細を入力し、ログインボタンをクリックして管理ページに進みます。

これでWiki.jsの使用を開始できます。
結論
これで、Ubuntu 22.04サーバーにWiki.jsをインストールする方法を学んだチュートリアルが終了しました。質問がある場合は、下のコメントに投稿してください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。