「Cozy」の版間の差分
Kusakata.bot (トーク | 投稿記録) (Pkg/AUR テンプレートの更新) |
(同期) |
||
4行目: | 4行目: | ||
{{Related|バックアッププログラム}} |
{{Related|バックアッププログラム}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
− | [https://cozy.io Cozy] は [[Node.js]] で書かれた、フリーなセルフホストの個人用クラウドプラットフォームです。 |
+ | [https://cozy.io Cozy] は [[Node.js]] で書かれた、フリーなセルフホストの個人用クラウドプラットフォームです (次期バージョンの v3 は [[Go]] で書かれています)。 |
個人的なクラウドの利用を簡単にしてプライバシーをユーザーの手に取り戻すことを標榜しています。アプリケーションの基本機能としてファイルや画像を保存したり、連絡先やカレンダーをメールクライアントと共有・同期できます。 |
個人的なクラウドの利用を簡単にしてプライバシーをユーザーの手に取り戻すことを標榜しています。アプリケーションの基本機能としてファイルや画像を保存したり、連絡先やカレンダーをメールクライアントと共有・同期できます。 |
||
12行目: | 12行目: | ||
== インストール == |
== インストール == |
||
+ | {{AUR|cozy}} パッケージを[[インストール]]してください。コア (cozy-controller と cozy-monitor) と設定ファイルに加えて、必要な依存ライブラリもインストールされます。 |
||
− | === 依存パッケージ === |
||
+ | {{Note|上記のパッケージでは {{Pkg|nodejs-lts-argon}} による Node.js バージョン 4.x がインストールされます。新しいバージョンの Node.js (6.x や 8.x) でも Cozy は問題なく動きますが、Cozy が公式にサポートしているのは Node.js v4.x だけです。Arch Linux の公式リポジトリに入っている最新版の Node.js を使いたい場合は、PKGBUILD の依存パッケージを変更してください。}} |
||
− | Cozy をインストールするにはまず依存パッケージを[[インストール]]してください。疑似パッケージである {{AUR|cozy-deps}}{{Broken package link|パッケージが存在しません}} をインストールすることで必要なパッケージを全てインストールできます。 |
||
− | |||
− | 手動で必要なパッケージを全てインストールすることもできます: {{Pkg|ca-certificates}}, {{Pkg|couchdb}}, {{Pkg|bash}}, {{Pkg|curl}}, {{Pkg|git}}, {{Pkg|imagemagick}}, {{Pkg|coffee-script}}{{Broken package link|置換パッケージ: {{Pkg|coffeescript}}}}, {{Pkg|openssl}}, {{Pkg|libxml2}}, {{Pkg|libxslt}}, {{Pkg|sqlite}}。 |
||
− | |||
− | {{Note|{{AUR|cozy-deps}}{{Broken package link|パッケージが存在しません}} を使うにしろ使わないにしろ Node.js のバージョン 6.x または 7.x がインストールされます。Cozy は公式にはサポートしていないバージョンですが、全く問題なく動作します。Cozy が公式にサポートしているのは Node.js v4.x だけ、{{AUR|nodejs-lts-bin}}{{Broken package link|パッケージが存在しません}} パッケージでインストールできます。Arch Linux の公式リポジトリに含まれている最新版の Node.js を使いたい場合、{{pkg|npm}} が必要です。}} |
||
=== インストール前の設定 === |
=== インストール前の設定 === |
||
− | + | 手動でユーザーアカウントを追加する必要があります: |
|
− | |||
− | # npm install -g cozy-controller |
||
− | # npm install -g cozy-monitor |
||
− | |||
− | また、Cozy は3つのユーザーアカウントを必要とします: |
||
− | |||
− | # useradd -MU cozy |
||
# useradd -MU cozy-data-system |
# useradd -MU cozy-data-system |
||
# useradd -MU cozy-home |
# useradd -MU cozy-home |
||
− | |||
− | さらに {{ic|/etc/cozy}} リポジトリを作成して、所有者を {{ic|cozy}} ユーザーにする必要があります。 |
||
=== CouchDB の設定 === |
=== CouchDB の設定 === |
||
41行目: | 28行目: | ||
管理者を作成するには、まず ({{pkg|pwgen}} などを使って) 認証情報を生成して、保存し、CouchDB に送信してください。ファイルには適切な権限を与える必要があります: |
管理者を作成するには、まず ({{pkg|pwgen}} などを使って) 認証情報を生成して、保存し、CouchDB に送信してください。ファイルには適切な権限を与える必要があります: |
||
− | {{Note|以下の curl コマンドは |
+ | {{Note|以下の curl コマンドは CouchDB のバージョン 2.0 をシングルノードモードでセットアップします。CouchDB を別の目的で使いたくない場合を想定しています。}} |
# pwgen -1 > /etc/cozy/couchdb.login |
# pwgen -1 > /etc/cozy/couchdb.login |
||
47行目: | 34行目: | ||
# chown cozy-data-system /etc/cozy/couchdb.login |
# chown cozy-data-system /etc/cozy/couchdb.login |
||
# chmod 640 /etc/cozy/couchdb.login |
# chmod 640 /etc/cozy/couchdb.login |
||
− | # curl 127.0.0.1:5984/ |
+ | # 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 $(head -n1 /etc/cozy/couchdb.login):$(tail -n1 /etc/cozy/couchdb.login)@127.0.0.1:5984/ |
+ | # 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 を使うにはコントローラ (cozy-controller) を立ち上げる必要があります。バックグラウンドタスクとして実行するものなので、systemd で起動するのが好ましいでしょう。サービスファイルはパッケージに含まれています。{{ic|cozy-controller.service}} を[[起動]]・[[有効化]]してください。 |
− | |||
− | {{hc|1=/etc/systemd/system/cozy-controller.service|2=[Unit] |
||
− | Description=Cozy Controller |
||
− | |||
− | [Service] |
||
− | Environment=NODE_ENV=production |
||
− | Environment=USE_SYSLOG=true |
||
− | Environment=WEBOOB_PYTHON_PATH=/usr/share/cozy-weboob/lib/python2.7/site-packages |
||
− | Environment=WEBOOB_DIR=/usr/share/cozy-weboob/lib/python2.7/site-packages |
||
− | ExecStart=/usr/bin/cozy-controller |
||
− | |||
− | [Install] |
||
− | WantedBy=multi-user.target}} |
||
− | |||
− | === コントローラの設定ファイルを作成 === |
||
− | |||
− | Cozy のコントローラは {{ic|/etc/cozy/controller.json}} に置かれた JSON の設定ファイルを使います。ファイルが存在しない場合、コントローラはデフォルト値を使用します。デフォルトの設定では {{pkg|supervisor}} を使って再起動を行います。systemd を使用してコントローラを起動・停止するために、以下のように JSON ファイルを作成して適切な再起動コマンドを設定する必要があります: |
||
− | |||
− | {{hc|1=/etc/cozy/controller.json|2={ |
||
− | "restart_cmd": "/bin/systemctl restart cozy" |
||
− | } |
||
− | }} |
||
− | |||
− | 以下を実行することでファイルの所有者を cozy にすることができます: |
||
− | |||
− | # chown cozy:cozy /etc/cozy/controller.json |
||
− | |||
− | {{Note|{{ic|controller.json}} で設定できる他のパラメータについては [https://github.com/babolivier/cozy-controller/blob/master/doc/config.md こちら] を参照。}} |
||
=== Cozy スタックのインストール === |
=== Cozy スタックのインストール === |
||
− | + | cozy-monitor を使用して Cozy のベーススタックの各コンポーネントをインストール・起動することができます: |
|
− | # cozy-monitor install |
+ | # cozy-monitor install-cozy-stack |
− | # cozy-monitor start data-system |
||
− | # cozy-monitor install home |
||
− | # cozy-monitor start home |
||
− | # cozy-monitor install proxy |
||
− | # cozy-monitor start proxy |
||
=== 設定 === |
=== 設定 === |
||
99行目: | 55行目: | ||
==== ドメインの設定 ==== |
==== ドメインの設定 ==== |
||
− | # coffee / |
+ | # coffee /var/lib/cozy/apps/home/commands.coffee setdomain <your domain> |
{{Note|Cozy では特定のドメイン (あるいはサブドメイン) を使用することが推奨されています (例: {{ic|cozy.example.tld}})。}} |
{{Note|Cozy では特定のドメイン (あるいはサブドメイン) を使用することが推奨されています (例: {{ic|cozy.example.tld}})。}} |
||
163行目: | 119行目: | ||
ssl_session_cache shared:SSL:10m; |
ssl_session_cache shared:SSL:10m; |
||
ssl_session_timeout 10m; |
ssl_session_timeout 10m; |
||
− | ssl_protocols TLSv1 TLSv1.1 TLSv1.2; |
||
− | ssl_ciphers ALL:!aNULL:!eNULL:!LOW:!EXP:!RC4:!3DES:+HIGH:+MEDIUM; |
||
ssl_prefer_server_ciphers on; |
ssl_prefer_server_ciphers on; |
||
ssl on; |
ssl on; |
||
210行目: | 164行目: | ||
== トラブルシューティング == |
== トラブルシューティング == |
||
− | === CouchDB 2.x === |
+ | === 古いバージョンから CouchDB 2.x にアップデート === |
− | |||
− | CouchDB 2.0 のアップデートによって問題が発生する場合があります。 |
||
− | |||
− | ==== 古いバージョンからのアップデート ==== |
||
CouchDB をバージョン 1.x から 2.x に更新すると、CouchDB のシャーディングによって Cozy が動作しなくなることがあります (Cozy はシャーディングをまだサポートしていません)。アップデートによってデフォルトのデータベースディレクトリが変わってしまうため、Cozy のデータベースが CouchDB から認識されなくなります。以下は Cozy をまた動作できるようにする手順です: |
CouchDB をバージョン 1.x から 2.x に更新すると、CouchDB のシャーディングによって Cozy が動作しなくなることがあります (Cozy はシャーディングをまだサポートしていません)。アップデートによってデフォルトのデータベースディレクトリが変わってしまうため、Cozy のデータベースが CouchDB から認識されなくなります。以下は Cozy をまた動作できるようにする手順です: |
2017年12月11日 (月) 01:06時点における版
関連記事
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
サービスを起動したら全てが問題なく動作するはずです。