インストールガイド · 5 min read · Oct 14, 2025

Rocky Linux 9にWiki.jsをインストールする方法

Wiki.jsはオープンソースの軽量ウィキソフトウェアです。Node.js JavaScriptフレームワークに基づいて構築されています。開発者向けのMarkdownエディタと、非技術者向けのWYSIWYGエディタを使用して、ドキュメント、ウィキ、ウェブコンテンツを書くために使用できます。UMLダイアグラム、TexまたはMathML構文を使用した数式、コードなど、複数のコンテンツタイプをサポートしています。分析、認証、ログ記録、サードパーティの検索エンジン、コンテンツを同期するための複数のストレージサービスなど、さまざまな機能のための複数のモジュールが含まれています。

このチュートリアルでは、PostgreSQLデータベースとNginxサーバーを使用して、Rocky Linux 9サーバーにWiki.jsをインストールする方法を学びます。

前提条件

  • Rocky Linux 9を実行しているサーバー。
  • sudo権限を持つ非rootユーザー。
  • サーバーを指す完全修飾ドメイン名(FQDN)。ここでは、wiki.example.comをドメイン名として使用します。
  • すべてが更新されていることを確認してください。 $ sudo dnf update
  • 基本的なユーティリティパッケージをインストールします。いくつかはすでにインストールされているかもしれません。 $ sudo dnf install wget curl nano unzip yum-utils -y

ステップ1 - ファイアウォールの設定

最初のステップはファイアウォールの設定です。Rocky LinuxはFirewalldファイアウォールを使用します。ファイアウォールの状態を確認します。

$ sudo firewall-cmd --state
running

ファイアウォールは異なるゾーンで動作し、パブリックゾーンがデフォルトで使用されます。ファイアウォールでアクティブなすべてのサービスとポートをリストします。

$ sudo firewall-cmd --permanent --list-services

次の出力が表示されるはずです。

cockpit dhcpv6-client ssh

Wiki.jsは機能するためにHTTPおよびHTTPSポートが必要です。これらを開放します。

$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --add-service=https --permanent

変更を適用するためにファイアウォールを再読み込みします。

$ sudo firewall-cmd --reload

ステップ2 - PostgreSQLとユーティリティのインストール

Rocky Linux 9には古いバージョンのPostgreSQLが付属しています。このチュートリアルではPostgres 14をインストールします。

PostgreSQLのリポジトリRPMをインストールします。

$ sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

PostgreSQL 14サーバーをインストールします。

$ sudo dnf install -y postgresql14-server postgresql14-contrib

データベースを初期化します。

$ sudo /usr/pgsql-14/bin/postgresql-14-setup initdb

PostgreSQLサービスを有効にして起動します。

$ sudo systemctl enable postgresql-14 --now

サービスの状態を確認します。

$ sudo systemctl status postgresql-14
? postgresql-14.service - PostgreSQL 14 database server
     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...

ステップ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://rpm.nodesource.com/setup_16.x | sudo bash -

Nodeをインストールします。

$ sudo dnf 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

ステップ6 - Wiki.jsの設定と実行

サンプルから設定ファイルを作成します。

$ cp config.sample.yml config.yml

設定ファイルを編集のために開きます。

$ nano config.yml

次のデータベース設定を見つけ、ステップ3で設定した値に更新します。

# PostgreSQL / MySQL / MariaDB / MS SQL Server only:
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

成功したインストールを確認する類似の出力が表示されます。

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: Initializing...
2022-10-22T10:25:49.079Z [MASTER] info: Using database driver pg for postgres [ OK ]
2022-10-22T10:25:49.086Z [MASTER] info: Connecting to database...
2022-10-22T10:25:49.117Z [MASTER] info: Database Connection Successful [ OK ]
2022-10-22T10:25:49.467Z [MASTER] warn: DB Configuration is empty or incomplete. Switching to Setup mode...
2022-10-22T10:25:49.468Z [MASTER] info: Starting setup wizard...
2022-10-22T10:25:49.740Z [MASTER] info: Starting HTTP server on port 3000...
2022-10-22T10:25:49.741Z [MASTER] info: HTTP Server on port: [ 3000 ]
2022-10-22T10:25:49.745Z [MASTER] info: HTTP Server: [ RUNNING ]
2022-10-22T10:25:49.745Z [MASTER] info: .......................................
2022-10-22T10:25:49.745Z [MASTER] info:
2022-10-22T10:25:49.746Z [MASTER] info: Browse to http://YOUR-SERVER-IP:3000/ to complete setup!

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のインストール

Rocky Linuxには古いバージョンのNginxが付属しています。最新バージョンをインストールするには、公式のNginxリポジトリをダウンロードする必要があります。

公式のNginxリポジトリを作成するために、/etc/yum.repos.d/nginx.repoファイルを作成して開きます。

$ sudo nano /etc/yum.repos.d/nginx.repo

次のコードを貼り付けます。

[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

ファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。

Nginxサーバーをインストールします。

$ sudo dnf install nginx -y

インストールを確認します。

$ nginx -v
nginx version: nginx/1.22.1

Nginxサーバーを有効にして起動します。

$ sudo systemctl enable nginx --now

サーバーの状態を確認します。

$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server
     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: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??116238 "nginx: worker process"

Oct 22 11:15:39 wiki.example.com systemd[1]: Starting nginx - high performance web server...

ステップ9 - SSLのインストール

Certbotツールを使用してSSL証明書を発行します。Snapdツールを使用します。動作するにはEPELリポジトリが必要です。

$ sudo dnf install epel-release

Snapdを使用してCertbotをインストールします。Snapdをインストールします。

$ sudo dnf install snapd

Snapサービスを有効にして起動します。

$ sudo systemctl enable snapd.socket --now

Snapdが動作するために必要なリンクを作成します。

$ 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

コアSnapdリポジトリをインストールします。

$ sudo snap install core
$ sudo snap refresh core

Certbotをインストールします。

$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

証明書を生成します。次のコマンドはNginxも自動的に構成します。

$ 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

SSL更新が正常に動作しているか確認するために、プロセスのドライランを行います。

$ sudo certbot renew --dry-run

エラーが表示されなければ、すべて設定完了です。証明書は自動的に更新されます。

ステップ10 - SELinuxの設定

Wiki.jsディレクトリに正しいSELinuxコンテキストを適用するために、次のコマンドを実行します。

$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wikijs(/.*)?"
$ sudo restorecon -Rv /var/www/wikijs

HTTP用のポートを作成し、3000に割り当ててWiki.jsがSELinuxで動作するようにします。

$ sudo semanage port -a -t http_port_t -p tcp 3000

Nginxがネットワークに接続できるようにします。

$ sudo setsebool -P httpd_can_network_connect 1

ステップ11 - 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-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

ステップ12 - インストールの完了

URL https://wiki.example.comにアクセスしてインストールを完了します。

Wiki.jsセットアップページ

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

ログインページに移動します。

Wiki.jsログインページ

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

Wiki.js管理ページ

これでWiki.jsの使用を開始できます。

結論

これで、Rocky Linux 9サーバーにWiki.jsをインストールする方法を学んだチュートリアルが終了しました。質問がある場合は、下のコメントに投稿してください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。