Seafileは、独自のサーバーでホストされているDropbox、mega.co.nzなどの同様の機能を提供するプライベートクラウドソフトウェアです。 SeafileはPythonプログラミング言語に基づいており、オープンソースライセンスでリリースされているため、独自のプライベートクラウドを作成でき、より安全になります。
Seafileは、データを安全に保存するための暗号化をサポートしています。ストレージライブラリ内のファイルを暗号化するには、ライブラリを作成するときにパスワードを設定する必要があります。パスワードはSeafileクラウドに保存されません。そのため、サーバーの管理者でさえ、パスワードなしでは暗号化されたデータを表示できません。
このチュートリアルでは、NginxWebサーバーとデータベースサーバーとしてMariaDBを使用してCentOS7にSeafileをインストールします。
- CentOS7サーバー
- root権限
sshrootパスワードを使用してcentOSサーバーにログインします。
ssh [email protected]
TYPE YOUR PASSWORD
SELinux構成ファイルをvimで編集します。
vim /etc/sysconfig/selinux
値「enforcing」を「disabled」に置き換えます。
SELINUX=disabled
ファイルを保存してエディタを終了します。
サーバーを再起動して、SELinuxポリシーの変更を適用します。
reboot
サーバーが再起動するのを待ってから、rootユーザーとしてサーバーに再度ログインします。
以下のコマンドでselinuxを確認してください:
getenforce
'無効が表示されます '結果として。
SeafileはPythonに基づいているため、最初にインストールのためにpythonをインストールする必要があります。 SeafileはSQLiteおよびMySQL/MariaDBデータベースをサポートしています。ここでは、SQLiteよりも優れたパフォーマンスを提供するため、SeafileのデータベースとしてMariaDBを使用します。 Nginxは、SeafileとSeahubのリバースプロキシとして使用されます。
このステップでは、MariaDBとNginxといういくつかのPythonパッケージをインストールします。まず、CentOSサーバーにEPELリポジトリをインストールします。
yum -y install epel-release
次に、Pythonパッケージ、MariaDBとNginxをインストールします。
yum -y install python-imaging MySQL-python python-simplejson python-setuptools mariadb mariadb-server nginx
すべてのパッケージがインストールされるまで待ちます。
ステップ2では、MariaDBサーバーを既にインストールしているので、サービスを開始してルートパスワードを構成するだけです。
MariaDBを起動し、以下のコマンドを使用してルートパスワードを構成します。
systemctl start mariadb
mysql_secure_installation
ルートパスワードを入力します。
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
MariaDBのrootパスワードが設定され、mysqlシェルにログインできるようになりました。
注意:MariaDBコマンドラインシェルの名前はmysqlです。
seafile用に3つのデータベースを作成します:
- ccnet_db
- seafile_db
- seahub_db
そして、新しいユーザー' seacloudを作成します 'パスワード付き'yourpassword '。パスワードを安全なパスワードに置き換えてください!
mysqlクライアントを使用してmysqlシェルにログインします。
mysql -u root -p
TYPE YOUR PASSWORD
以下のmysqlクエリを実行して、seafileインストール用のデータベースとユーザーを作成します。
create database ccnet_db character set = 'utf8';
create database seafile_db character set = 'utf8';
create database seahub_db character set = 'utf8';
create user [email protected] identified by 'yourpassword';
grant all privileges on ccnet_db.* to [email protected] identified by 'yourpassword';
grant all privileges on seafile_db.* to [email protected] identified by 'yourpassword';
grant all privileges on seahub_db.* to [email protected] identified by 'yourpassword';
flush privileges;
exit
上記のコマンドのパスワードを自分のパスワードに置き換えてください。
このステップでは、Seafileをインストールします。 Seafileはnginxユーザーの下で実行されるため、seafileおよびseahubサービスのリバースプロキシとしてnginxを使用できます。
ディレクトリ'/var / www / seafile'のnginxユーザーの下にseafileをインストールし、そのディレクトリを作成してcdで入力します。
mkdir -p /var/www/seafile
cd /var/www/seafile
wgetコマンドを使用してSeafileをダウンロードし、ダウンロードしたアーカイブを抽出します。
wget https://bintray.com/artifact/download/seafile-org/seafile/seafile-server_6.0.5_x86-64.tar.gz
tar -xzvf seafile-server_6.0.5_x86-64.tar.gz
ディレクトリの名前を「seafile-server」に変更し、そのディレクトリに切り替えます。
mv seafile-server-6.0.5 seafile-server
cd seafile-server/
'setup-seafile-mysql.sh'ファイルを実行してデータベースを構成します。
./setup-seafile-mysql.sh
Enterキーを押すと、以下の情報を求められます:
- サーバー名-サーバーのホスト名を使用します'natsume '
- サーバーのIPまたはドメイン-サーバーのIPアドレス、私の場合は' 192.168.1.115 '
- デフォルトのデータディレクトリ-Enterキーを押すだけです
- デフォルトポート-Enterキーを押します
- データベース構成として、番号 2を選択します。
MySQL構成の場合:
- deafult host--localhostを使用
- デフォルトポート-3306
- mysqlユーザー-'seacloud '
- パスワードは'yourpassword '
- ccnetデータベースは'ccnet_db '
- seafileデータベースは'seafile_db '
- seahubデータベースは'seahub_db '
Enterキーを押すと、スクリプトによってseafileのデータベーステーブルが作成されます。
これで、seafileおよびseahubサービスを開始できます。
./seafile.sh start
./seahub.sh start
seahub.shファイルを実行すると、管理者構成の入力を求められます。
管理者のメールアドレスとパスワードを入力すると、seahubサービスが実行されます。
Seafileがインストールされて実行されているので、ポート8000(私の場合は192.168.1.115:8000)のサーバーIPを使用してWebブラウザーからSeafileにアクセスできますが、リバースプロキシを使用するため、ここではアクセスしません。 seafileサーバーとsystemdサービスファイルを使用してseafileを実行します。
したがって、seafileとseahubサービスを今のところ停止する必要があります。
./seafile.sh stop
./seahub.sh stop
seafileをnginxユーザーとして実行するため、seafileインストールディレクトリとseahub_cacheディレクトリの所有者をnginxユーザーに変更する必要があります:
cd /var/www/
chown -R nginx:nginx *
chown -R nginx:nginx /tmp/seahub_cache
次に、systemdディレクトリに移動し、vimを使用してseafile.serviceファイルを作成します。
cd /etc/systemd/system/
vim seafile.service
以下にseafileサービス構成を貼り付けます:
[Unit]
Description=Seafile Server
Before=seahub.service
After=network.target mariadb.service
[Service]
Type=oneshot
ExecStart=/var/www/seafile/seafile-server/seafile.sh start
ExecStop=/var/www/seafile/seafile-server/seafile.sh stop
RemainAfterExit=yes
User=nginx
Group=nginx
[Install]
WantedBy=multi-user.target
保存して終了します。
次に、新しいseahub.serviceファイルを作成します。
vim seahub.service
そして、以下の構成を貼り付けます。
[Unit]
Description=Seafile Hub
After=network.target seafile.target mariadb.service
[Service]
Type=oneshot
ExecStart=/var/www/seafile/seafile-server/seahub.sh start-fastcgi
ExecStop=/var/www/seafile/seafile-server/seahub.sh stop
RemainAfterExit=yes
User=nginx
Group=nginx
[Install]
WantedBy=multi-user.target
保存して終了します。
systemdサービスをリロードし、systemctlを使用してseafileとseahubを起動します。
systemctl daemon-reload
systemctl start seafile
systemctl start seahub
エラーがないことを確認し、seafileおよびseahubサービスがポート8082および8000で実行されていることを確認します。
netstat -plntu
このチュートリアルでは、SeafileをNginxプロキシ経由で実行し、Nginxはデータセキュリティのための安全な(HTTPS)接続を提供します。無料のSSL証明書ファイルまたは有料のSSL証明書を使用できますが、これは構成には関係ありません。この手順では、「/ etc / nginx/ssl」ディレクトリにOpenSSLを使用して自己署名SSL証明書ファイルを生成します。
sslディレクトリを作成します。
mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl
以下のコマンドを使用して、自己署名証明書ファイルとdhparamファイルを生成します。
openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
openssl req -new -x509 -sha256 -days 365 -newkey rsa:2048 -nodes -keyout server.key -out server.crt
名前、州、電子メール、ドメイン名など、OpenSSLから要求された証明書の詳細に回答します。次に、ディレクトリと証明書ファイルのアクセス許可を変更します。
chmod -R 700 /etc/nginx/ssl
chmod 400 server.*
chmod 400 dhparam.pem
SSL証明書ファイルが生成されました。
このステップでは、ポート8000および8002のseafile-serverのリバースプロキシとしてNginxを構成します。
nginx構成ディレクトリに移動し、seafile用の新しい仮想ホストファイルを作成します。
cd /etc/nginx/
vim conf.d/seafile.conf
以下に仮想ホスト構成を貼り付けます:
server {
listen 80;
server_name cloud.natsume.co;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name cloud.natsume.co;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4';
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
ssl_prefer_server_ciphers on;
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 REMOTE_ADDR $remote_addr;
access_log /var/log/nginx/seahub.access.log;
error_log /var/log/nginx/seahub.error.log;
fastcgi_read_timeout 36000;
}
# Reverse Proxy for seahub
location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass http://127.0.0.1:8082;
client_max_body_size 0;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
}
#CHANGE THIS PATH WITH YOUR OWN DIRECTORY
location /media {
root /var/www/seafile/seafile-server/seahub;
}
}
保存して終了します。
ドメイン名として「cloud.natsume.co」を使用します。上記の設定で、独自のドメイン名に置き換えてください。
次に、Nginx構成をテストし、エラーがないことを確認します。
nginx -t
systemctlコマンドでNginxを起動します:
systemctl start nginx
netstatが提供するリストでポート80と443が使用可能であることを確認してください。
netstat -plntu
次に、seafile構成にドメイン名を追加する必要があります。 seafileディレクトリに移動し、構成ファイルを編集します。
cd /var/www/seafile/
vim conf/ccnet.conf
サービスのURLをドメイン名に変更します。
SERVICE_URL = https://cloud.natsume.co
保存して終了します。
seahub構成ファイルを編集します。
vim conf/seahub_settings.py
2行目に、以下の構成を追加します。
HTTP_SERVER_ROOT = 'https://cloud.natsume.co/seafhttp'
ここで、ドメイン名をドメインに置き換えます。保存して終了します。
seafileを再起動し、すべてのサービスを追加して起動時に開始します:
systemctl restart seafile
systemctl restart seahub
systemctl enable nginx
systemctl enable mariadb
systemctl enable seafile
systemctl enable seahub
手順7では、HTTPおよびHTTPSポートを使用するようにNginxを構成しました。次に、ファイアウォールでそのポートをfirewalldに追加して開く必要があります。
Firewalldを起動します。
systemctl start firewalld
systemctl enable firewalld
以下のfirewall-cmdコマンドを使用して、ファイアウォール構成にHTTPおよびHTTPSポートを追加します。
firewall-cmd --zone=public --add-port=80/tcp --permanent>
firewall-cmd --zone=public --add-port=443/tcp --permanent
ファイアウォール構成を再ロードし、ポートリストを確認します。
firewall-cmd --reload
firewall-cmd --list-all
ブラウザを開き、seafileドメイン名(私の場合はcloud.natsume.co)を入力すると、https接続にリダイレクトされます。
管理者の電子メールとパスワードを入力し、[ログイン]をクリックします。
Seafile管理ダッシュボード:
Seafileファイルビュー。
リバースプロキシおよびSSLとしてNginxを使用するSeafileがCentOS7サーバーに正常にインストールされました。
今日の多種多様なクラウドアプリケーションを備えたSeafileは、この日に使用するのに適したプライベートクラウドソリューションです。ライブラリ/フォルダレベルの暗号化機能を使用すると、データをSeacloudサーバーに安全に保存できます。その上、Seafileは独自のサーバーで簡単に構成および実装できます。