「Seafile」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(アーカイブ)
タグ: 新規リダイレクト
 
(2人の利用者による、間の2版が非表示)
1行目: 1行目:
  +
#redirect [[ArchWiki:アーカイブ]]
[[Category:ファイル共有]]
 
[[Category:ウェブプリケション]]
+
[[Category:アーカイブ]]
[[en:Seafile]]
 
Seafile はオープンソースのクラウドストレージシステムです。ファイル同期・プライバシー保護・チームワークの高度なサポートがあります。
 
 
ファイルの集合はライブラリと呼ばれ、各ライブラリを別々に同期することができます。ライブラリはユーザーが決めたパスワードで暗号化できます。パスワードはサーバーに保存されないため、サーバーの管理者ですらファイルの中身を見ることはできません。
 
 
Seafile ではファイル同期や wiki、議論ができるグループを作成することができ、チーム内で簡単にドキュメントを共有できます。
 
 
この記事では Seafile サーバーのインストールについて説明します。Seafile サーバーにアクセスするためのクライアントだけ使いたい場合、{{Aur|seafile-client}} をインストールしてください。
 
 
== インストール ==
 
 
{{AUR|seafile-server}} パッケージを[[インストール]]してください。このパッケージは {{AUR|seafile}} の分割パッケージですが、全てのパッケージをインストールする必要は必ずしもありません。
 
 
root で seafile サーバーを動作させるための新しいユーザーを作成してください:
 
 
# useradd -m -r -d /srv/seafile -s /usr/bin/nologin seafile
 
 
== 設定 ==
 
=== サーバーインスタンスの設定 ===
 
 
[[#インストール]]で設定したユーザーに切り替えてください (これより下のコマンドは特に断りがないかぎりこのユーザーで実行します):
 
 
$ sudo -u seafile -s /bin/sh
 
 
新しい seafile サーバーインスタンスのためのディレクトリレイアウトを作成:
 
 
$ mkdir -p $HOME/example.org/seafile-server
 
$ cd $HOME/example.org
 
 
{{Note|''example.org'' は実際のサーバーのドメインに置き換えてください。}}
 
 
必要な seahub のバージョンを確認 ('x.y.z-r' という形式で表示されます。例: 3.0.2):
 
 
$ pacman -Qi seafile-server | grep Version
 
 
出力された値に {{ic|SEAFILE_SERVER_VERSION}} 変数を設定:
 
 
$ SEAFILE_SERVER_VERSION=3.0.3
 
 
seahub をダウンロードして展開:
 
 
$ wget -P seafile-server https://github.com/haiwen/seahub/archive/v$SEAFILE_SERVER_VERSION-server.tar.gz
 
$ tar -xz -C seafile-server -f seafile-server/v$SEAFILE_SERVER_VERSION-server.tar.gz
 
 
展開したディレクトリの名前を変更:
 
 
$ mv seafile-server/seahub-$SEAFILE_SERVER_VERSION-server seafile-server/seahub
 
 
[http://manual.seafile.com/deploy/README.html seafile のマニュアル] に書かれている以下のどちらかのページの 'setup' セクションに従って seafile サーバーインスタンスの設定を作成してください:
 
* [http://manual.seafile.com/deploy/using_sqlite.html SQLite]
 
* [http://manual.seafile.com/deploy/using_mysql.html MySQL]
 
 
seafile ユーザーで {{ic|seafile-admin}} コマンドを実行することで初期設定ができます。適切なディレクトリで実行してください:
 
 
{{Note|{{AUR|seahub}} パッケージをインストールしないと {{ic|seafile-admin}} は機能しません。}}
 
 
$ cd $HOME/''example.org''
 
$ seafile-admin setup
 
 
英語以外の言語のサポートが必要な場合、以下のコマンドを実行して必要な言語をコンパイルしてください:
 
 
$ cd $HOME/''example.org''/seafile-server/seahub/locale/<yourlanguage>/LC_MESSAGES/
 
$ msgfmt -o django.mo django.po
 
 
そしてデフォルト言語を設定に追加してください:
 
 
$ echo "LANGUAGE='<yourlanguage>'" >> $HOME/example.org/conf/seahub_settings.py
 
 
{{ic|/usr/lib/systemd/system/}} に存在する seafile の systemd サービスの {{ic|seafile-server@.service}} を {{ic|/etc/systemd/system}} にコピーして、{{ic|%i}} を[[#インストール]] で設定した $HOME に置き換えてください。
 
 
Seafile のウェブフロント実装である seahub をテストしたい場合、systemd のサービスファイルを編集して {{ic|--fastcgi}} パラメータを削除してください。fastcgi は seahub ではサポートされていません。
 
 
新しい seafile サーバーを手動で起動する場合、以下のコマンドを root で実行:
 
 
# systemctl start seafile-server@''example.org''
 
 
起動が上手く出来たら、サービスを[[有効化]]すると良いでしょう。
 
 
seafile のサーバーデーモンを起動したら、seafile インスタンスの管理ユーザーを作成します:
 
 
$ cd $HOME/''example.org''
 
$ seafile-admin create-admin
 
 
=== nginx でインスタンスをデプロイ ===
 
 
nginx で Seafile のウェブインターフェイスである seahub をデプロイしたい場合、以下のような nginx の設定を使います:
 
 
{{bc|
 
server {
 
listen 80;
 
server_name www.example.org example.org;
 
<nowiki>return 301 https://$server_name$request_uri;</nowiki>
 
}
 
 
server {
 
listen 443;
 
ssl on;
 
ssl_certificate /etc/ssl/certs/example.org.crt;
 
ssl_certificate_key /etc/ssl/private/server.key;
 
server_name www.example.org example.org;
 
 
location / {
 
fastcgi_pass 127.0.0.1:8000;
 
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 
fastcgi_param PATH_INFO $fastcgi_script_name;
 
 
fastcgi_param SERVER_PROTOCOL $server_protocol;
 
fastcgi_param QUERY_STRING $query_string;
 
fastcgi_param REQUEST_METHOD $request_method;
 
fastcgi_param CONTENT_TYPE $content_type;
 
fastcgi_param CONTENT_LENGTH $content_length;
 
fastcgi_param SERVER_ADDR $server_addr;
 
fastcgi_param SERVER_PORT $server_port;
 
fastcgi_param SERVER_NAME $server_name;
 
 
fastcgi_param HTTPS on;
 
fastcgi_param HTTP_SCHEME https;
 
}
 
 
location /seafhttp {
 
rewrite ^/seafhttp(.*)$ $1 break;
 
<nowiki>proxy_pass http://127.0.0.1:8082;</nowiki>
 
client_max_body_size 0;
 
}
 
 
location /media {
 
root {ABSOLUTE_PATH_TO_SEAFILE_USER'S_HOME}/example.org/seafile-server/seahub;
 
}
 
}
 
}}
 
 
また、nginx で HTTPS を使用する場合、{{ic|ccnet.conf}} と {{ic|seahub_settings.py}} に以下の値を追加してください。設定しないとアップロードができません [http://manual.seafile.com/deploy/https_with_nginx.html], [https://forum.seafile.de/t/was-loaded-over-https-but-requested-an-insecure-xmlhttprequest-endpoint/248]。ファイルは seafile ユーザーで編集してください。
 
{{hc|$HOME/example.org/config/ccnet.conf|2=<nowiki>
 
SERVICE_URL = https://example.org:8000
 
</nowiki>}}
 
 
{{hc|$HOME/example.org/config/seahub_settings.py|2=<nowiki>
 
FILE_SERVER_ROOT = 'https://example.org/seafhttp'
 
</nowiki>}}
 
 
== メンテナンス ==
 
 
=== アップグレード ===
 
 
まず root で seafile サーバーインスタンスを停止してください (全てのインスタンスを停止してください):
 
 
# systemctl stop seafile-server@example.org
 
 
[[Arch User Repository]] から {{AUR|seafile-server}} をアップグレードしてください。
 
 
以下のコマンドで seafile ユーザーに切り替えます:
 
 
$ sudo -u seafile -s
 
 
seafile のサーバーインスタンスの数だけ、以下の手順を繰り返しおこなってください。
 
 
* サーバーインスタンスの 'seafile-server' サブディレクトリに移動:
 
 
$ cd /srv/seafile/example.org/seafile-server
 
 
* preupgrade スクリプトを実行 (または手動で設定してください。[https://github.com/haiwen/seafile/wiki/Build-and-deploy-seafile-server-from-source Seafile wiki] を参照):
 
 
$ seahub-preupgrade
 
 
* upgrade サブディレクトリから適切な seafile/seahub アップグレードスクリプトを実行:
 
 
:* マイナーアップグレードの場合 (x.y.a から x.y.b): {{ic|$ ./upgrade/minor-upgrade.sh}}。
 
 
:* メジャーアップグレードの場合 (x.y.a から z.w.b): {{ic|$ ./upgrade/upgrade_x.y_z.w.sh}}。
 
 
* 上記で説明している言語の設定をおこなってください。
 
 
最後に、root で seafile のサーバーインスタンスを起動してください:
 
 
# systemctl start seafile-server@example.org
 
 
=== Seafile GC の実行 ===
 
 
未使用ブロックに確保されているストレージ領域を開放するには、Seafile のガベージコレクタを実行します。
 
 
GC プログラムは以下のブロックを削除します:
 
* 存在しないライブラリにも属していないブロック。
 
* ライブラリの履歴を越える古いブロック。
 
 
まず、サーバーの Seafile プログラムをシャットダウンしてください。Professional Edition v.3.1.11 の場合、オンライン GC がサポートされています。
 
 
実際に実行する前にガベージコレクションによって回収される領域を確認するには:
 
$ seafserv-gc -c /srv/seafile/example.org/ccnet -d /srv/seafile/example.org/seafile-data --dry-run
 
 
出力が問題ないようだったら {{ic|--dry-run}} を外して同じコマンドをもういちど実行してください。
 
 
== 参照 ==
 
* http://manual.seafile.com/deploy/README.html
 
* http://manual.seafile.com/deploy/deploy_with_nginx.html
 
* http://manual.seafile.com/deploy/https_with_nginx.html
 
* http://manual.seafile.com/maintain/seafile_gc.html
 

2024年9月8日 (日) 17:32時点における最新版