diff --git a/apps/immich/1.92.1/.env.sample b/apps/immich/1.92.1/.env.sample new file mode 100644 index 00000000..c66d440c --- /dev/null +++ b/apps/immich/1.92.1/.env.sample @@ -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" \ No newline at end of file diff --git a/apps/immich/1.92.1/config.env b/apps/immich/1.92.1/config.env new file mode 100644 index 00000000..041d94a0 --- /dev/null +++ b/apps/immich/1.92.1/config.env @@ -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 diff --git a/apps/immich/1.92.1/data.yml b/apps/immich/1.92.1/data.yml new file mode 100644 index 00000000..6e874e62 --- /dev/null +++ b/apps/immich/1.92.1/data.yml @@ -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 \ No newline at end of file diff --git a/apps/immich/1.92.1/docker-compose.yml b/apps/immich/1.92.1/docker-compose.yml new file mode 100644 index 00000000..c46d6c2b --- /dev/null +++ b/apps/immich/1.92.1/docker-compose.yml @@ -0,0 +1,85 @@ +version: '3' +services: + immich-server: + container_name: ${CONTAINER_NAME}-server + restart: always + networks: + - 1panel-network + image: altran1502/immich-server:v1.92.1 + 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.92.1 + # 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.92.1 + 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 \ No newline at end of file diff --git a/apps/immich/README.md b/apps/immich/README.md new file mode 100644 index 00000000..b55b7e76 --- /dev/null +++ b/apps/immich/README.md @@ -0,0 +1,115 @@ +
+
+
+
+
+
+
+
+
+
+
+ Català + Español + Français + Italiano + 日本語 + 한국어 + Deutsch + Nederlands + Türkçe + 中文 + Русский +
+ +## 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 diff --git a/apps/immich/data.yml b/apps/immich/data.yml new file mode 100644 index 00000000..4ba8d7b8 --- /dev/null +++ b/apps/immich/data.yml @@ -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 diff --git a/apps/immich/logo.png b/apps/immich/logo.png new file mode 100644 index 00000000..4fa7d860 Binary files /dev/null and b/apps/immich/logo.png differ diff --git a/apps/immich/release/.env.sample b/apps/immich/release/.env.sample new file mode 100644 index 00000000..c66d440c --- /dev/null +++ b/apps/immich/release/.env.sample @@ -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" \ No newline at end of file diff --git a/apps/immich/release/config.env b/apps/immich/release/config.env new file mode 100644 index 00000000..041d94a0 --- /dev/null +++ b/apps/immich/release/config.env @@ -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 diff --git a/apps/immich/release/data.yml b/apps/immich/release/data.yml new file mode 100644 index 00000000..6e874e62 --- /dev/null +++ b/apps/immich/release/data.yml @@ -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 \ No newline at end of file diff --git a/apps/immich/release/docker-compose.yml b/apps/immich/release/docker-compose.yml new file mode 100644 index 00000000..534100de --- /dev/null +++ b/apps/immich/release/docker-compose.yml @@ -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 \ No newline at end of file