「Ente サーバー」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) |
Kusanaginoturugi (トーク | 投稿記録) |
||
142行目: | 142行目: | ||
変更を反映させるために {{ic|nginx.service}} を[[再起動]]します。 |
変更を反映させるために {{ic|nginx.service}} を[[再起動]]します。 |
||
− | === |
+ | === ente-server と ente-cli の設定 === |
+ | * クライアントに {{ic|ente-cli}} をインストールします: |
||
− | {{Style|Last section to adjust.|section=Cleanup}} |
||
+ | ** {{AUR|ente-cli-bin}} パッケージを[[インストール]] |
||
− | |||
− | * |
+ | * クライアントに {{ic|ente-cli}} 設定を追加します: |
− | ** [[Install]] the {{AUR|ente-cli-bin}} package |
||
− | * Add {{ic|ente-cli}} config on the client: |
||
{{bc|$ mkdir -p ~/.ente/export }} |
{{bc|$ mkdir -p ~/.ente/export }} |
||
{{hc|~/.ente/config.yaml| |
{{hc|~/.ente/config.yaml| |
||
endpoint: |
endpoint: |
||
− | api: "''<nowiki>https://your_public_domain.tld</nowiki>''" |
+ | api: "''<nowiki>https://your_public_domain.tld</nowiki>''" |
+ | }} |
||
− | * Add a user account via the photos mobile app or web app on the client, using a custom endpoint: |
||
+ | * 写真モバイルアプリまたは Web アプリでカスタムエンドポイントを使用してユーザーアカウントを追加します: |
||
− | ** In the photos mobile app: |
||
+ | ** 写真モバイルアプリで: |
||
− | *** Click 7 times on the main screen to enable developers mode |
||
+ | *** 開発者モードを有効にするためにメイン画面を 7 回タップします |
||
− | *** Define your custom '''Ente''' server API endpoint: |
||
+ | *** カスタム '''Ente''' サーバー API エンドポイントを定義します: |
||
{{bc| URL: ''<nowiki>https://your_public_domain.tld</nowiki>''}} |
{{bc| URL: ''<nowiki>https://your_public_domain.tld</nowiki>''}} |
||
+ | ** クライアントの Web アプリで: |
||
− | ** In the web app on the client: |
||
− | {{bc| $ git clone https://github.com/ente-io/ente.git |
+ | {{bc|1= $ git clone https://github.com/ente-io/ente.git |
cd ente/web |
cd ente/web |
||
git submodule update --init --recursive |
git submodule update --init --recursive |
||
yarn install |
yarn install |
||
− | NEXT_PUBLIC_ENTE_ENDPOINT |
+ | NEXT_PUBLIC_ENTE_ENDPOINT=''<nowiki>https://your_public_domain.tld</nowiki>'' yarn dev:photos}} |
− | * |
+ | * 写真アプリまたは Web アプリ (''http://localhost:3000'') の指示に従って新しいユーザーを作成します |
+ | * OTP コードを取得します: |
||
− | * Obtain the OTP code: |
||
+ | ** メールで: |
||
− | ** Via email: |
||
− | *** |
+ | *** {{ic|/etc/ente-server/local.yaml}} の {{ic|smtp}} セクションを設定します |
− | *** |
+ | *** 設定された [https://man.archlinux.org/man/smtp.1.en SMTP] サーバーが動作していることを確認します |
+ | *** メールが届くのを待ち、OTP コードをコピーします |
||
− | *** Wait for the mail to arrive and copy the OTP code |
||
− | ** |
+ | ** ente-server ログから: |
*** {{bc|# journalctl -u ente-server {{!}} grep SendEmailOTT {{!}} tail -n 1}} |
*** {{bc|# journalctl -u ente-server {{!}} grep SendEmailOTT {{!}} tail -n 1}} |
||
+ | * 新規ユーザーのアカウント ID を取得します: |
||
− | * Obtain the new users account ID: |
||
{{bc| # psql -U ente ente-server -c 'select user_id from users order by user_id desc limit 1;'}} |
{{bc| # psql -U ente ente-server -c 'select user_id from users order by user_id desc limit 1;'}} |
||
+ | * このユーザーを管理者として設定します: |
||
− | * Configure this user as the admin: |
||
{{hc|/etc/ente-server/local.yaml| |
{{hc|/etc/ente-server/local.yaml| |
||
internal: |
internal: |
||
admin: [''ADD_USER_ID_HERE'']}} |
admin: [''ADD_USER_ID_HERE'']}} |
||
− | * |
+ | * 新しい管理者権限を有効にするために {{ic|ente-server.service}} を[[再起動]]します |
− | * |
+ | * クライアントで {{ic|ente-cli}} 内のこの管理者を設定します: |
{{bc| $ ente account add |
{{bc| $ ente account add |
||
photos |
photos |
2024年5月6日 (月) 20:10時点における版
関連記事
Ente サーバー は、Ente (モバイル) クライアントに暗号化されたデータの塊を保存・提供するサーバー部分です。クライアントは暗号化されたデータを送受信し、それが Ente サーバーに届き、ローカルの MinIO オブジェクト ストレージ サービスを通じて保存・読み取りが行われます。
例えば、Ente フォト クライアントを使用すると、クライアントは写真を暗号化し、それらはサーバーに保存されます。後に、クライアントは暗号化された写真を検索し、ローカルで復号できます (エンドツーエンド暗号化)。クライアント、もしくはクライアントが写真を共有した相手のみが暗号鍵を持っているため、データを復号して実際に写真を見ることができるのはその人たちだけであり、サーバーはその鍵の情報を持っていないため見ることができません。
目次
インストール
ente-server-gitAUR パッケージは、デフォルトで提供される Docker 化された Ente サーバーとは異なり、セルフホスティング用に設計されています。Docker 化またはホスティングソリューションが必要な場合は、ente.io を参照してください。
まず、ente-server-gitAUR パッケージをインストールしてください。
セルフホストのサーバー スペースは容量が限られていることが多いため、ente-server-gitAUR パッケージは、古くてリンクされていない Ente サーバー MinIO オブジェクトをより迅速にクリーンアップするように変更されています。デフォルトの Ente サーバーは通常 45 日ごとにオブジェクトをクリーンアップしますが、このパッケージではその期間が 5 分ごとに短縮されています。
Ente サーバーを稼働させるには、PostgreSQL データベース (Ente オブジェクトのメタデータやユーザーデータの保存用) と MinIO バケット (暗号化されたオブジェクトデータの保存用) が必要です。また、Ente サーバーにアクセスするための HTTPS プロキシとして Nginx の使用が推奨されます。最後に、ente-cli ツールを使うと、Ente サーバーのアカウントの容量制限や有効期限の更新が簡単に行えます。
これらの必要なコンポーネントをインストールするには、オプションの依存関係としてリストされているパッケージをインストールすることが推奨されます。同じホストにインストールする場合は、依存パッケージとしてインストールするのが望ましいです。例えば、これらのパッケージをインストールする際、pacman の場合は --asdeps
オプションを使用し、または yayAUR でインストールすることができます。
参考までに、以下のパッケージがオプションの依存関係としてリストされています。
minio
minio-client
nginx
postgresql
設定
MinIO のセットアップ
設定ファイルを以下のように編集してください:
/etc/minio/minio.conf
MINIO_VOLUMES="/srv/minio/data" MINIO_ROOT_USER=minio MINIO_ROOT_PASSWORD='YOUR-STRONG-MINIO-ROOT-PASSWORD' MINIO_OPTS="--address your_public_domain.tld:3200 --console-address 127.0.0.1:3201"
minio.service
を有効化/起動します。
mcli コマンドを使って (minio ユーザーとして) MinIO ente-server バケットを作成します:
# cd /srv/minio/data [minio]$ mcli mb -p ente-server
PostgreSQL のセットアップ
postgres ユーザーとしてデータベースを初期化します:
[postgres]$ initdb --locale en_US.UTF-8 -D '/var/lib/postgres/data' --data-checksums --auth=scram-sha-256 --pwprompt
AF_UNIX ソケットのみに接続するように設定してください:
/var/lib/postgres/data/postgresql.conf
listen_addresses = '' # AF_UNIX Socket only
postgresql.service
を編集して、PostgreSQL ユーザーまたはグループにソケットアクセスを制限します:
/etc/systemd/system/postgresql.d/socket-access-restriction.conf
[Service] RuntimeDirectoryMode=750
ente
を postgres
ユーザーグループ に追加し、postgresql.service
を有効化/起動します。
PostgreSQL データベースユーザーと、このユーザーが所有するデータベースを作成します (新しいパスワードを 2 回入力し、次に新しいアカウントを保存するために postgres パスワードを指定します):
[postgres]$ createuser -P ente
次に、新しいデータベースを作成するために postgres パスワードを指定します:
[postgres]$ createdb -T template0 -O ente -E unicode ente-server
ente-server の起動
MinIO バケットの詳細を追加します:
/etc/ente-server/local.yaml
b2-eu-cen: key: minio secret: "YOUR-STRONG-MINIO-ROOT-PASSWORD" endpoint: your_public_domain.tld:3200 region: eu-central-2 bucket: ente-server
PostgreSQL の詳細を追加します:
/etc/ente-server/local.yaml
db: host: /run/postgresql port: 5432 name: ente-server user: ente password: "YOUR-STRONG-ENTE-DATABASE-USER-PASSWORD"
ente-server-gen-random-keys コマンドを使って新しい秘密鍵を生成し、/etc/ente-server/local.yaml
設定ファイルのデフォルト値の代わりにこれらの値を使用してください。
your_public_domain.tld の IP アドレスにアクセスできるように ente-server.service
を編集します (デフォルトでは、サービスは localhost からのアクセスのみを許可しています):
[Service] IPAddressAllow=IP_address_of_your_public_domain.tld
ente-server.service
を有効化/起動します。
Nginx プロキシの設定
サンプルの Nginx 設定ファイルとそれに付随する HTTP(S) セキュリティヘッダーファイルを、Nginx の設定ディレクトリにコピーします:
# cp -v /usr/lib/ente-server/ente-server-nginx.conf /etc/nginx/ # cp -v /usr/lib/ente-server/http*security_headers.conf /etc/nginx/
このサンプル設定ファイルを編集し、your_public_domain.tld を実際のパブリックドメイン名に置き換えてください。
Let's Encrypt の証明書 (または他のプロバイダーからの SSL 証明書) がまだない場合はリクエストしてください:
# certbot certonly --email your_email --agree-tos --preferred-challenge http --webroot -w /var/lib/letsencrypt -d your_public_domain.tld
ente-server 設定を含む include
ステートメントを Nginx の http
構成ファイルに追加します:
/etc/nginx/nginx.conf
http { include /etc/nginx/ente-server-nginx.conf }
パーミッションを修正します:
# chmod 644 /etc/nginx/ente-server-nginx.conf # chmod 644 /etc/nginx/http*security_headers.conf
変更を反映させるために nginx.service
を再起動します。
ente-server と ente-cli の設定
- クライアントに
ente-cli
をインストールします:- ente-cli-binAUR パッケージをインストール
- クライアントに
ente-cli
設定を追加します:
$ mkdir -p ~/.ente/export
~/.ente/config.yaml
endpoint: api: "https://your_public_domain.tld"
- 写真モバイルアプリまたは Web アプリでカスタムエンドポイントを使用してユーザーアカウントを追加します:
- 写真モバイルアプリで:
- 開発者モードを有効にするためにメイン画面を 7 回タップします
- カスタム Ente サーバー API エンドポイントを定義します:
- 写真モバイルアプリで:
URL: https://your_public_domain.tld
- クライアントの Web アプリで:
$ git clone https://github.com/ente-io/ente.git cd ente/web git submodule update --init --recursive yarn install NEXT_PUBLIC_ENTE_ENDPOINT=https://your_public_domain.tld yarn dev:photos
- 写真アプリまたは Web アプリ (http://localhost:3000) の指示に従って新しいユーザーを作成します
- OTP コードを取得します:
- メールで:
/etc/ente-server/local.yaml
のsmtp
セクションを設定します- 設定された SMTP サーバーが動作していることを確認します
- メールが届くのを待ち、OTP コードをコピーします
- ente-server ログから:
# journalctl -u ente-server | grep SendEmailOTT | tail -n 1
- メールで:
- 新規ユーザーのアカウント ID を取得します:
# psql -U ente ente-server -c 'select user_id from users order by user_id desc limit 1;'
- このユーザーを管理者として設定します:
/etc/ente-server/local.yaml
internal: admin: [ADD_USER_ID_HERE]
- 新しい管理者権限を有効にするために
ente-server.service
を再起動します - クライアントで
ente-cli
内のこの管理者を設定します:
$ ente account add photos ~/.ente/export email_address_of_admin_account password_of_admin_account
Increasing user storage and account expiry limit
- Use ente-cli to increase storage limit with 100 TB and expiry with 100 years:
ente admin update-subscription -u "user@domain.tld"
(Optional) Copy and apply AppArmor profile
An AppArmor profile has been provided for those that wish to limit the access the ente-server binary has using AppArmor. Copy and apply this profile as follows (assuming that AppArmor has already been installed and enabled):
# install -Dvm600 -o root -g root /usr/lib/ente-server/usr.bin.ente-server -t /etc/apparmor.d/ # aa-enforce /usr/bin/ente-server
(Optional) Configure Firewall
If a host firewall like iptables or nftables has been enabled and configured, make sure the following is allowed:
- Traffic on
localhost
- Traffic from your Ente (mobile) client to TCP port
443
to reach Nginx - Traffic from your Ente (mobile) client to TCP port
3200
to reach the MinIO API port
Files
The ente-server-gitAUR package contains the ente-server(1) man page that lists and explains all files that are installed by this package.
See also
- Upstream Repository: ente.io Ente Server Repository