Seafileは、複数のプラットフォームからの同期(クロスプラットフォームシステム)、組み込みのファイル暗号化によるプライバシー保護、2要素認証(TFA)のサポート、バージョン管理などの高度な機能を備えたオープンソースのファイルホスティングおよびクラウドストレージシステムです。ファイルロック、オンライン編集、その他多数。 SeafileはCおよびPythonプログラミング言語で記述されており、Dropbox、mega.co.nzなどの同様の機能を提供します。
このチュートリアルでは、NginxWebサーバーとMariaDBデータベースを使用してSeafileサーバーをインストールおよび構成する方法を段階的に説明します。 Ubuntu 20.04システムで最新のMariaDBを使用して、HTTPSSSLLetsencryptを有効にしたNginxWebサーバーの下にseafileサーバーをインストールします。
- Ubuntu 20.04
- root権限
何をしますか?
- SeafilePythonの依存関係をインストールする
- MariaDBのインストールと構成
- Linuxサーバー用のSeafileサーバーをダウンロード
- MariaDBを使用してSeafileServerをインストールする
- ドメイン名を使用してSeafileを構成する
- SeafileをSystemdサービスとして実行する
- SSLLetsencryptとDHPARAMを生成します
- Nginxをリバースプロキシとしてインストールして構成する
- ファイアウォールの設定
- テスト
システムにseafileサーバーをインストールする前に実行する必要がある最初のステップは、その依存関係をインストールすることです。 SeafileはPythonベースのアプリケーションであり、サーバーで実行するにはpython3.xが必要です。
パッケージをインストールする前に、Ubuntuリポジトリを更新する必要があります。
sudo apt update
次に、以下のaptコマンドを使用して、seafileサーバーのインストールに必要なすべての依存関係を使用してpython3.xをインストールします。
sudo apt install python3 libpython3.8 python3-setuptools python3-pil python3-ldap python3-urllib3 ffmpeg python3-pip python3-mysqldb python3-memcache python3-requests libmemcached-dev
その後、以下のpipコマンドを使用して、PyPIリポジトリから追加のPythonパッケージをインストールします。
pip3 install --timeout =3600 Pillow pylibmc captcha jinja2 sqlalchemy psd-tools django-pylibmc django-simple-captcha python3-ldap
その結果、Seafileのすべてのパッケージ依存関係がインストールされました。
Seafileは、SQLiteとMariaDBデータベースサーバーのサポートを提供します。このガイドでは、インストールにMariaDBデータベースサーバーを使用します。最新のMariaDBバージョンを使用してseafileサーバーをデプロイします。
以下のaptコマンドを使用してMariaDBサーバーをインストールします。
sudo apt install mariadb-server -y
インストールが完了したら、MariaDBサービスを開始し、システムの起動時に毎回起動できるようにします。
systemctl start mariadb
systemctl enable mariadb
MariaDBサーバーがUbuntuシステムにインストールされている場合は、次のコマンドを使用して確認してください。
systemctl status mariadb
MariaDBサービスが稼働しています。
次に、「mysql_secure_installation」コマンドを使用してMariaDBルートパスワードを構成する必要があります。
mysql_secure_installation
次に、MariaDBの構成について尋ねられ、MariaDBの強力なルートパスワードを入力します。
rootの現在のパスワードを入力します(noneの場合はEnter):Enterキーを押します
rootパスワードを設定しますか? [Y / n] Y
匿名ユーザーを削除しますか? [Y / n] Y
rootログインをリモートで禁止しますか? [Y / n] Y
テストデータベースを削除してアクセスしますか? [Y / n] Y
特権テーブルを今すぐリロードしますか? [Y / n] Y
次に、Seafileサーバー用の新しいデータベースを作成します。 seafileコンポーネントごとに3つのデータベースを作成し、新しいデータベースユーザーを作成します。 「seafile」という名前の新しいユーザーを作成し、「ccnet-db」、「seafile-db」、および「seahub-db」の3つのデータベースすべてに対するすべての権限を持ちます。
以下のコマンドを使用してMySQLシェルにログインします。
mysql -u root -p
次に、新しいデータベース「ccnet-db」、「seafile-db」、「seahub-db」を作成し、新しいユーザー「seafile」を作成します。次に、3つのデータベース権限すべてを「seafile」ユーザーに付与します。
以下のMySQLクエリを実行します。
データベースの作成`ccnet-db`文字セット='utf8';
データベースの作成`seafile-db`文字セット='utf8';
データベースの作成`seahub-db`文字セット=' utf8';
create user' seafile'@' localhost'identified by' [email protected]';
GRANT ALL PRIVILEGESON`ccnet-db`。*to` seafile` @ localhost;
`seafile-db`。*のすべての特権を`seafile`@localhostに付与;
`seahub-db`。*のすべての特権を`seafile`@localhost;<に付与/ pre>
![]()
MariaDBサーバーがインストールされ、rootパスワードが設定され、seafileインストール用のデータベースが作成されました。
ステップ3-Linuxサーバー用のSeafileサーバーをダウンロードする このチュートリアルでは、seafileサーバーはsystemdシステム上でサービスとして実行され、root以外のユーザーの下で実行されます。
'ryujin'という名前の新しいユーザーを作成します。
useradd -m -s / bin / bash ryujin次に、「ryujin」ユーザーにログインし、wgetを使用してseafileサーバーの最新バージョンをダウンロードします。
su --ryujin>
wget -q https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_7.1.3_x86-64.tar.gz'seafile-server.tar.gz'ファイルを抽出し、マスターディレクトリの名前を'seafile-server'に変更します。
tar -xf seafile-server_7.1.3_x86-64.tar.gz
mv seafile-server-* / seafile-server /seafileサーバーのソースコードが「/home/ ryujin/seafile-server」ディレクトリにダウンロードされました。
![]()
ステップ4-MariaDBを使用してSeafileサーバーをインストールする このステップでは、Seafileが提供するMariaDBセットアップスクリプトを使用してseafileサーバーをインストールします。
'ryujin'ユーザーとしてログインし、'seafile-server'ディレクトリに移動します。
su --ryujin
cd seafile-server /次に、「setup-seafile-mysql.sh」スクリプトを実行します。
./ setup-seafile-mysql.shインストールスクリプトは、Pythonモジュールのチェックを実行します。すべての依存関係がインストールされていることを確認してから、Enterキーを押します。
これで、Seafileの構成が始まります。
- サーバー名:「hakase-cloud」などのseafileサーバー名を入力します。
- サーバードメイン名:seafileサーバーのドメイン名「cloud.hakase-labs.io」を入力します。
- seafileデータディレクトリ:構成をデフォルトのままにして、Enterキーを押します。
- seafileファイルサーバーポート:デフォルトのポート「8082」のままにします。
![]()
次に、データベース構成について説明します。スクリプトにデータベースを作成させるか、既存のデータベースを使用するかの2つのオプションを求められます。
オプション「2」を選択して、既存のデータベース設定を使用します。
- データベースホスト:デフォルトのローカルホスト
- データベースポート:mysqlの通常のポート「3306」のデフォルト
- データベースユーザーは「seafile」で、パスワードは「[メール保護]」です。
- ccnetデータベース:'ccnet-db'
- seafileデータベース:'seafile-db'
- seahubデータベース:'seahub-db'
![]()
ここでもう一度Enterキーを押して、seafileサーバーの構成を確認します。
![]()
インストールが完了すると、次のような結果が得られます。
![]()
seafileサーバーのインストールと構成が正常に完了しました。また、seafileファイルサーバーはポート「8082」で実行され、seahubサービスはポート「8000」で実行されます。
次に、startスクリプトを使用してseafileサーバーとseahubサーバーを実行するためのテストを行います。
'ryujin'ユーザーとして、'〜/seafile-server-latest'ディレクトリに移動します。
su --ryujin
cd〜/ seafile-server-latest /次に、以下のコマンドを実行して、seafileサーバーを起動します。
./ seafile.sh start次に、seahubサーバーを実行します。
./ seahub.sh start'seahub.sh'開始スクリプトを初めて実行するときに、seafileサーバーの管理者ユーザーとパスワードを作成するように求められます。
管理者のメールアドレスとパスワードを入力し、Enterキーを押します。
![]()
そして、adminユーザーとパスワードが作成されました。netstatコマンドを使用して、seafileとseahubのサービスポート「8082」と「8080」を確認してください。
ss -plnt4そして、seafileサーバーとseahubサーバーがUbuntu20.04システムで稼働していることがわかります。
次に、seafileとseahubサーバーを停止します。
./ seafile.sh stop
./seahub.sh stop
![]()
ステップ5-ドメイン名でSeafileを構成する このチュートリアルでは、ドメイン名「seafile.hakase-labs.io」でSeafileを実行します。そのためには、Seafile構成の一部を編集する必要があります。
ユーザー「ryujin」にログインし、「conf」ディレクトリに移動します。
su --ryujin
cd conf /vimエディターを使用して構成「ccnet.conf」を編集します。
vim ccnet.conf[SERVICE_URL]オプションで、値をドメイン名に変更し、デフォルトのHTTPプロトコルをHTTPSセキュアプロトコルに変更してください。
SERVICE_URL =https://seafile.hakase-labs.io保存して閉じます。
次に、構成'seafile.conf'を編集します。
vim seafile.conf'[fileserver]'セクションで、seafileサービスの'host'IPアドレスを指定します。 seafileサービスは、以下のようにローカルアドレスで実行されます。
[fileserver]
host =127.0.0.1
port =8082保存して閉じます。
次に、vimエディターを使用して「seahub_settings.py」を編集します。
vim seahub_settings.py以下のように「FILE_SERVER_ROOT」オプションを行の最後に追加します。
FILE_SERVER_ROOT ='https://seafile.hakase-labs.io/seafhttp'保存して閉じます。
![]()
Seafileの構成が完了し、ドメイン名「seafile.hakase-labs.io」で実行されます。
ステップ6-SeafileをSystemdサービスとして実行する ドメイン名を使用してSeafileを構成した後、seafileとseahubをsystemdサービスとして設定します。
'/ etc / systemd / system'ディレクトリに移動し、'seafile.service'という名前のseafile用の新しいサービスファイルを作成します。
cd / etc / systemd / system /
vim seafile.service次の構成を貼り付けます。
[Unit]
Description =Seafile
After =network.target mysql.service nginx.service
[Service]
Type =forking
ExecStart =/ home / ryujin / seafile-server-latest / seafile.sh start
ExecStop =/ home / ryujin / seafile-server-latest / seafile.sh stop
User =ryujin
Group =ryujin
[インストール]
WantedBy =multi-user.target保存して閉じます。
次に、「seahub.service」という名前のseahubサービスファイルを作成します。
vim seahub.service次の構成を貼り付けます。
[Unit]
Description =Seafilehub
After =network.target seafile.service
[Service]
Type =forking
ExecStart =/home/ryujin/seafile-server-latest/seahub.sh start
ExecStop =/ home / ryujin / seafile-server-latest / seahub.sh stop
User =ryujin
Group =ryujin
[インストール]
WantedBy =multi-user.target保存して閉じます。
そして、seafileとseahubサービスファイルが作成されました。
次に、systemdマネージャーをリロードし、エラーがないことを確認します。
systemctlデーモン-リロード次に、seafileサービスを開始し、システムブートに追加します。
systemctl start seafile
systemctl enable seafileその後、seahubサービスを開始して有効にします。
systemctl start seahub
systemctl enable seahub
![]()
seafileおよびseahubサービスが稼働しています。次のコマンドを使用して、確認してください。
systemctl status seafile seahub以下は、得られる結果です。
![]()
その結果、systemdサービスとしてのSeafileとSeahubの構成が完了しました。
ステップ7-SSLLetsencryptとDHPARAMを生成する このステップでは、SSLLetsencryptおよびDHPARAM証明書を生成します。 certbotツールを使用してSSLLetsencryptを生成し、opensslコマンドを使用してdhparam証明書を生成します。
SSL Letsencryptを生成するには、実際のドメイン名を取得し、サーバーのIPアドレスを指していることを確認してください。
以下のaptコマンドを使用して、certbotツールをUbuntuシステムにインストールします。
sudo apt install certbotその後、以下のcertbotコマンドを使用して、seafileドメイン名「seafile.hakase-labs.io」のSSLLetsencryptを生成します。
certbot certonly --agree-tos --no-eff-email --email [email protected] -d seafile.hakase-labs.ioすべてのプロセスが完了すると、証明書は「/etc/letsencrypt/live/seafile.hakase-labs.io」ディレクトリで利用できるようになります。
次に、以下のようにopensslコマンドを使用してDHPARAM証明書を生成します。
openssl dhparam -out /etc/nginx/dhparam.pem 2048DHAPRAM証明書が生成され、「/ etc / nginx/dhparam.pem」で利用できるようになります。
その結果、Seafileドメイン名とDHPARAM証明書のSSLLetsencryptが生成されました。
ステップ8-Nginxをリバースプロキシとしてインストールして構成する このステップでは、SeafileサービスのリバースプロキシとしてNginxをインストールして構成します。 Nginx Webサーバーは、SSLLetsencryptとDHPARAM証明書が上に生成された安全なHTTPSプロトコルで実行されます。
以下のaptコマンドを使用してNginxをUbuntu20.04サーバーにインストールします。
sudo apt install nginx -yすべてのインストールが完了したら、Nginxサービスを開始し、システムブートに追加します。
systemctl start nginx
systemctl enable nginxそして、NginxサービスはUbuntuシステムで稼働しています。
次に、「/ etc / nginx / sites-available」ディレクトリに移動し、vimエディターを使用して新しい仮想ホスト構成「seafile」を作成します。
cd / etc / nginx / sites-available /
vim seafile次の構成を貼り付けます。
server {
listen 80;
server_name seafile.hakase-labs.io;
rewrite ^ https:// $ http_host $ request_uri?永続的;
server_tokens off;
}
server {
listen 443 ssl http2;
server_name seafile.hakase-labs.io;
ssl_certificate_key /etc/letsencrypt/live/seafile.hakase-labs.io/privkey.pem;
_ time;
ssl_session_cache shared:SSL:5m;
ssl_dhparam /etc/nginx/dhparam.pem;
TLS _ v 1.1 s l s TLSv1.2;
ssl_ciphers'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305 AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_ecdh_curve secp384r1;
ssl_prefer_server_ciphers on;
server_tokens off;
ssl_session_tickets off;
proxy_set_header X-Forwarded-For $ remote_addr;
location / {
proxy_pass http://127.0.0.1:; proxy_set_header Host $ host;
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded X-Forwarded-proxy X-forwarded-for $ proxy_add_x_forwarded_for;
For $ proxy_add_x_forwarded_for;
For $ proxy_add_x_forwarded_for;
;
#OfficeOnlineServerを介してOfficeファイルを表示/編集するために使用されます
client_max_body_size0;
access_log/var/log/nginx/seahub。
error_log /var/log/nginx/seahub.error.log;
}
場所/seafdav{
http://。 seafdav;
proxy_set_header Host $ host;
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_he ader X-Forwarded-For $ proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $ server_name;
proxy_set_header X-Forwarded-Proto $ schema;
proxy_set_header X-Forwarded-Proto $ schema;
access_log /var/log/nginx/seafdav.access.log;
error_log /var/log/nginx/seafdav.error.log;
/> location / seafhttp {
rewrite ^ / seafhttp(。*)$ $ 1 break;
proxy_pass http://127.0.0.1:8082;
proxy
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
}
場所/メディア{
root / home / ryujin / seafile-server-latest / seahub;
}
}保存して閉じます。
次に、seafileの仮想ホスト構成をアクティブ化し、Nginx構成をテストします。
ln -s / etc / nginx / sites-available / seafile / etc / nginx / sites-enabled /
nginx -tエラーがないことを確認してから、Nginxサービスを再起動します。
systemctl restart nginxその結果、SeafileのリバースプロキシとしてのNginxのインストールと構成が正常に完了しました。
![]()
ステップ9-ファイアウォールのセットアップ このチュートリアルでは、UFWファイアウォールを有効にしてSeafileを実行します。そして、SSH、HTTP、HTTPSサービスをUFWファイアウォール構成に追加する必要があります。
次のコマンドを使用して、SSH、HTTP、およびHTTPSサービスをUFWファイアウォールに追加します。
for svc in ssh http https
do
ufw allow $ svc
done次に、UFWファイアウォールをアクティブにして、構成のステータスを確認します。
ufw enable
ufwステータス番号そして、以下のような結果が得られます。
![]()
UFWファイアウォールが有効になっており、SSH、HTTP、HTTPSサービスが追加されています。
これで、Seafileを使用する準備が整いました。
ステップ10-テスト Webブラウザーを開き、アドレスバーにSeafileインストールドメイン名を入力します。
https://seafile.hakase-labs.io/
これで、安全なHTTPS接続にリダイレクトされ、次のようなSeafileログインページが表示されます。
![]()
上に作成したseafileユーザーパスワードを入力し、[ログイン]ボタンをクリックします。
これで、Seafileダッシュボードが次のように表示されます。
![]()
以下は、新しいフォルダを作成し、そのファイルをSeafileサーバーにアップロードした後の結果です。
![]()
その結果、Ubuntu20.04でのNginxWebサーバーとMariaDBデータベースを使用したSeafileのインストールと構成が正常に完了しました。
Ubuntu