immich: from other

This commit is contained in:
zhengyi 2024-02-29 22:05:55 +08:00
parent b8871ebcdb
commit d67bc1cbd4
11 changed files with 471 additions and 0 deletions

View File

@ -0,0 +1,9 @@
CONTAINER_NAME="immich"
PANEL_APP_PORT_HTTP="40194"
PANEL_DB_NAME="immich"
PANEL_DB_USER="postgres"
PANEL_DB_USER_PASSWORD="immich_BfcHCZ"
UPLOAD_LOCATION="./data/upload"
CACHE_PATH="./data/cache"
DB_PATH="./data/data"

View File

@ -0,0 +1,18 @@
# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables
# The location where your uploaded files are stored
UPLOAD_LOCATION=${UPLOAD_LOCATION}
# The Immich version to use. You can pin this to a specific version like "v1.71.0"
#IMMICH_VERSION=release
# Connection secret for postgres. You should change it to a random password
DB_PASSWORD=${PANEL_DB_USER_PASSWORD}
# The values below this line do not need to be changed
###################################################################################
DB_HOSTNAME=${CONTAINER_NAME}-postgres
DB_USERNAME=${PANEL_DB_USER}
DB_DATABASE_NAME=${PANEL_DB_NAME}
REDIS_HOSTNAME=${CONTAINER_NAME}-redis

View File

@ -0,0 +1,56 @@
additionalProperties:
formFields:
- default: 40194
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: ./data/upload
edit: true
envKey: UPLOAD_LOCATION
labelEn: Path to folder for uploading
labelZh: 上传用文件夹路径
required: true
type: text
- default: ./data/cache
edit: true
envKey: CACHE_PATH
labelEn: Cache folder path
labelZh: 缓存文件夹路径
required: true
type: text
- default: ./data/data
edit: true
envKey: DB_PATH
labelEn: Database folder path
labelZh: 数据库文件夹路径
required: true
type: text
- default: immich
edit: true
envKey: PANEL_DB_NAME
labelEn: Database
labelZh: 数据库名
required: true
rule: paramCommon
type: text
- default: postgres
edit: true
envKey: PANEL_DB_USER
labelEn: Postgres User
labelZh: Postgres 数据库用户
required: true
rule: paramCommon
type: text
- default: immich
edit: true
envKey: PANEL_DB_USER_PASSWORD
labelEn: Postgres Password
labelZh: Postgres 数据库用户密码
random: true
required: true
rule: paramComplexity
type: password

View File

@ -0,0 +1,85 @@
version: '3'
services:
immich-server:
container_name: ${CONTAINER_NAME}-server
restart: always
networks:
- 1panel-network
image: altran1502/immich-server:v1.97.0
command: [ "start.sh", "immich" ]
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- config.env
ports:
- ${PANEL_APP_PORT_HTTP}:3001
depends_on:
- immich-redis
- immich-database
labels:
createdBy: "Apps"
immich-microservices:
container_name: ${CONTAINER_NAME}-microservices
restart: always
networks:
- 1panel-network
image: altran1502/immich-server:v1.97.0
# extends:
# file: hwaccel.yml
# service: hwaccel
command: [ "start.sh", "microservices" ]
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- config.env
depends_on:
- immich-redis
- immich-database
labels:
createdBy: "Apps"
immich-machine-learning:
container_name: ${CONTAINER_NAME}-machine_learning
restart: always
networks:
- 1panel-network
image: altran1502/immich-machine-learning:v1.97.0
volumes:
- ${CACHE_PATH}:/cache
env_file:
- config.env
labels:
createdBy: "Apps"
immich-redis:
container_name: ${CONTAINER_NAME}-redis
restart: always
networks:
- 1panel-network
image: "redis:6.2-alpine@sha256:c5a607fb6e1bb15d32bbcf14db22787d19e428d59e31a5da67511b49bb0f1ccc"
labels:
createdBy: "Apps"
immich-database:
container_name: ${CONTAINER_NAME}-postgres
restart: always
networks:
- 1panel-network
image: "tensorchord/pgvecto-rs:pg14-v0.1.11@sha256:0335a1a22f8c5dd1b697f14f079934f5152eaaa216c09b61e293be285491f8ee"
env_file:
- config.env
environment:
- POSTGRES_PASSWORD=${PANEL_DB_USER_PASSWORD}
- POSTGRES_USER=${PANEL_DB_USER}
- POSTGRES_DB=${PANEL_DB_NAME}
volumes:
- ${DB_PATH}:/var/lib/postgresql/data
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

115
apps/immich/README.md Normal file
View File

@ -0,0 +1,115 @@
<p align="center">
<br/>
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/license-MIT-green.svg?color=3F51B5&style=for-the-badge&label=License&logoColor=000000&labelColor=ececec" alt="License: MIT"></a>
<a href="https://discord.gg/D8JsnBEuKb">
<img src="https://img.shields.io/discord/979116623879368755.svg?label=Discord&logo=Discord&style=for-the-badge&logoColor=000000&labelColor=ececec" alt="Discord"/>
</a>
<br/>
<br/>
</p>
<p align="center">
<img src="https://github.com/immich-app/immich/raw/main/design/immich-logo.svg" width="150" title="Login With Custom URL">
</p>
<h3 align="center">Immich - High performance self-hosted photo and video backup solution</h3>
<br/>
<br/>
<p align="center">
<a href="https://github.com/immich-app/immich/blob/main/README_ca_ES.md">Català</a>
<a href="https://github.com/immich-app/immich/blob/main/README_es_ES.md">Español</a>
<a href="https://github.com/immich-app/immich/blob/main/README_fr_FR.md">Français</a>
<a href="https://github.com/immich-app/immich/blob/main/README_it_IT.md">Italiano</a>
<a href="https://github.com/immich-app/immich/blob/main/README_ja_JP.md">日本語</a>
<a href="https://github.com/immich-app/immich/blob/main/README_ko_KR.md">한국어</a>
<a href="https://github.com/immich-app/immich/blob/main/README_de_DE.md">Deutsch</a>
<a href="https://github.com/immich-app/immich/blob/main/README_nl_NL.md">Nederlands</a>
<a href="https://github.com/immich-app/immich/blob/main/README_tr_TR.md">Türkçe</a>
<a href="https://github.com/immich-app/immich/blob/main/README_zh_CN.md">中文</a>
<a href="https://github.com/immich-app/immich/blob/main/README_ru_RU.md">Русский</a>
</p>
## Disclaimer
- ⚠️ The project is under **very active** development.
- ⚠️ Expect bugs and breaking changes.
- ⚠️ **Do not use the app as the only way to store your photos and videos.**
- ⚠️ Always follow [3-2-1](https://www.backblaze.com/blog/the-3-2-1-backup-strategy/) backup plan for your precious photos and videos!
## Content
- [Official Documentation](https://immich.app/docs)
- [Roadmap](https://github.com/orgs/immich-app/projects/1)
- [Demo](#demo)
- [Features](#features)
- [Introduction](https://immich.app/docs/overview/introduction)
- [Installation](https://immich.app/docs/install/requirements)
- [Contribution Guidelines](https://immich.app/docs/overview/support-the-project)
- [Support The Project](#support-the-project)
## Documentation
You can find the main documentation, including installation guides, at https://immich.app/.
## Demo
You can access the web demo at https://demo.immich.app
For the mobile app, you can use `https://demo.immich.app/api` for the `Server Endpoint URL`
```bash title="Demo Credential"
The credential
email: demo@immich.app
password: demo
```
```
Spec: Free-tier Oracle VM - Amsterdam - 2.4Ghz quad-core ARM64 CPU, 24GB RAM
```
## Features
| Features | Mobile | Web |
| -------------------------------------------- | ------ | --- |
| Upload and view videos and photos | Yes | Yes |
| Auto backup when the app is opened | Yes | N/A |
| Selective album(s) for backup | Yes | N/A |
| Download photos and videos to local device | Yes | Yes |
| Multi-user support | Yes | Yes |
| Album and Shared albums | Yes | Yes |
| Scrubbable/draggable scrollbar | Yes | Yes |
| Support raw formats | Yes | Yes |
| Metadata view (EXIF, map) | Yes | Yes |
| Search by metadata, objects, faces, and CLIP | Yes | Yes |
| Administrative functions (user management) | No | Yes |
| Background backup | Yes | N/A |
| Virtual scroll | Yes | Yes |
| OAuth support | Yes | Yes |
| API Keys | N/A | Yes |
| LivePhoto/MotionPhoto backup and playback | Yes | Yes |
| User-defined storage structure | Yes | Yes |
| Public Sharing | No | Yes |
| Archive and Favorites | Yes | Yes |
| Global Map | Yes | Yes |
| Partner Sharing | Yes | Yes |
| Facial recognition and clustering | Yes | Yes |
| Memories (x years ago) | Yes | Yes |
| Offline support | Yes | No |
| Read-only gallery | Yes | Yes |
| Stacked Photos | Yes | Yes |
## Support the project
I've committed to this project, and I will not stop. I will keep updating the docs, adding new features, and fixing bugs. But I can't do it alone. So I need your help to give me additional motivation to keep going.
As our hosts in the [selfhosted.show - In the episode 'The-organization-must-not-be-name is a Hostile Actor'](https://selfhosted.show/79?t=1418) said, this is a massive undertaking of what the team and I are doing. And I would love to someday be able to do this full-time, and I am asking for your help to make that happen.
If you feel like this is the right cause and the app is something you are seeing yourself using for a long time, please consider supporting the project with the option below.
### Donation
- [Monthly donation](https://github.com/sponsors/alextran1502) via GitHub Sponsors
- [One-time donation](https://github.com/sponsors/alextran1502?frequency=one-time&sponsor=alextran1502) via GitHub Sponsors
- [Liberapay](https://liberapay.com/alex.tran1502/)
- [buymeacoffee](https://www.buymeacoffee.com/altran1502)
- Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
- ZCash: u1smm4wvqegcp46zss2jf5xptchgeczp4rx7a0wu3mermf2wxahm26yyz5w9mw3f2p4emwlljxjumg774kgs8rntt9yags0whnzane4n67z4c7gppq4yyvcj404ne3r769prwzd9j8ntvqp44fa6d67sf7rmcfjmds3gmeceff4u8e92rh38nd30cr96xw6vfhk6scu4ws90ldzupr3sz

20
apps/immich/data.yml Normal file
View File

@ -0,0 +1,20 @@
name: Immich
tags:
- 工具
title: 高性能的自托管照片和视频备份方案
type: 工具
description: 高性能的自托管照片和视频备份方案
additionalProperties:
key: immich
name: Immich
tags:
- Tool
shortDescZh: 高性能的自托管照片和视频备份方案
shortDescEn: High performance self-hosted photo and video backup solution
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://immich.app
github: https://github.com/immich-app/immich
document: https://immich.app/docs

BIN
apps/immich/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -0,0 +1,9 @@
CONTAINER_NAME="immich"
PANEL_APP_PORT_HTTP="40194"
PANEL_DB_NAME="immich"
PANEL_DB_USER="postgres"
PANEL_DB_USER_PASSWORD="immich_BfcHCZ"
UPLOAD_LOCATION="./data/upload"
CACHE_PATH="./data/cache"
DB_PATH="./data/data"

View File

@ -0,0 +1,18 @@
# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables
# The location where your uploaded files are stored
UPLOAD_LOCATION=${UPLOAD_LOCATION}
# The Immich version to use. You can pin this to a specific version like "v1.71.0"
#IMMICH_VERSION=release
# Connection secret for postgres. You should change it to a random password
DB_PASSWORD=${PANEL_DB_USER_PASSWORD}
# The values below this line do not need to be changed
###################################################################################
DB_HOSTNAME=${CONTAINER_NAME}-postgres
DB_USERNAME=${PANEL_DB_USER}
DB_DATABASE_NAME=${PANEL_DB_NAME}
REDIS_HOSTNAME=${CONTAINER_NAME}-redis

View File

@ -0,0 +1,56 @@
additionalProperties:
formFields:
- default: 40194
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: ./data/upload
edit: true
envKey: UPLOAD_LOCATION
labelEn: Path to folder for uploading
labelZh: 上传用文件夹路径
required: true
type: text
- default: ./data/cache
edit: true
envKey: CACHE_PATH
labelEn: Cache folder path
labelZh: 缓存文件夹路径
required: true
type: text
- default: ./data/data
edit: true
envKey: DB_PATH
labelEn: Database folder path
labelZh: 数据库文件夹路径
required: true
type: text
- default: immich
edit: true
envKey: PANEL_DB_NAME
labelEn: Database
labelZh: 数据库名
required: true
rule: paramCommon
type: text
- default: postgres
edit: true
envKey: PANEL_DB_USER
labelEn: Postgres User
labelZh: Postgres 数据库用户
required: true
rule: paramCommon
type: text
- default: immich
edit: true
envKey: PANEL_DB_USER_PASSWORD
labelEn: Postgres Password
labelZh: Postgres 数据库用户密码
random: true
required: true
rule: paramComplexity
type: password

View File

@ -0,0 +1,85 @@
version: '3'
services:
immich-server:
container_name: ${CONTAINER_NAME}-server
restart: always
networks:
- 1panel-network
image: altran1502/immich-server:release
command: [ "start.sh", "immich" ]
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- config.env
ports:
- ${PANEL_APP_PORT_HTTP}:3001
depends_on:
- immich-redis
- immich-database
labels:
createdBy: "Apps"
immich-microservices:
container_name: ${CONTAINER_NAME}-microservices
restart: always
networks:
- 1panel-network
image: altran1502/immich-server:release
# extends:
# file: hwaccel.yml
# service: hwaccel
command: [ "start.sh", "microservices" ]
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- config.env
depends_on:
- immich-redis
- immich-database
labels:
createdBy: "Apps"
immich-machine-learning:
container_name: ${CONTAINER_NAME}-machine_learning
restart: always
networks:
- 1panel-network
image: altran1502/immich-machine-learning:release
volumes:
- ${CACHE_PATH}:/cache
env_file:
- config.env
labels:
createdBy: "Apps"
immich-redis:
container_name: ${CONTAINER_NAME}-redis
restart: always
networks:
- 1panel-network
image: "redis:6.2-alpine@sha256:c5a607fb6e1bb15d32bbcf14db22787d19e428d59e31a5da67511b49bb0f1ccc"
labels:
createdBy: "Apps"
immich-database:
container_name: ${CONTAINER_NAME}-postgres
restart: always
networks:
- 1panel-network
image: "tensorchord/pgvecto-rs:pg14-v0.1.11@sha256:0335a1a22f8c5dd1b697f14f079934f5152eaaa216c09b61e293be285491f8ee"
env_file:
- config.env
environment:
- POSTGRES_PASSWORD=${PANEL_DB_USER_PASSWORD}
- POSTGRES_USER=${PANEL_DB_USER}
- POSTGRES_DB=${PANEL_DB_NAME}
volumes:
- ${DB_PATH}:/var/lib/postgresql/data
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true