Skip to content

Commit 1d61fb4

Browse files
authored
Merge branch 'immich-app:main' into main
2 parents 2622773 + 60dafec commit 1d61fb4

File tree

866 files changed

+39182
-22592
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

866 files changed

+39182
-22592
lines changed

.devcontainer/devcontainer.json

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"name": "Immich - Backend, Frontend and ML",
33
"service": "immich-server",
44
"runServices": [
5+
"immich-init",
56
"immich-server",
67
"redis",
78
"database",
@@ -31,29 +32,8 @@
3132
"tasks": {
3233
"version": "2.0.0",
3334
"tasks": [
34-
{
35-
"label": "Fix Permissions, Install Dependencies",
36-
"type": "shell",
37-
"command": "[ -f /immich-devcontainer/container-start.sh ] && /immich-devcontainer/container-start.sh || exit 0",
38-
"isBackground": true,
39-
"presentation": {
40-
"echo": true,
41-
"reveal": "always",
42-
"focus": false,
43-
"panel": "dedicated",
44-
"showReuseMessage": true,
45-
"clear": false,
46-
"group": "Devcontainer tasks",
47-
"close": true
48-
},
49-
"runOptions": {
50-
"runOn": "default"
51-
},
52-
"problemMatcher": []
53-
},
5435
{
5536
"label": "Immich API Server (Nest)",
56-
"dependsOn": ["Fix Permissions, Install Dependencies"],
5737
"type": "shell",
5838
"command": "[ -f /immich-devcontainer/container-start-backend.sh ] && /immich-devcontainer/container-start-backend.sh || exit 0",
5939
"isBackground": true,
@@ -74,7 +54,6 @@
7454
},
7555
{
7656
"label": "Immich Web Server (Vite)",
77-
"dependsOn": ["Fix Permissions, Install Dependencies"],
7857
"type": "shell",
7958
"command": "[ -f /immich-devcontainer/container-start-frontend.sh ] && /immich-devcontainer/container-start-frontend.sh || exit 0",
8059
"isBackground": true,
@@ -130,8 +109,8 @@
130109
}
131110
},
132111
"overrideCommand": true,
133-
"workspaceFolder": "/workspaces/immich",
134-
"remoteUser": "node",
112+
"workspaceFolder": "/usr/src/app",
113+
"remoteUser": "root",
135114
"userEnvProbe": "loginInteractiveShell",
136115
"remoteEnv": {
137116
// The location where your uploaded files are stored

.devcontainer/mobile/container-compose-overrides.yml

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,17 @@
11
services:
2+
immich-app-base:
3+
image: busybox
24
immich-server:
5+
extends:
6+
service: immich-app-base
7+
profiles: !reset []
8+
image: immich-server-dev:latest
39
build:
410
target: dev-container-mobile
511
environment:
612
- IMMICH_SERVER_URL=http://127.0.0.1:2283/
7-
volumes: !override # bind mount host to /workspaces/immich
8-
- ..:/workspaces/immich
13+
volumes:
914
- ${UPLOAD_LOCATION:-upload-devcontainer-volume}${UPLOAD_LOCATION:+/photos}:/data
10-
- pnpm-store:/usr/src/app/.pnpm-store
11-
- server-node_modules:/usr/src/app/server/node_modules
12-
- web-node_modules:/usr/src/app/web/node_modules
13-
- github-node_modules:/usr/src/app/.github/node_modules
14-
- cli-node_modules:/usr/src/app/cli/node_modules
15-
- docs-node_modules:/usr/src/app/docs/node_modules
16-
- e2e-node_modules:/usr/src/app/e2e/node_modules
17-
- sdk-node_modules:/usr/src/app/open-api/typescript-sdk/node_modules
18-
- app-node_modules:/usr/src/app/node_modules
19-
- sveltekit:/usr/src/app/web/.svelte-kit
20-
- coverage:/usr/src/app/web/coverage
2115
- /etc/localtime:/etc/localtime:ro
2216
immich-web:
2317
env_file: !reset []

.devcontainer/mobile/devcontainer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"name": "Immich - Mobile",
33
"service": "immich-server",
44
"runServices": [
5+
"immich-init",
56
"immich-server",
67
"redis",
78
"database",
@@ -35,7 +36,7 @@
3536
},
3637
"forwardPorts": [],
3738
"overrideCommand": true,
38-
"workspaceFolder": "/workspaces/immich",
39+
"workspaceFolder": "/usr/src/app",
3940
"remoteUser": "node",
4041
"userEnvProbe": "loginInteractiveShell",
4142
"remoteEnv": {

.devcontainer/server/container-common.sh

Lines changed: 1 addition & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,6 @@
22
export IMMICH_PORT="${DEV_SERVER_PORT:-2283}"
33
export DEV_PORT="${DEV_PORT:-3000}"
44

5-
# search for immich directory inside workspace.
6-
# /workspaces/immich is the bind mount, but other directories can be mounted if runing
7-
# Devcontainer: Clone [repository|pull request] in container volumne
8-
WORKSPACES_DIR="/workspaces"
9-
IMMICH_DIR="$WORKSPACES_DIR/immich"
105
IMMICH_DEVCONTAINER_LOG="$HOME/immich-devcontainer.log"
116

127
log() {
@@ -30,52 +25,8 @@ run_cmd() {
3025
return "${PIPESTATUS[0]}"
3126
}
3227

33-
# Find directories excluding /workspaces/immich
34-
mapfile -t other_dirs < <(find "$WORKSPACES_DIR" -mindepth 1 -maxdepth 1 -type d ! -path "$IMMICH_DIR" ! -name ".*")
35-
36-
if [ ${#other_dirs[@]} -gt 1 ]; then
37-
log "Error: More than one directory found in $WORKSPACES_DIR other than $IMMICH_DIR."
38-
exit 1
39-
elif [ ${#other_dirs[@]} -eq 1 ]; then
40-
export IMMICH_WORKSPACE="${other_dirs[0]}"
41-
else
42-
export IMMICH_WORKSPACE="$IMMICH_DIR"
43-
fi
28+
export IMMICH_WORKSPACE="/usr/src/app"
4429

4530
log "Found immich workspace in $IMMICH_WORKSPACE"
4631
log ""
4732

48-
fix_permissions() {
49-
50-
log "Fixing permissions for ${IMMICH_WORKSPACE}"
51-
52-
# Change ownership for directories that exist
53-
for dir in "${IMMICH_WORKSPACE}/.vscode" \
54-
"${IMMICH_WORKSPACE}/server/upload" \
55-
"${IMMICH_WORKSPACE}/.pnpm-store" \
56-
"${IMMICH_WORKSPACE}/.github/node_modules" \
57-
"${IMMICH_WORKSPACE}/cli/node_modules" \
58-
"${IMMICH_WORKSPACE}/e2e/node_modules" \
59-
"${IMMICH_WORKSPACE}/open-api/typescript-sdk/node_modules" \
60-
"${IMMICH_WORKSPACE}/server/node_modules" \
61-
"${IMMICH_WORKSPACE}/server/dist" \
62-
"${IMMICH_WORKSPACE}/web/node_modules" \
63-
"${IMMICH_WORKSPACE}/web/dist"; do
64-
if [ -d "$dir" ]; then
65-
run_cmd sudo chown node -R "$dir"
66-
fi
67-
done
68-
69-
log ""
70-
}
71-
72-
install_dependencies() {
73-
74-
log "Installing dependencies"
75-
(
76-
cd "${IMMICH_WORKSPACE}" || exit 1
77-
export CI=1 FROZEN=1 OFFLINE=1
78-
run_cmd make setup-web-dev setup-server-dev
79-
)
80-
log ""
81-
}

.devcontainer/server/container-compose-overrides.yml

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,21 @@
11
services:
2+
immich-app-base:
3+
image: busybox
24
immich-server:
5+
extends:
6+
service: immich-app-base
7+
profiles: !reset []
8+
image: immich-server-dev:latest
39
build:
410
target: dev-container-server
511
env_file: !reset []
612
hostname: immich-dev
713
environment:
814
- IMMICH_SERVER_URL=http://127.0.0.1:2283/
9-
volumes: !override
10-
- ..:/workspaces/immich
15+
volumes:
1116
- ${UPLOAD_LOCATION:-upload-devcontainer-volume}${UPLOAD_LOCATION:+/photos}:/data
1217
- /etc/localtime:/etc/localtime:ro
13-
- pnpm-store:/usr/src/app/.pnpm-store
14-
- server-node_modules:/usr/src/app/server/node_modules
15-
- web-node_modules:/usr/src/app/web/node_modules
16-
- github-node_modules:/usr/src/app/.github/node_modules
17-
- cli-node_modules:/usr/src/app/cli/node_modules
18-
- docs-node_modules:/usr/src/app/docs/node_modules
19-
- e2e-node_modules:/usr/src/app/e2e/node_modules
20-
- sdk-node_modules:/usr/src/app/open-api/typescript-sdk/node_modules
21-
- app-node_modules:/usr/src/app/node_modules
22-
- sveltekit:/usr/src/app/web/.svelte-kit
23-
- coverage:/usr/src/app/web/coverage
18+
- pnpm_store_server:/buildcache/pnpm-store
2419
- ../plugins:/build/corePlugin
2520
immich-web:
2621
env_file: !reset []

.devcontainer/server/container-start.sh

Lines changed: 0 additions & 17 deletions
This file was deleted.

.github/.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
24.13.0
1+
24.13.1

.github/pull_request_template.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ The `/api/something` endpoint is now `/api/something-else`
2626

2727
## Checklist:
2828

29+
- [ ] I have carefully read CONTRIBUTING.md
2930
- [ ] I have performed a self-review of my own code
3031
- [ ] I have made corresponding changes to the documentation if applicable
3132
- [ ] I have no unrelated changes in the PR.

.github/workflows/build-mobile.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,14 @@ jobs:
5151
should_run: ${{ steps.check.outputs.should_run }}
5252
steps:
5353
- id: token
54-
uses: immich-app/devtools/actions/create-workflow-token@da177fa133657503ddb7503f8ba53dccefec5da1 # create-workflow-token-action-v1.0.0
54+
uses: immich-app/devtools/actions/create-workflow-token@05e16407c0a5492138bb38139c9d9bf067b40886 # create-workflow-token-action-v1.0.1
5555
with:
5656
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
5757
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
5858

5959
- name: Check what should run
6060
id: check
61-
uses: immich-app/devtools/actions/pre-job@08bac802a312fc89808e0dd589271ca0974087b5 # pre-job-action-v2.0.0
61+
uses: immich-app/devtools/actions/pre-job@eed0f8b8165ffcb951f2ba854b2dd031935e1d73 # pre-job-action-v2.0.2
6262
with:
6363
github-token: ${{ steps.token.outputs.token }}
6464
filters: |
@@ -79,12 +79,12 @@ jobs:
7979

8080
steps:
8181
- id: token
82-
uses: immich-app/devtools/actions/create-workflow-token@da177fa133657503ddb7503f8ba53dccefec5da1 # create-workflow-token-action-v1.0.0
82+
uses: immich-app/devtools/actions/create-workflow-token@05e16407c0a5492138bb38139c9d9bf067b40886 # create-workflow-token-action-v1.0.1
8383
with:
8484
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
8585
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
8686

87-
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
87+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
8888
with:
8989
ref: ${{ inputs.ref || github.sha }}
9090
persist-credentials: false
@@ -96,14 +96,14 @@ jobs:
9696
working-directory: ./mobile
9797
run: printf "%s" $KEY_JKS | base64 -d > android/key.jks
9898

99-
- uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5.1.0
99+
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
100100
with:
101101
distribution: 'zulu'
102102
java-version: '17'
103103

104104
- name: Restore Gradle Cache
105105
id: cache-gradle-restore
106-
uses: actions/cache/restore@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
106+
uses: actions/cache/restore@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
107107
with:
108108
path: |
109109
~/.gradle/caches
@@ -160,7 +160,7 @@ jobs:
160160

161161
- name: Save Gradle Cache
162162
id: cache-gradle-save
163-
uses: actions/cache/save@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
163+
uses: actions/cache/save@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
164164
if: github.ref == 'refs/heads/main'
165165
with:
166166
path: |
@@ -185,7 +185,7 @@ jobs:
185185
run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer
186186

187187
- name: Checkout code
188-
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
188+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
189189
with:
190190
ref: ${{ inputs.ref || github.sha }}
191191
persist-credentials: false

.github/workflows/cache-cleanup.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ jobs:
1919
actions: write
2020
steps:
2121
- id: token
22-
uses: immich-app/devtools/actions/create-workflow-token@da177fa133657503ddb7503f8ba53dccefec5da1 # create-workflow-token-action-v1.0.0
22+
uses: immich-app/devtools/actions/create-workflow-token@05e16407c0a5492138bb38139c9d9bf067b40886 # create-workflow-token-action-v1.0.1
2323
with:
2424
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
2525
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
2626

2727
- name: Check out code
28-
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
28+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2929
with:
3030
persist-credentials: false
3131
token: ${{ steps.token.outputs.token }}

0 commit comments

Comments
 (0)