# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Immich 完整版(含 Machine Learning)
spec:
    description: High performance self-hosted photo and video management solution.
    icon: https://avatars.githubusercontent.com/u/109746326?s=200&v=4
    tags:
        - Photo Management
        - AI
    readme: |
        # Immich
        High performance self-hosted photo and video management solution.
        ## Machine Learning Setup
        As Immich does not support setting the Machine Learning URL via environment variables, manual setup is required.
        ### Setup Steps
        1. After initializing the Immich service, log in with the admin account.
        2. Click on the user icon in the top right corner and select "Admin".
        3. In the left menu, select "Settings".
        4. Select "Machine Learning Settings".
        5. Remove the default URL and change it to "http://immich-ml.zeabur.internal:3003"
    services:
        - name: redis
          icon: https://raw.githubusercontent.com/zeabur/service-icons/main/marketplace/redis.svg
          template: PREBUILT
          spec:
            id: redis
            source:
                image: redis/redis-stack-server:latest
            ports:
                - id: database
                  port: 6379
                  type: TCP
            volumes:
                - id: data
                  dir: /data
            instructions:
                - title: Command to connect to your Redis
                  content: redis-cli -h ${PORT_FORWARDED_HOSTNAME} -p ${DATABASE_PORT_FORWARDED_PORT} -a ${REDIS_PASSWORD}
                - title: Redis Connection String
                  content: redis://:${REDIS_PASSWORD}@${PORT_FORWARDED_HOSTNAME}:${DATABASE_PORT_FORWARDED_PORT}
                - title: Redis password
                  content: ${REDIS_PASSWORD}
                - title: Redis host
                  content: ${PORT_FORWARDED_HOSTNAME}
                - title: Redis port
                  content: ${DATABASE_PORT_FORWARDED_PORT}
            env:
                CONFFILE:
                    default: /etc/redis-stack.conf
                REDIS_ARGS:
                    default: --requirepass ${REDIS_PASSWORD}
                REDIS_CONNECTION_STRING:
                    default: redis://:${REDIS_PASSWORD}@${REDIS_HOST}:${REDIS_PORT}
                    expose: true
                REDIS_HOST:
                    default: ${CONTAINER_HOSTNAME}
                    expose: true
                REDIS_PASSWORD:
                    default: ${PASSWORD}
                    expose: true
                REDIS_PORT:
                    default: ${DATABASE_PORT}
                    expose: true
                REDIS_URI:
                    default: ${REDIS_CONNECTION_STRING}
                    expose: true
            configs:
                - path: /etc/redis-stack.conf
                  template: |
                    port 6379
                    daemonize no
                  permission: null
                  envsubst: null
        - name: database
          icon: https://raw.githubusercontent.com/zeabur/service-icons/main/marketplace/postgresql.svg
          template: PREBUILT
          spec:
            id: database
            source:
                image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
            ports:
                - id: database
                  port: 5432
                  type: TCP
            volumes:
                - id: data
                  dir: /var/lib/postgresql/data
            instructions:
                - title: Connection String
                  content: postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@${PORT_FORWARDED_HOSTNAME}:${DATABASE_PORT_FORWARDED_PORT}/${POSTGRES_DATABASE}
                - title: PostgreSQL Connect Command
                  content: psql "postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@${PORT_FORWARDED_HOSTNAME}:${DATABASE_PORT_FORWARDED_PORT}/${POSTGRES_DATABASE}"
                - title: PostgreSQL username
                  content: ${POSTGRES_USERNAME}
                - title: PostgresSQL password
                  content: ${POSTGRES_PASSWORD}
                - title: PostgresSQL database
                  content: ${POSTGRES_DATABASE}
                - title: PostgreSQL host
                  content: ${PORT_FORWARDED_HOSTNAME}
                - title: PostgreSQL port
                  content: ${DATABASE_PORT_FORWARDED_PORT}
            env:
                PGDATA:
                    default: /var/lib/postgresql/data/pgdata
                POSTGRES_CONNECTION_STRING:
                    default: postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DATABASE}
                    expose: true
                POSTGRES_DATABASE:
                    default: ${POSTGRES_DB}
                    expose: true
                POSTGRES_DB:
                    default: zeabur
                POSTGRES_HOST:
                    default: ${CONTAINER_HOSTNAME}
                    expose: true
                POSTGRES_PASSWORD:
                    default: ${PASSWORD}
                    expose: true
                POSTGRES_PORT:
                    default: ${DATABASE_PORT}
                    expose: true
                POSTGRES_URI:
                    default: ${POSTGRES_CONNECTION_STRING}
                    expose: true
                POSTGRES_USER:
                    default: root
                POSTGRES_USERNAME:
                    default: ${POSTGRES_USER}
                    expose: true
        - name: immich-server
          icon: https://avatars.githubusercontent.com/u/109746326?s=200&v=4
          template: PREBUILT
          spec:
            id: immich-server
            source:
                image: ghcr.io/immich-app/immich-server:release
            ports:
                - id: web
                  port: 2283
                  type: HTTP
            volumes:
                - id: upload
                  dir: /usr/src/app/upload
            env:
                DB_DATABASE_NAME:
                    default: ${POSTGRES_DATABASE}
                DB_PASSWORD:
                    default: ${POSTGRES_PASSWORD}
                DB_USERNAME:
                    default: ${POSTGRES_USERNAME}
                IMMICH_VERSION:
                    default: release
                TZ:
                    default: Asia/Taipei
        - name: immich-ML
          icon: https://avatars.githubusercontent.com/u/109746326?s=200&v=4
          template: PREBUILT
          spec:
            id: immich-ml
            source:
                image: ghcr.io/immich-app/immich-machine-learning:release
            ports:
                - id: ml
                  port: 3003
                  type: HTTP
            env: {}
            configs: []
            portForwarding:
                enabled: false
localization:
    ja-JP:
        description: 高性能なセルフホスト型の写真およびビデオ管理ソリューション
        readme: |
            # Immich

            高性能なセルフホスト型の写真およびビデオ管理ソリューション。

            ## 機械学習の設定

            Immich は環境変数で機械学習の URL を設定できないため、手動で設定する必要があります。

            ### 設定手順
            1. Immich サービスを初期化した後、管理者アカウントでログインします。
            2. 右上のユーザーアイコンをクリックし、「管理」を選択します。
            3. 左側のメニューで「設定」を選択します。
            4. 「機械学習の設定」を選択します。
            5. デフォルトの URL を削除し、「 http://immich-ml.zeabur.internal:3003 」に変更します。
    zh-CN:
        description: 高性能自建照片和视频管理解决方案
        readme: |
            # Immich

            高性能自建照片和视频管理解决方案。

            ## 机器学习 设置

            由于 Immich 不支持通过环境变量设置机器学习 的网址，因此需要手动进行设置。

            ### 设置步骤
            1. 初始化 Immich 服务后，使用管理员账号登录。
            2. 点击右上角的用户图标，选择“管理”。
            3. 在左侧菜单中，选择“设置”。
            4. 选择“机器学习 设置”。
            5. 删除默认的网址，改为 「http://immich-ml.zeabur.internal:3003」
    zh-TW:
        description: 高效能自架照片和影片管理解決方案
        readme: |
            # Immich

            高效能自架照片和影片管理解決方案。

            ## Machine Learning 設定

            受限於 Immich 不提供用環境變數設定 Machine Learning 的網址，所以需要手動設定。

            ### 設定步驟
            1. 初始化 Immich 服務後，使用管理員帳號登入。
            2. 點擊右上角的使用者圖示，選擇「管理」。
            3. 在左側選單中，選擇「設定」。
            4. 選擇「機器學習設定」。
            5. 把預設的網址移除，改成 「http://immich-ml.zeabur.internal:3003」
