はじめに
そろそろ情報収集まじめにやらなきゃなぁって思って、情報収集しやすくなるための基盤を自分で作るところから始めた
— 橘 あい (@tcbn_ai) September 4, 2023
テスト期間に部屋を掃除したくなるタイプの人間なので
情報収集しやすくなるための基盤として、自宅サーバー (on Proxmox) 上に情報整理用サーバー (Webサーバー・Wikiサーバー・ファイルサーバー) を構築しました。情報整理は主に論文情報を整理することを想定しています。
この記事では備忘録として、手順書を残します。
ここまでの自宅インフラ関連の記事:
全体像
全体像はこんな感じです。
仕様
今回構築する情報整理用サーバーの仕様は以下です。
- WebサーバーとWikiサーバーをリンクさせる
- Webサーバーでは、論文リストを可視化する
- 具体的には、読んだ (OR 読む予定の) 論文と、その次に読む論文を結びつける
- Wikiサーバーでは、手元で試したり調べたりした情報をまとめる
- 論文メモはWikiサーバーに置く
- 論文リストは、手元のPC等で編集する
- 形式は JSON にした
- ファイル自体はファイルサーバーに置く
ファイルサーバーの構築
手順
(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を仮想サーバーに立てて、自宅のLANから見られるようにした
— 橘 あい (@tcbn_ai) September 16, 2022
ここまで来るのに何故かめっちゃ苦労した気がする pic.twitter.com/m2TrUPHpnG
Wikiサーバーは Gollum を用いて構築しました。
構築の際には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アドレス]:4567
でWikiサーバーにアクセスできます。
Webサーバーの構築
Apache2 をインストールするだけなので、インストール手順は省略します。
Webサーバー上で、読んだ論文と次に読む論文をグラフで表すように可視化しています。可視化することで、自分の中でイメージがつきやすくなると思っています。具体的にはこんな感じのグラフを html と JavaScript で書いています。
グラフのノードを選択すると、論文のリンクが出るようにしています。このグラフを生成するための JavaScript コードは、JSON ファイルの論文リストから Python で (無理やり) 作っています。コードは GitHub に置きました。
JSON ファイルはファイルサーバー上の /srv/samba/public/paper/
に置いていて、普段使いする PC からアクセスできるようにしています。また、cron を使って毎日論文グラフを更新するようにしています。
まとめ
情報整理用サーバーを構築しました。論文読むのがはかどるといいですね。