「Cozy」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(Pkg/AUR テンプレートの更新)
(Pkg/AUR テンプレートの更新)
 
(2人の利用者による、間の3版が非表示)
1行目: 1行目:
[[Category:インターネットアプリケーション]]
+
[[Category:ファル共有]]
 
[[en:Cozy]]
 
[[en:Cozy]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{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) と設定ファイルに加えて、必要な依存ライブラリもインストールされます。
=== 依存パッケージ ===
 
   
Cozy をインストールするにはまず依存パッケージを[[インストール]]してください。疑似パッケージである {{AUR|cozy-deps}}{{Broken package link|パッケージが存在しません}} インストールすること必要なパッケージをインストールできます
+
{{Note|上記のパッケージで {{Pkg|nodejs-lts-argon}}{{Broken package link|パッケージが存在しません}} による Node.js バージョン 4.x がインストールされま。新しいバージョンの Node.js (6.x や 8.x) も Cozy は問題く動きますが、Cozy が公式にサポートしているのは Node.js v4.x だけです。Arch Linux の公式リポジトリに入っている最新版の Node.js を使いたい場合は、PKGBUILD の依存パッケージを変更しください}}
 
手動で必要なパッケージを全てインストールすることもできます: {{Pkg|ca-certificates}}, {{Pkg|couchdb}}, {{Pkg|bash}}, {{Pkg|curl}}, {{Pkg|git}}, {{Pkg|imagemagick}}, {{Pkg|coffee-script}}, {{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}} が必要です。}}
 
   
 
=== インストール前の設定 ===
 
=== インストール前の設定 ===
   
Cozy のベスコンポントをインストールする必要があります:
+
手動でユアカウントを追加する必要があります:
 
# 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 コマンドは Arch Linux の公式リポジトリに含まれている CouchDB のバージョン '''2.0''' 以上でのみ機能します。}}
+
{{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/_cluster_setup -Hcontent-type:application/json -d "{\"action\":\"enable_cluster\", \"username\":\"$(head -n1 /etc/cozy/couchdb.login)\", \"password\":\"$(tail -n1 /etc/cozy/couchdb.login)\", \"bind_address\":\"0.0.0.0\"}"
+
# 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/_cluster_setup -XPOST -Hcontent-type:application/json -d '{"action":"finish_cluster"}'
+
# 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 で起動するのが好ましいでしょう。以下の {{ic|/etc/systemd/system/cozy-controller.service}} ファイル作成してください:
+
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 モニターを使用して Cozy のベーススタックの各コンポーネントをインストール・起動することができます:
+
cozy-monitor を使用して Cozy のベーススタックの各コンポーネントをインストール・起動することができます:
   
# cozy-monitor install data-system
+
# 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 /usr/local/cozy/apps/home/commands.coffee setdomain <your domain>
+
# 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 をまた動作できるようにする手順です:

2018年6月10日 (日) 19:01時点における最新版

関連記事

CozyNode.js で書かれた、フリーなセルフホストの個人用クラウドプラットフォームです (次期バージョンの v3 は Go で書かれています)。

個人的なクラウドの利用を簡単にしてプライバシーをユーザーの手に取り戻すことを標榜しています。アプリケーションの基本機能としてファイルや画像を保存したり、連絡先やカレンダーをメールクライアントと共有・同期できます。

マーケットプレイスからサードパーティ製のアプリを入手することができ Cozy のデフォルト機能を拡張して、タスク管理やブログ運営、銀行口座の管理などをすることも可能です。

インストール

cozyAUR パッケージをインストールしてください。コア (cozy-controller と cozy-monitor) と設定ファイルに加えて、必要な依存ライブラリもインストールされます。

ノート: 上記のパッケージでは nodejs-lts-argon[リンク切れ: パッケージが存在しません] による Node.js バージョン 4.x がインストールされます。新しいバージョンの Node.js (6.x や 8.x) でも Cozy は問題なく動きますが、Cozy が公式にサポートしているのは Node.js v4.x だけです。Arch Linux の公式リポジトリに入っている最新版の Node.js を使いたい場合は、PKGBUILD の依存パッケージを変更してください。

インストール前の設定

手動でユーザーアカウントを追加する必要があります:

# useradd -MU cozy-data-system
# useradd -MU cozy-home

CouchDB の設定

次にデータベースを設定します。Cozy は全てを CouchDB データベースに保存するため、データベースを管理するための CouchDB の管理者が必要です。管理者の認証情報を /etc/cozy/couchdb.login に配置することで Cozy は管理者アカウントを使用します。

管理者を作成するには、まず (pwgen などを使って) 認証情報を生成して、保存し、CouchDB に送信してください。ファイルには適切な権限を与える必要があります:

ノート: 以下の curl コマンドは CouchDB のバージョン 2.0 をシングルノードモードでセットアップします。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>
ノート: Cozy では特定のドメイン (あるいはサブドメイン) を使用することが推奨されています (例: cozy.example.tld)。

バックグラウンドの設定

# curl -X POST http://localhost:9103/api/instance -H "Content-Type: application/json" -d '{"background":"background-07"}'
ノート: Cozy インスタンスの "Settings" ページで設定はいつでも変えられます。

リバースプロキシ

セキュリティ上、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;
}
ノート: /etc/nginx/nginx.conf から /etc/nginx/cozy.conf を include してください。

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 サービスを起動したら全てが問題なく動作するはずです。