「Cozy」の版間の差分
(同期) |
(カテゴリ変更) |
||
| 1行目: | 1行目: | ||
| − | [[Category:イ |
+ | [[Category:ファイル共有]] |
[[en:Cozy]] |
[[en:Cozy]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
2018年1月2日 (火) 23:59時点における版
関連記事
Cozy は Node.js で書かれた、フリーなセルフホストの個人用クラウドプラットフォームです (次期バージョンの v3 は Go で書かれています)。
個人的なクラウドの利用を簡単にしてプライバシーをユーザーの手に取り戻すことを標榜しています。アプリケーションの基本機能としてファイルや画像を保存したり、連絡先やカレンダーをメールクライアントと共有・同期できます。
マーケットプレイスからサードパーティ製のアプリを入手することができ Cozy のデフォルト機能を拡張して、タスク管理やブログ運営、銀行口座の管理などをすることも可能です。
目次
インストール
cozyAUR パッケージをインストールしてください。コア (cozy-controller と cozy-monitor) と設定ファイルに加えて、必要な依存ライブラリもインストールされます。
インストール前の設定
手動でユーザーアカウントを追加する必要があります:
# useradd -MU cozy-data-system # useradd -MU cozy-home
CouchDB の設定
次にデータベースを設定します。Cozy は全てを CouchDB データベースに保存するため、データベースを管理するための CouchDB の管理者が必要です。管理者の認証情報を /etc/cozy/couchdb.login に配置することで Cozy は管理者アカウントを使用します。
管理者を作成するには、まず (pwgen などを使って) 認証情報を生成して、保存し、CouchDB に送信してください。ファイルには適切な権限を与える必要があります:
# pwgen -1 > /etc/cozy/couchdb.login # pwgen -1 >> /etc/cozy/couchdb.login # chown cozy-data-system /etc/cozy/couchdb.login # chmod 640 /etc/cozy/couchdb.login # curl -X PUT 127.0.0.1:5984/_node/couchdb@localhost/_config/admins/$(head -n1 /etc/cozy/couchdb.login) -d "\"$(tail -n1 /etc/cozy/couchdb.login)\"" # curl -X PUT $(head -n1 /etc/cozy/couchdb.login):$(tail -n1 /etc/cozy/couchdb.login)@127.0.0.1:5984/_users # curl -X PUT $(head -n1 /etc/cozy/couchdb.login):$(tail -n1 /etc/cozy/couchdb.login)@127.0.0.1:5984/_replicator # curl -X PUT $(head -n1 /etc/cozy/couchdb.login):$(tail -n1 /etc/cozy/couchdb.login)@127.0.0.1:5984/_global_changes
コントローラの起動
Cozy を使うにはコントローラ (cozy-controller) を立ち上げる必要があります。バックグラウンドタスクとして実行するものなので、systemd で起動するのが好ましいでしょう。サービスファイルはパッケージに含まれています。cozy-controller.service を起動・有効化してください。
Cozy スタックのインストール
cozy-monitor を使用して Cozy のベーススタックの各コンポーネントをインストール・起動することができます:
# cozy-monitor install-cozy-stack
設定
Cozy にはユーザーがアクセスするドメインの名前やバックグラウンドなどの基本的な設定が必要です。
ドメインの設定
# coffee /var/lib/cozy/apps/home/commands.coffee setdomain <your domain>
バックグラウンドの設定
# curl -X POST http://localhost:9103/api/instance -H "Content-Type: application/json" -d '{"background":"background-07"}'
リバースプロキシ
セキュリティ上、Cozy は HTTPS を使ってアクセスするべきであり、リバースプロキシを必要とします。HAproxy などのプロキシソフトウェアを使用するか Apache, nginx, Caddy などのウェブサーバーを使用してください。
さらに、自己署名証明書か、認証局から入手した SSL 証明書が必要です。
以下は一般的なウェブサーバーでの設定ファイルの例です。
Apache
/etc/httpd/conf/extra/cozy.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName cozy.example.tld
ServerAdmin admin@server
SSLEngine On
SSLCertificateFile /etc/cozy/server.crt
SSLCertificateKeyFile /etc/cozy/server.key
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/.*socket\.io [NC]
RewriteCond %{THE_REQUEST} websocket [NC]
RewriteRule /(.*) ws://127.0.0.1:9104/$1 [P,L]
ProxyPass / http://127.0.0.1:9104/ retry=0 Keepalive=On timeout=1600
ProxyPassReverse / http://127.0.0.1:9104/
setenv proxy-initial-not-pooled 1
CustomLog /var/log/apache2/cozy-access.log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
ErrorLog /var/log/apache2/cozy-error.log
</VirtualHost>
<VirtualHost *:80>
ServerName cozy.example.tld
ServerAdmin admin@server
Redirect permanent / https://cozy.example.tld/
</VirtualHost>
</IfModule>
nginx
/etc/nginx/cozy.conf
server {
listen 443;
server_name cozy.example.tld;
ssl_certificate /etc/cozy/server.crt;
ssl_certificate_key /etc/cozy/server.key;
ssl_dhparam /etc/cozy/dh.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_prefer_server_ciphers on;
ssl on;
gzip_vary on;
client_max_body_size 1024M;
add_header Strict-Transport-Security max-age=2678400;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect http:// https://;
proxy_pass http://127.0.0.1:9104;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
access_log /var/log/nginx/cozy.log;
}
# Always redirect http:// to https://
server {
listen 80;
server_name cozy.example.tld;
return 301 https://$host$request_uri;
}
Caddy
/etc/caddy/Caddyfile
cozy.example.tld {
tls admin@server
proxy / 127.0.0.1:9104 {
transparent
websocket
}
}
トラブルシューティング
古いバージョンから CouchDB 2.x にアップデート
CouchDB をバージョン 1.x から 2.x に更新すると、CouchDB のシャーディングによって Cozy が動作しなくなることがあります (Cozy はシャーディングをまだサポートしていません)。アップデートによってデフォルトのデータベースディレクトリが変わってしまうため、Cozy のデータベースが CouchDB から認識されなくなります。以下は Cozy をまた動作できるようにする手順です:
couchdbサービスを停止してください。/var/lib/couchdb/cozy.couchをどこかにバックアップして/var/lib/couchdb下のファイルを全て削除してください (CouchDB を Cozy 以外のアプリケーションに使っている場合は簡単に削除しないでください。その場合、ディレクトリに含まれているファイルをチェックしてから、全てのデータベースを正しい手順で移行してください)。
/etc/couchdb/local.iniを編集して以下を追加:
/etc/couchdb/local.ini
[cluster] q=1 n=1
couchdbサービスを起動してください。/var/lib/couchdbに再度ファイルが作成されます (例:/var/lib/couchdb/shards/00000000-ffffffff/cozy.<unix time of creation>.couch)。
couchdbサービスを停止して、バックアップしたcozy.couchを/var/lib/couchdb/shards/00000000-ffffffff/cozy.<unix time of creation>.couchにコピーしてください。
couchdbサービスを起動したら全てが問題なく動作するはずです。