summaryrefslogtreecommitdiffhomepage
path: root/public/v4/apps/immich.yml
blob: 8efce1883703bf3051c9f314a745df07501e780b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
captainVersion: 4

services:
    $$cap_appname-server:
        caproverExtra:
            notExposeAsWebApp: 'true'
            dockerfileLines:
                - FROM ghcr.io/immich-app/immich-server:$$cap_version
                - ENTRYPOINT ["/bin/sh", "./start-server.sh"]
        environment:
            NODE_ENV: production
            DB_PASSWORD: $$cap_app_db_pass
            DB_USERNAME: $$cap_app_db_user
            DB_DATABASE_NAME: $$cap_app_db_name
            DB_HOSTNAME: srv-captain--$$cap_appname-db
            TYPESENSE_API_KEY: $$cap_typesense_api_key
            TYPESENSE_HOST: srv-captain--$$cap_appname-typesense
            REDIS_HOSTNAME: srv-captain--$$cap_appname-redis
            UPLOAD_LOCATION: $$cap_app_upload_location
            IMMICH_WEB_URL: http://srv-captain--$$cap_appname-web:3000
            IMMICH_SERVER_URL: http://srv-captain--$$cap_appname-server:3001
            IMMICH_MACHINE_LEARNING_URL: http://srv-captain--$$cap_appname-machine-learning:3003
        volumes:
            - $$cap_app_upload_location:/usr/src/app/upload
        depends_on:
            - $$cap_appname-redis
            - $$cap_appname-db
            - $$cap_appname-typesense

    $$cap_appname-microservices:
        caproverExtra:
            notExposeAsWebApp: 'true'
            dockerfileLines:
                - FROM ghcr.io/immich-app/immich-server:$$cap_version
                - ENTRYPOINT ["/bin/sh", "./start-microservices.sh"]
        environment:
            NODE_ENV: production
            DB_PASSWORD: $$cap_app_db_pass
            DB_USERNAME: $$cap_app_db_user
            DB_DATABASE_NAME: $$cap_app_db_name
            DB_HOSTNAME: srv-captain--$$cap_appname-db
            TYPESENSE_API_KEY: $$cap_typesense_api_key
            TYPESENSE_HOST: srv-captain--$$cap_appname-typesense
            REDIS_HOSTNAME: srv-captain--$$cap_appname-redis
            UPLOAD_LOCATION: $$cap_app_upload_location
            IMMICH_WEB_URL: http://srv-captain--$$cap_appname-web:3000
            IMMICH_SERVER_URL: http://srv-captain--$$cap_appname-server:3001
            IMMICH_MACHINE_LEARNING_URL: http://srv-captain--$$cap_appname-machine-learning:3003
        volumes:
            - $$cap_app_upload_location:/usr/src/app/upload
        depends_on:
            - $$cap_appname-redis
            - $$cap_appname-db
            - $$cap_appname-typesense

    $$cap_appname-machine-learning:
        caproverExtra:
            notExposeAsWebApp: 'true'
        image: ghcr.io/immich-app/immich-machine-learning:$$cap_version
        environment:
            NODE_ENV: production
            DB_PASSWORD: $$cap_app_db_pass
            DB_USERNAME: $$cap_app_db_user
            DB_DATABASE_NAME: $$cap_app_db_name
            DB_HOSTNAME: srv-captain--$$cap_appname-db
            TYPESENSE_API_KEY: $$cap_typesense_api_key
            TYPESENSE_HOST: srv-captain--$$cap_appname-typesense
            REDIS_HOSTNAME: srv-captain--$$cap_appname-redis
            UPLOAD_LOCATION: $$cap_app_upload_location
            IMMICH_WEB_URL: http://srv-captain--$$cap_appname-web:3000
            IMMICH_SERVER_URL: http://srv-captain--$$cap_appname-server:3001
            IMMICH_MACHINE_LEARNING_URL: http://srv-captain--$$cap_appname-machine-learning:3003
        volumes:
            - $$cap_app_upload_location:/usr/src/app/upload
            - $$cap_appname-mlcache:/cache

    $$cap_appname-web:
        caproverExtra:
            dockerfileLines:
                - FROM ghcr.io/immich-app/immich-web:$$cap_version
                - ENTRYPOINT ["/bin/sh", "./entrypoint.sh"]
            notExposeAsWebApp: 'true'
        environment:
            NODE_ENV: production
            DB_PASSWORD: $$cap_app_db_pass
            DB_USERNAME: $$cap_app_db_user
            DB_DATABASE_NAME: $$cap_app_db_name
            DB_HOSTNAME: srv-captain--$$cap_appname-db
            TYPESENSE_API_KEY: $$cap_typesense_api_key
            TYPESENSE_HOST: srv-captain--$$cap_appname-typesense
            REDIS_HOSTNAME: srv-captain--$$cap_appname-redis
            UPLOAD_LOCATION: $$cap_app_upload_location
            IMMICH_WEB_URL: http://srv-captain--$$cap_appname-web:3000
            IMMICH_SERVER_URL: http://srv-captain--$$cap_appname-server:3001
            IMMICH_MACHINE_LEARNING_URL: http://srv-captain--$$cap_appname-machine-learning:3003

    $$cap_appname-typesense:
        caproverExtra:
            notExposeAsWebApp: 'true'
        image: typesense/typesense:$$cap_typesense_ver
        environment:
            TYPESENSE_API_KEY: $$cap_typesense_api_key
            TYPESENSE_DATA_DIR: '/data'
        volumes:
            - $$cap_appname-typesense-data:/data

    $$cap_appname-redis:
        caproverExtra:
            notExposeAsWebApp: 'true'
        image: redis:$$cap_redis_ver

    $$cap_appname-db:
        caproverExtra:
            notExposeAsWebApp: 'true'
        image: postgres:$$cap_app_db_ver
        environment:
            POSTGRES_PASSWORD: $$cap_app_db_pass
            POSTGRES_USER: $$cap_app_db_user
            POSTGRES_DB: $$cap_app_db_name
            PG_DATA: /var/lib/postgresql/data
        volumes:
            - $$cap_appname-db-data:/var/lib/postgresql/data

    $$cap_appname:
        caproverExtra:
            containerHttpPort: 8080
        image: ghcr.io/immich-app/immich-proxy:v1.52.1
        environment:
            IMMICH_SERVER_URL: http://srv-captain--$$cap_appname-server:3001
            IMMICH_WEB_URL: http://srv-captain--$$cap_appname-web:3000
        depends_on:
            - $$cap_appname-server

caproverOneClickApp:
    displayName: Immich
    description: Open source (MIT License) Google Photos alternative. Backup your phone's photos and videos to your private server.
    isOfficial: false
    documentation: https://immich.app
    instructions:
        start: |-
            Leave every default value as is for a working and simple installation. You can specify the (full) path to the directory you want to save your media, in that case the directory must exist beforehand. Immich can be accessed via browser and with an app (Immich). If you have big media files (bigger than 500MB) in your phone, update your Nginx configuration to increase your `client_max_body_size`.
        end: |-
            On your first visit it will ask for email and password for the admin user. Remember to change the default Nginx configuration and increasing the 'client_max_body_size' value if you expect to upload files bigger than 500MB.
    variables:
        - label: Immich version
          id: $$cap_version
          description: Check out their valid tags at https://hub.docker.com/r/immich-app/immich/tags
          defaultValue: v1.52.1
        - label: Immich redis version
          id: $$cap_redis_ver
          defaultValue: 6.2
          description: Check out their valid tags at https://hub.docker.com/_/redis/tags
        - label: Typesense version
          id: $$cap_typesense_ver
          description: Check out their valid tags at https://hub.docker.com/r/typesense/typesense/tags
          defaultValue: 0.24.0
        - label: Typesense API key
          id: $$cap_typesense_api_key
          description: A big enough string to be used to authenticate against Typesense. A random one is generated for you.
          defaultValue: $$cap_gen_random_hex(32)
        - label: Database password
          id: $$cap_app_db_pass
          description: Password for accessing the database. A random one has been generated for you.
          defaultValue: $$cap_gen_random_hex(32)
        - label: Database username
          id: $$cap_app_db_user
          description: Username to access the database
          defaultValue: 'immich'
        - label: Database name
          id: $$cap_app_db_name
          description: A name for the database used by Immich
          defaultValue: 'immich'
        - label: PostgreSQL database version
          id: $$cap_app_db_ver
          description: Immich uses PostgreSQL as a database. Check out their valid tags at https://hub.docker.com/_/postgres/tags
          defaultValue: 14
        - label: Upload directory
          id: $$cap_app_upload_location
          description: Full path to the directory where you plan to store all your files. It should be created beforehand. If you want caprover to create it for you just leave the default 'immich-data'
          defaultValue: immich-data