0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

電子実験ノート(ELN)eLabFTWのオンプレミス導入

Posted at

背景

研究(物性)で大量の実験データを扱うが、紙の実験ノートでは流石にデータのサルベージが大変なので、電子実験ノートで記録したかった。
やりたかったこととして、

  • 最低限、日記的にやったことを書いて、タグ(実験装置、サンプル)ごとに検索できること。
  • 無料であること(できれば、OSSであること) 
    • 金払い忘れてデータ消えたりしたら困るので。
    • 少なくとも、データ容量が不足することがないこと。
    • これを満たすのはオンプレしかなかった。
  • あわよくば、大量の生データを保管するために、オンプレで管理したい(数百GB)。

雰囲気は実際にまず触ってみればわかるかと思う。(登録も不要でさわれる。もちろんデモなので重いしファイルサイズ制限もある)

手順

環境

  • Fedoraが動くサーバー
  • SSH等でターミナルは叩ける
  • ルーターについてきたDDNSサービス(ドメインを持っているならば持っているに越したことはない)

Docker、Docker-composeインストール

sudo dnf install dockerをやってはいけない。
公式から落としてきてインストールすること。詳細は以下の記事参照。

新しい環境なので、以下のコマンドを実行するだけである。

$ sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
$ sudo dnf install containerd.io docker-ce docker-ce-cli docker-ce-rootless-extras docker-compose-plugin

サービスを起動する。一応テストもしておこう(最終行)。

$ sudo systemctl start docker
$ sudo systemctl enable docker
$ sudo docker run hello-world

ウェルカムメッセージが表示されたら正解。

elabctlインストール

依存しているらしいので、必要なパッケージは入れる。

sudo dnf install dialog git zip unzip

curlで落としてきて、管理スクリプトをインストールする。(Docker-compose.yml直書きはやめといたほうがいいと思った。)

$ curl -sL https://get.elabftw.net -o elabctl && chmod +x elabctl
$ sudo sudo mv elabctl /usr/local/bin/

eLabFTW設定ファイルの作成

管理コマンドから、本体をインストールしていく。

$ sudo elabctl install

仰々しい画面が表示されるが、「OK」

その後、データの保存場所の確認が出るが、基本サーバ用のデータは大きなHDD等においておきたいはずなので、「Download example conf and quit」を選ぶ。

sudo vi elabctl.conf

を開いて、以下のようにコメントアウトを外して書き換えれば良い。以下は大型ストレージを/mnt/serverにマウントしている場合。

# where do you want your backups to end up?
declare BACKUP_DIR='/mnt/server/elabftw/var/backups/elabftw'

# where do we store the config file?
declare CONF_FILE='/mnt/server/elabftw/etc/elabftw.yml'

# where do we store the MySQL database and the uploaded files?
declare DATA_DIR='/mnt/server/elabftw/var/elabftw'

これで保存して閉じる。

$ sudo elabctl install

で、「OK」→「Looks good to me」→「Server」→「Yes」→使うアドレス(私の場合は***.iobb.net)→「Use HTTPS」→「Use correct certificate」→「OK」
これで一旦インストールが完了する。

注意点

先に/mnt/server/elabftw/etc/をmkdirで作成しておかないと、エラーが出る。

ファイアウォールとルーター(DNS)の設定

ファイアウォールを開く。有効なゾーン名はsudo firewall-cmd --list-allでわかる。今回はゾーン名がFedora特有となっていたので、これに設定する。

$sudo firewall-cmd --zone=FedoraWorkstation --add-service=http --permanent
$sudo firewall-cmd --zone=FedoraWorkstation --add-service=https --permanent
$sudo firewall-cmd --reload
$sudo firewall-cmd --list-all

で、http,httpsが入っていたらOK。

ルーター側でDNSの設定をする。ドメインを持っているのなら、その設定をする。ここだけは詳細は調べてください。

証明書インストール(Let's encrypt)

証明書をインストールする。certbotというやつが提供されているので、使う。
先に、80ポートで何も動いていない状態にすること。既にelabctl startしてしまったのなら、一回elabctl stopで先に止めておく。

$ sudo install certbot
$ sudo certbot certonly

あとは公開用メールアドレスと、サイト名(先程のインストールで打ち込んだはず。私の場合は***.iobb.net)を打ち込む。

confファイルの設定(アップロードファイルサイズの変更)

設定ファイルを編集する。インストール時に設定した場所(例では/mnt/server/elabftw/etc/elabftw.yml)にある。以下のように書き換えたら良い。

#- PHP_MAX_EXECUTION_TIME=120
(中略)
#- MAX_PHP_MEMORY=256M
(中略)
#- MAX_UPLOAD_SIZE=100M

これを、

#- PHP_MAX_EXECUTION_TIME=1200
(中略)
#- MAX_PHP_MEMORY=1000M
(中略)
#- MAX_UPLOAD_SIZE=1000000M

(タイムアウト長時間化、メモリリミット拡大、ファイルサイズリミット拡大。前半2つはおまじない程度)

起動

$ sudo elabctl start
$ sudo elabctl initialize

完了したらすぐにブラウザから(今回ならhttps://***.iobb.net)アクセスしてユーザー登録する。

メールの設定

smtp2goを使うようにすすめられるが、会社emailがないと駄目らしいので却下。gmailでやる。
画面右上→Sysadmin Panel→EMAILで、↓のようにセットアップする

完了

以上で完了のはず。

感想

ディレクトリ作るとか、Let's encrypt回りとか、しょうもないところで時間を食った。それ以外は比較的スムーズだった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?