wiki.jsの構築

wiki.jsは社内wikiを作るのに最適なシステムです。
大きな会社だとAtlassianのConfluenceなどを社内wikiで使っていると思いますが、wiki.jsを使えばOSSで構築できます。 また、Markdown方式での記述やLDAP/OIDC等による認証機能も対応しています。

公式サイト

1. 構築環境

OS

  • ProxmoxVE 9.0.11
  • Debian13(LXC)
    • CPUS数: 2
    • RAM: 2GB
    • ストレージ: 16GB

ミドルウェア

  • PostgreSQL17
  • Node.js20
  • Wiki.js 2.5.308

2. 構築手順

2.1. 事前準備

以下の2つの手順よりPostgreSQLとNode.jsのインストールを完了してください。

なお、wiki.jsの動作に必要な各ミドルウェアのバージョンは以下の通りです。

  • PostgreSQL 9.5以降
  • Node.js 18.0/20.0/22.0

2.2. wiki.js起動用ユーザ作成

wiki.js起動用のユーザwikijsを作成します。
パスワードはなしで作成します。

$ adduser --system --shell /bin/bash --gecos 'Wiki.js Control' --group --disabled-password --home /home/wikijs wikijs

2.3. wiki.jsのダウンロードと設定

wiki.js用ディレクトリの作成

wiki.js自体が保存されるディレクトリを作成します。

$ mkdir /var/wikijs

wiki.jsのダウンロードと配置

$ cd /var
$ # wiki.jsのインストール
$ wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
$ # wiki.jsの展開と配置
$ tar xzf wiki-js.tar.gz -C /var/wikijs
$ #wiki.jsパッケージの削除
$ rm wiki-js.tar.gz
$ #/var/wikiにwikijsユーザの権限付与
$ chown -R wikijs:wikijs /var/wikijs

wiki.jsの設定

/var/wikijsに移動します。

cd /var/wikijs

config.sample.ymlからconfigを作成します。

cp config.sample.yml config.yml

/var/wikijs/config.ymlの該当箇所を以下のように改変します。

db:
  type: postgres

  host: localhost
  port: 5432
  user: wikijs
  pass: wikijsrocks
  db: wiki
  ssl: false

  sslOptions:
    auto: true

  schema: public

上記の例のパラメータは以下です。

項目
postgreSQL稼動元localhost(wiki.jsと同じ)
postgresqlユーザwikijs
postgresqlユーザのパスワードwikijsrocks
postgresqlのデータベースwiki

2.4. PostgreSQLでの設定

wiki.js用のデータベースとユーザを作成します。

$ psql

# wiki.js用ユーザ作成
postgres=# CREATE USER wikijs WITH PASSWORD 'wikijsrocks';
CREATE ROLE
# wiki.js用データベース作成
postgres=# create database wiki;
CREATE DATABASE
# wikiデータベースにwikijsユーザに全権限付与
postgres=# GRANT ALL PRIVILEGES ON DATABASE wiki TO wikijs;
GRANT
# データーベースのオーナ変更
postgres=# ALTER DATABASE wiki OWNER TO wikijs;
ALTER DATABASE
# データベース接続停止
postgres=# \q

2.5. Systemdサービスの設定

Serviceファイルの作成

systemdでOS起動時に立ち上がるように設定を行います。
/etc/systemd/system/wikijs.serviceとしてファイルを作成し、以下内容を保存してください。

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

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

[Install]
WantedBy=multi-user.target

Systemdへの登録と起動

systemctl enable wikijs
systemctl start wikijs

2.6. サイトへのアクセス

http://サーバのIP:3000でアクセス可能です。
実際の運用ではNginxなどをWebサーバとしてwiki.jsの前段に配置して、wikijsのAPサーバが後ろに来る構成にする方が良い構成と言えます。