immich - 携帯電話から直接、自己ホスト型の写真とビデオのバックアップ ソリューション。

(Self-hosted photo and video backup solution directly from your mobile phone.)

Created at: 2022-02-03 23:56:27
Language: Dart
License: MIT

イミッヒ

自己ホスト型の高性能な写真とビデオのバックアップ ソリューション。

ライセンス: MIT Github にスターを付ける Android ビルド iOS ビルド ビルド ステータス

コンテンツ

特徴

⚠️警告:生産の準備ができていません! 資産の保管には使用しないでください。このプロジェクトは大規模な開発が行われており、継続的な機能、機能、および API の変更が行われます。

特徴 モバイル ウェブ
ビデオや写真をアップロードして表示する はい はい
アプリ起動時の自動バックアップ はい なし
バックアップ用の選択アルバム はい なし
写真やビデオをローカル デバイスにダウンロードする はい はい
マルチユーザー サポート はい はい
アルバム はい はい
共有アルバム はい はい
ドラッグ可能なスクロールバーによるクイックナビゲーション はい はい
RAW (HEIC、HEIF、DNG、Apple ProRaw) をサポート はい はい
メタデータ ビュー (EXIF、マップ) はい はい
メタデータ、オブジェクト、画像タグで検索 はい いいえ
管理機能(ユーザー管理) なし はい
バックグラウンド バックアップ アンドロイド なし
仮想スクロール なし はい

スクリーンショット

モバイル

カスタム URL でログイン

バックアップ設定

バックアップの選択

ホーム画面

厳選された検索

共有アルバム

EXIF情報

~4000 枚の画像/動画を読み込んでいます

ウェブ

ホーム ダッシュボード 画像表示

プロジェクトの詳細

💾システム要求

  • OS : 推奨される UNIX ベースのオペレーティング システム (Ubuntu、Debian、MacOS など)。

  • RAM : 2GB 以上、できれば 4GB。

  • コア: 少なくとも 2 コア、推奨は 4 コア。

🔩技術スタック

Immich を構成するいくつかのサービスがあります。

  1. NestJs - アプリケーションのバックエンド
  2. SvelteKit - アプリケーションの Web フロントエンド
  3. PostgreSQL - アプリケーションのメイン データベース
  4. Redis - Docker インスタンスとバックグラウンド タスクのメッセージ キュー間で Websocket インスタンスを共有するため。
  5. Nginx - 負荷分散と最適化されたファイルのアップロード.
  6. TensorFlow - オブジェクト検出 (COCO SSD) と画像分類 (ImageNet)。

インストール

注: Immich の前でリバース プロキシ (NGINX など) を使用する場合、大きなファイルをアップロードできるようにするために、リバース プロキシに追加の構成が必要になる場合があります (NGINX の場合は client_max_body_size など)。

ワンステップ インストールのテスト (本番環境には推奨されません)

⚠️ このインストール方法は、ユーザーのニーズに合わせてさらにカスタマイズする前に、Immich を評価するためのものです。

該当するシステム: Ubuntu、Debian、MacOS

  • シェルで、選択したディレクトリから次のコマンドを実行します。
curl -o- https://raw.githubusercontent.com/immich-app/immich/main/install.sh | bash

このスクリプトは、

docker-compose.yml
ファイルとファイルをダウンロードし
.env
、必要な情報を入力して、最後に
docker-compose up
or
docker compose up
(Docker のバージョンに基づく) コマンドを実行します。

Web アプリケーションは で入手でき

http://<machine-ip-address>:2283
、モバイル アプリのサーバー URL は になります
http://<machine-ip-address>:2283/api

バックアップ ファイルの保存に使用されるディレクトリは

./immich-app/immich-data
.


カスタム インストール (推奨)

ステップ 1 - 必要なファイルをダウンロードする

  • というディレクトリを作成し、

    immich-app
    そこに cd します。

  • 得る

    docker-compose.yml

wget https://raw.githubusercontent.com/immich-app/immich/main/docker/docker-compose.yml
  • 得る
    .env
wget -O .env https://raw.githubusercontent.com/immich-app/immich/main/docker/.env.example

ステップ 2 - .env ファイルにカスタム情報を入力する

サンプル

.env
ファイルを見る

  • 必要に応じて、カスタム データベース情報を入力します。
  • バックアップ
    UPLOAD_LOCATION
    資産を保存するための優先場所として入力します。
  • のシークレット値を
    JWT_SECRET
    入力します。次のコマンドを使用できます。
    openssl rand -base64 128
  • [オプション] 逆ジオコーディングを使用するために Mapbox 値を設定します。

ステップ 3 - コンテナーを開始する

  • docker-compose up
    または
    docker compose up
    (docker のバージョンに基づく) を実行します。

ステップ 4 - 管理者ユーザーの登録

  • で Web に移動し
    http://<machine-ip-address>:2283
    、プロンプトに従って管理者ユーザーを登録します。

  • 管理ページからユーザーを追加および管理できます。

ステップ 5 - モバイル アプリにアクセスする

  • のサーバー エンドポイント URL を使用してモバイル アプリにログインします。
    http://<machine-ip-address>:2283/api


モバイルアプリ

F-ドロイド グーグルプレイ iOS
F-Droidで入手

アプリのバージョンは、審査プロセスのために最新のリリースよりも遅れている可能性があります。


発達

.env
次のコマンドを使用してファイルにデータを入力した後、プロジェクトのルートから開発環境を開始できます。

make dev # required Makefile installed on the system.

すべてのサーバーと Web コンテナーは、迅速なフィードバック ループのためのホット リロードです。

開発者向けの注意事項

1 - OpenAPI

OpenAPI は、クライアント (Typescript、Dart) SDK を生成するために使用されます。ここ

openapi-generator-cli
でインストールできます。新しいエンドポイントを追加するか既存のエンドポイントを変更する場合は、以下の生成コマンドを実行してクライアント SDK を更新する必要があります。

npm run api:generate # Run from server directory

生成されたクライアント SDK は、

web/src/api
for Typescript SDK および
mobile/openapi
for Dart SDK にあります。


サポート

このアプリが好きで、役に立ち、AppStore への公開費用を相殺するために私をサポートしたい場合は、Github スポンサーから1 回または毎月の寄付でプロジェクトを後援することができます。

次のアドレスで暗号通貨を使用して寄付することもできます。

ビットコイン:

1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX

カルダノ

addr1qyy567vqhqrr3p7vpszr5p264gw89sqcwts2z8wqy4yek87cdmy79zazyjp7tmwhkluhk3krvslkzfvg0h43tytp3f5q49nycc

これは、アプリの開発を続けるモチベーションと励ましを与える有意義な方法でもあります。

乾杯!🎉


既知の問題点

TensorFlow ビルドの問題

これは、正しくない Promox セットアップの既知の問題です。

TensorFlow は古い CPU アーキテクチャでは動作しません。AVX および AVX2 命令セットを備えた CPU が必要です。上記の docker-compose コマンドを実行しているときにエラーが発生した場合は

illegal instruction core dump
、コマンドで CPU フラグを確認し、以下が表示されていることを確認して
AVX
ください
AVX2

more /proc/cpuinfo | grep flags

Promox で仮想化を実行している場合、VM でフラグが有効になっていません。

VM のハードウェア タブで、CPU タイプを から

kvm64
に変更する必要があります。
host

Hardware > Processors > Edit > Advanced > Type (dropdown menu) > host