立ち話

興味があることを書いてます。正確な内容は公式ドキュメントや参考文献を確認してください。ブログに示された意見はすべて個人の見解であり、所属する組織の公式見解ではありません。

自宅インフラを育てる (5) 情報整理用サーバー (Webサーバー・Wikiサーバー・ファイルサーバー) の構築

はじめに

情報収集しやすくなるための基盤として、自宅サーバー (on Proxmox) 上に情報整理用サーバー (Webサーバー・Wikiサーバー・ファイルサーバー) を構築しました。情報整理は主に論文情報を整理することを想定しています。

この記事では備忘録として、手順書を残します。

ここまでの自宅インフラ関連の記事:

seekt.hatenablog.com

全体像

全体像はこんな感じです。

構築した情報整理用サーバー

仕様

今回構築する情報整理用サーバーの仕様は以下です。

  • WebサーバーとWikiサーバーをリンクさせる
  • Webサーバーでは、論文リストを可視化する
    • 具体的には、読んだ (OR 読む予定の) 論文と、その次に読む論文を結びつける
  • Wikiサーバーでは、手元で試したり調べたりした情報をまとめる
    • 論文メモはWikiサーバーに置く
  • 論文リストは、手元のPC等で編集する
    • 形式は JSON にした
    • ファイル自体はファイルサーバーに置く

ファイルサーバーの構築

手順

手順については、PC Watch記事1も参考にしている。

(1) samba のインストール

$ sudo apt update
$ sudo apt -y install samba

(2) 共有ファイルを置くディレクトリの作成

今回は、/srv/samba/public ディレクトリ以下に共有ファイルを置くことにします。

$ sudo mkdir -p /srv/samba/public

また、Samba 用のユーザとして samba を作成し、public ディレクトリの権限を変更します。

$ sudo adduser --system --group --no-create-home samba
$ sudo chown samba: /srv/samba/public/
$ sudo chmod 775 /srv/samba/public/

(3) samba を使用するユーザの作成

$ sudo pdbedit -a samba

ここでは、パスワードなしとしました。

(4) 設定ファイル(samba.conf)のバックアップと編集

$ sudo cp /etc/samba/samba.conf /etc/samba/samba.conf.bk
$ sudo nano /etc/samba/samba.conf

以下を追加します。

[global]
guest account = samba

[Public]
writeable=yes
path=/srv/samba/public
create mask=0644
directory mask=0755
force user=samba
force group=samba
guest ok=yes
guest only=yes

以下コマンドで書式が正しいか確認します。

$ sudo testparm

問題なければ、サービスを再起動します。

$ sudo systemctl restart smbd nmbd

また、自動起動の設定もしておきます。

$ sudo systemctl enable smbd nmbd

これで、Windowsエクスプローラーもしくはブラウザからファイル共有できるようになります。

ファイルサーバー

Wikiサーバーの構築

1年くらい前に自宅用Wikiサーバーを構築しました。これと同様にWikiサーバーを構築します。

Wikiサーバーは Gollum を用いて構築しました。

github.com

構築の際にはGollumについてまとめられた記事2を参考にしました。

手順

(1) 依存関係にあるパッケージのインストール

$ sudo apt update
$ sudo apt install -y libicu-dev cmake libssh-dev libssl-dev \
 pkg-config make zlib1g-dev build-essential git asciido

(2) Ruby のインストール

$ sudo apt -y install ruby
$ sudo apt install -y ruby-full
$ sudo apt install -y rubygems
$ sudo gem install rubygems-update
$ sudo apt -y install ruby-dev libruby

(3) Gollum のインストール

$ sudo gem install therubyracer gollum org-ruby omnigollum \
 github-markup omniauth-github github-markdown

(1) - (3) まででインストールが完了するはずです。インストールできない場合は、依存関係のパッケージ等を調べるなどして対応しましょう。

(4) Wikiサーバーの起動

Gollum は Git と連携しているので、ディレクトリに空のリポジトリを作ります。.git があるディレクトリで gollum コマンドを実行するとWikiサーバーが起動します。

$ mkdir wiki
$ cd wiki
$ git init
$ gollum

ここまで実行すると、ブラウザから http://[サーバーのIPアドレス]:4567Wikiサーバーにアクセスできます。

Wikiサーバー

Webサーバーの構築

Apache2 をインストールするだけなので、インストール手順は省略します。

Webサーバー

Webサーバー上で、読んだ論文と次に読む論文をグラフで表すように可視化しています。可視化することで、自分の中でイメージがつきやすくなると思っています。具体的にはこんな感じのグラフを html と JavaScript で書いています。

論文ネットワーク

グラフのノードを選択すると、論文のリンクが出るようにしています。このグラフを生成するための JavaScript コードは、JSON ファイルの論文リストから Python で (無理やり) 作っています。コードは GitHub に置きました。

github.com

JSON ファイルはファイルサーバー上の /srv/samba/public/paper/ に置いていて、普段使いする PC からアクセスできるようにしています。また、cron を使って毎日論文グラフを更新するようにしています。

まとめ

情報整理用サーバーを構築しました。論文読むのがはかどるといいですね。