このチュートリアルでは、 EteSyncをインストールする方法を説明します。 Ubuntu上のサーバー。 EteSyncは、カレンダー、連絡先、タスク、メモを同期するためのオープンソースのエンドツーエンド暗号化ソリューションです。
EteSync機能
最新バージョンはEteSync2.0で、機能があります
- エンドツーエンド暗号化。
- 個別の暗号化パスワードは必要ありません。必要なのは、暗号化とログインの両方に使用される1つのパスワードだけです。
- サーバーに対して認証するためのゼロ知識証明。パスワードがデバイスから離れることがないことを確認します。
- デバイス間の即時同期。
- 他のユーザーとデータを共有する機能
- クライアントは、デスクトップ(DAVブリッジ)、Web、Android、およびiOSで使用できます。
- GNOMEおよびKDEデスクトップとの統合(EvolutionおよびAkonadi用のEteSyncバックエンド)。
- MozillaThunderbirdのアドオン。
- 新しいEtebaseプロトコルにアップグレードします。
近い将来、EteSyncは安全な位置共有のサポートも追加する予定です。 EteSyncは、etesync.comでホステッドサービスを提供します。 Ubuntuサーバーでセルフホストインスタンスを実行する方法と、さまざまなプラットフォームでクライアントソフトウェアを使用する方法を紹介します。
ステップ1:最新の安定バージョンのMariaDBサーバーをUbuntuにインストールする
デフォルトでは、EteSyncはユーザー情報を SQLiteに保存します データベース。 MariaDBを使用する場合 、以下の手順に従ってください。
MariaDB 10.3でEteSyncを実行すると問題が発生するため、MariaDBの最新の安定バージョンである10.5を使用する必要があります。最新の安定バージョンをインストールするには、次のコマンドを実行して、Ubuntu20.04にMariaDBリポジトリを追加します。
sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.lstn.net/mariadb/repo/10.5/ubuntu focal main'
Ubuntu 18.04にリポジトリを追加するには、focal
を置き換えるだけです。 bionic
を使用 3番目のコマンドで。
次に、パッケージインデックスを更新し、MariaDBサーバーをインストールします。
sudo apt update sudo apt install mariadb-server
既存のMariaDBサーバーを最新バージョンにアップグレードする場合、次のメッセージが表示される場合があります。 N
を選択することをお勧めします 現在のバージョンを維持し、後で何を変更する必要があるかを調べるため。
パッケージの依存関係に問題がある場合は、次のコマンドを実行して修正できます。
sudo apt --fix-broken install
インストールが完了すると、MariaDBサーバーが自動的に起動します。次のコマンドでステータスを確認できます:
systemctl status mariadb
ご覧のとおり、アクティブで実行中です。
ヒント : Qを押します 上記のコマンドがすぐに終了しない場合に端末の制御を取り戻すため。
実行されていない場合は、次のコマンドで手動で開始できます:
sudo systemctl start mariadb
起動時に自動起動を有効にするには、
を実行しますsudo systemctl enable mariadb
ステップ2:MariaDBデータベースサーバーでEteSyncのデータベースとユーザーを作成する
次のコマンドを使用して、MariaDBデータベースサーバーにログインします。 MariaDBは現在unix_socket
を使用しているため ユーザーログインを認証するプラグイン。MariaDBのrootパスワードを入力する必要はありません。 mysql
のプレフィックスを付ける必要があります sudo
を使用したコマンド 。
sudo mysql
次に、EteSyncのデータベースを作成します。このチュートリアルでは、データベースにetebase
という名前を付けます 。好きな名前を使用できます。
create database etebase;
データベースユーザーを作成します。この場合も、このユーザーの好みの名前を使用できます。 your-password
を置き換えます ご希望のパスワードを使用してください。
create user etebase@localhost identified by 'your-password';
このユーザーにetebase
に対するすべての権限を付与します データベース。
grant all privileges on etebase.* to etebase@localhost;
特権をフラッシュして終了します。
flush privileges; exit;
ステップ3:UbuntuにEteSync2.0サーバーをインストールする
Python3仮想環境クリエーターといくつかのパッケージ構築ツールをインストールします。
sudo apt install python3-virtualenv python3-pip gcc build-essential
ホームディレクトリに移動します。
cd
GithubからEteSyncリポジトリのクローンを作成します。
git clone https://github.com/etesync/server.git etebase
新しく作成したディレクトリに移動します。
cd etebase
Python3仮想環境を作成します。
virtualenv -p python3 .venv source .venv/bin/activate pip install -r requirements.txt
サンプル構成ファイルをコピーします。
cp etebase-server.ini.example etebase-server.ini
ファイルを編集します。
nano etebase-server.ini
次の行を見つけます
;media_root = /path/to/media
コメントを外して値を変更します。
media_root = /home/username/etebase/media/
次の行を見つけてください
allowed_host1 = example.com
etebase.example.com
のようなサブドメインを使用します 。
allowed_host1 = etebase.example.com
デフォルトでは、EteSyncはユーザー情報をSQLiteデータベースに保存します。 MariaDBデータベースサーバーを使用する場合は、次の2行をコメントアウトします(各行の先頭にセミコロンを追加します)。
engine = django.db.backends.sqlite3 name = db.sqlite3
次に、このファイルの最後に次の行を追加します。これは、EteSyncにetebase
にアクセスする方法を指示します 手順1で作成したMariaDBのデータベース。明らかに、etebase
には独自のパスワードを使用する必要があります。 ユーザー。
engine = django.db.backends.mysql name = etebase user = etebase password = your-password host = 127.0.0.1 port = 3306
ファイルを保存して閉じます。 EtebaseサーバーはDjangoアプリケーションであり、Daphne(Django Channels HTTP / WebSocketサーバー)を使用してEtebaseを実行できます。 Daphneをインストールする:
pip3 install daphne
データベースエンジンとしてMySQL/MariaDBを使用しているため、mysqlclient
もインストールする必要があります。 モジュール。
sudo apt install libmysqlclient-dev pip3 install mysqlclient
aioredis
をインストールします Redisキャッシュを使用するためのモジュール。
pip3 install aioredis
Djangoの静的ファイルを作成します。
./manage.py collectstatic
アプリを初期化します。
./manage.py migrate
EteSync 2.0(Etebase)サーバーを起動します。
daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application
ステップ4:EteSyncをSystemdサービスとして実行する
daphne -b 0.0.0.0 -p 8001 etebase_server.asgi:application
を使用してEteSyncを手動で開始できます 、ただし、EteSyncをsystemdサービスとしてバックグラウンドで実行する方が便利です。 Ctrl+C
を押します 現在のEteSyncインスタンスを停止します。
次のコマンドを使用して、EteSyncのsystemdサービスユニットファイルを作成します。
sudo nano /etc/systemd/system/etebase.service
次の行をファイルに入れます。 username
を置き換えます 実際のユーザー名で。
[Unit] Description=EteSync: End-to-End Encryption to Sync Calender, Contacts, Tasks and Notes. [Service] WorkingDirectory=/home/username/etebase/ ExecStart=/home/username/etebase/.venv/bin/daphne -b 127.0.0.1 -p 8001 -u /tmp/etebase_server.sock etebase_server.asgi:application User=username Group=username Restart=always RestartSec=5s [Install] WantedBy=multi-user.target
ファイルを保存して閉じます。これで、etebase
を起動して有効にできます systemdサービス。
sudo systemctl start etebase sudo systemctl enable etebase
ステータスを確認してください。
systemctl status etebase
etebase
の場合 サービスがアクティブではない(実行中)場合は、次のコマンドを実行して何が問題なのかを確認できます。
sudo journalctl -eu etebase
ステップ5:リバースプロキシを設定する
次に、Djangoアプリケーションのリバースプロキシを設定する必要があります。これにより、後でドメイン名を介してEteSyncにアクセスし、HTTPSを簡単に有効にできます。これを実現するには、ApacheまたはNginxを使用できます。
Apache
Apacheを使用する場合は、次のコマンドを使用してApacheWebサーバーをインストールします。
sudo apt install apache2
Apacheをリバースプロキシとして使用するには、proxy
を有効にする必要があります モジュールとheader
モジュール。
sudo a2enmod proxy proxy_http headers proxy_wstunnel
次に、EteSyncの仮想ホストファイルを作成します。
sudo nano /etc/apache2/sites-available/etebase.conf
次の構成をファイルに入れます。 etebase.example.com
を置き換えます 実際のドメイン名で。このサブドメインのDNSAレコードを作成することを忘れないでください。実際のドメイン名をお持ちでない場合は、NameCheapにアクセスして購入することをお勧めします。価格は安く、whoisのプライバシー保護は一生無料です。
<VirtualHost *:80> ServerName etebase.example.com ErrorDocument 404 /404.html ErrorLog ${APACHE_LOG_DIR}/etebase_error.log CustomLog ${APACHE_LOG_DIR}/etebase_access.log combined ProxyPreserveHost On ProxyPass / http://127.0.0.1:8001/ ProxyPassReverse / http://127.0.0.1:8001/ Alias /static /home/username/etebase/static </VirtualHost>
ファイルを保存して閉じます。次に、この仮想ホストを有効にします。
sudo a2ensite etebase.conf
Apacheを再起動します
sudo systemctl restart apache2
これで、ドメイン名etebase.example.com
を使用してEteSyncWebインターフェイスにアクセスできます。 。
Nginx
Nginx Webサーバーを使用する場合は、Nginxをインストールします。
sudo apt install nginx
NginxforEteSyncで仮想ホストファイルを作成します。
sudo nano /etc/nginx/conf.d/etebase.conf
次の行をファイルに入れます。必要に応じてプレースホルダーを置き換えます。サブドメインのDNSAレコードを作成する必要があります。
upstream etebase { server unix:///tmp/etebase_server.sock; } server { listen 80; listen [::]:80; server_name etebase.example.com; charset utf-8; access_log /var/log/nginx/etebase.access; error_log /var/log/nginx/etebase.error; # max upload size client_max_body_size 75M; location /static/ { alias /home/username/etebase/static/; } location / { proxy_pass http://etebase; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; } }
ファイルを保存して閉じます。次に、Nginx構成をテストします。
sudo nginx -t
テストが成功した場合は、変更を有効にするためにNginxをリロードします。
sudo systemctl reload nginx
これで、etebase.example.com
でEteSyncWebインターフェイスにアクセスできます。 。
トラブルシューティング
bad request (400)
が表示された場合 EteSync Webインターフェースにアクセスしようとしたときにエラーが発生した場合は、etesyncサーバー名をallowd_hosts
に追加したことを確認してください。 etebase-server.ini
のリスト ファイル。次に、etebaseを再起動します(sudo systemctl restart etebase
。
etebase-server.iniでデバッグモードを有効にすることもできます ファイル、つまり変更
debug = false
宛先
debug = true
次に、etebaseを再起動します。
sudo systemctl restart etebase
次に、systemdサービスログを確認します。
sudo journalctl -eu etebase
ステップ6:HTTPSを有効にする
HTTPトラフィックを暗号化するには、Let’sEncryptから発行された無料のTLS証明書をインストールしてHTTPSを有効にします。次のコマンドを実行して、Let’s Encryptクライアント(certbot)をUbuntuサーバーにインストールします。
sudo apt install certbot
Apacheを使用する場合は、CertbotApacheプラグインもインストールする必要があります。
sudo apt install python3-certbot-apache
次に、次のコマンドを実行してTLS証明書を取得してインストールします。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d etebase.example.com
Nginxを使用する場合は、CertbotNginxプラグインもインストールする必要があります。
sudo apt install python3-certbot-nginx
次に、次のコマンドを実行してTLS証明書を取得してインストールします。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d etebase.yourdomain.com
場所:
-
--apache
:Apacheプラグインを使用してください。 -
--nginx
:nginxプラグインを使用してください。 -
--agree-tos
:利用規約に同意します。 --redirect
:301リダイレクトでHTTPSを強制します。-
--hsts
:すべてのHTTP応答にStrict-Transport-Securityヘッダーを追加します。ドメインに常にTLSを使用するようにブラウザを強制します。 SSL/TLSストリッピングから防御します。 -
--staple-ocsp
:OCSPステープリングを有効にします。有効なOCSP応答は、TLS中にサーバーが提供する証明書にホチキス止めされます。
これで、証明書が取得され、自動的にインストールされます。
ステップ7:ユーザーアカウントを作成する
スーパー管理者ユーザーを作成します。
./manage.py createsuperuser
次に、etebase.example.com/admin
にアクセスします 管理コンソールにログインします。次に、カレンダー、連絡先、タスク、メモの同期に使用する個々のユーザーアカウントを作成できます。 Etebaseは認証にゼロ知識証明を使用するため、EteSync管理コンソールでユーザーのパスワードを作成する必要がないことに注意してください。
次に、EteSyncを使用するようにクライアントを設定する必要があります。
UbuntuデスクトップにEvolutionEteSyncモジュールをインストールする方法
進化 GNOMEデスクトップ環境のデフォルトのグループウェアスイートです。以下を使用してUbuntuデスクトップにインストールできます:
sudo apt install evolution
EvolutionでEteSyncを使用するには、以下の手順に従って、Evolution用のEteSyncモジュールをインストールする必要があります。
libetebase
のクローンを作成します リポジトリ。
sudo apt install git git clone https://github.com/etesync/libetebase.git
新しく作成したディレクトリに移動します。
cd libetebase/
ソースからパッケージをビルドするために必要なパッケージをインストールします。
sudo apt install build-essential libssl-dev cargo
ソースパッケージをコンパイルします。
make
バイナリをインストールします。
sudo make install
次に、前のディレクトリに戻ります。
cd ..
Evolution-EteSync
のクローンを作成します リポジトリ。
git clone https://gitlab.gnome.org/GNOME/evolution-etesync
新しく作成したディレクトリに移動します。
cd evolution-etesync/
ソースからパッケージをビルドするために必要なパッケージをインストールします。
sudo apt install cmake intltool evolution-data-server-dev evolution-dev libedata-book1.2-dev libedata-cal2.0-dev libecal2.0-dev libebook1.2-dev
パッケージをコンパイルしてインストールします。
mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr .. make -j sudo make -j install
進化におけるEteSyncの使用
次に、UbuntuデスクトップでEvolutionアプリを起動します。 新規をクリックします ツールバーのボタンをクリックして、新しいコレクションアカウントを追加します 。
次に、EteSyncの使用名とサーバーアドレスを入力します。 https://
を追加する必要があることに注意してください サーバーアドレスのプレフィックスとして。 EteSyncアカウントを検索を選択します 他のすべてのオプションのチェックを外します。次に、検索をクリックします ボタン。
続行するには、パスワードの入力を求められます。これは実際にパスワードを設定する時間なので、パスワードを入力をクリックします リンクしてパスワードを設定します。
パスワードを入力したら、[再試行]ボタンをクリックすると、候補が1つ見つかります。 次へをクリックします ボタンをクリックして続行します。
NextCloudと同期
セルフホストのNextcloudサーバーがあり、カレンダー、タスク、または連絡先アプリをNextcloudサーバーにインストールしている場合は、Nextcloud DAVサーバーをEvolutionに追加して、同期できるようにすることができます。別のコレクションアカウントを追加するだけです Evolutionで、Nextcloudユーザー名とCalDAV / CardDAVアドレスを入力し、 CalDAV/CardDAVサーバーを検索するを選択します。 、他のすべてのオプションのチェックを外します。次に、Nextcloudのパスワードを入力します。 Nextcloud CalDAV/CardDAVアドレスはhttps://nextcloud.yourdomain.com/remote.php/dav
である必要があります 。
iOSEteSyncアプリの使用
iOSでカレンダー、連絡先、タスクを同期するには、まずiOSでCalDAV/CardDAVアカウントを設定する必要があります。 設定に移動します アプリ->カレンダー ->アカウント ->アカウントの追加 ->その他 、CalDAVおよびCardDAVアカウントを追加します。 CalDAVはカレンダーの同期に使用され、CardDAVはデバイス上の連絡先の同期に使用されます。
セルフホストのNextcloudサーバーをお持ちの場合は、Nextcloud CalDAV/CardDAVアカウントを使用できます。アカウントをお持ちでない場合は、偽のアカウントを使用してください。
次に、アプリストアからEteSyncアプリをインストールします。次に、EteSyncアカウントを追加します。
EteSyncアカウントにログインした後、設定に移動します EteSyncアプリのメニュー。 詳細strong> セクションで、連絡先の同期用のCardDAVアカウントを選択します カレンダーとリマインダーの同期用にCalDAVアカウントを選択します 。