Commit Graph
713 Commits
Author SHA1 Message Date
Mees Frensel d8e0de4b48 feat(ui): support tooltip for Select components (#767) 2026-09-02 15:03:41 -04:00
bo0tzzandJason Rasmussen 6c2f17986b feat(builder): announcement/feedback bar (#762)
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2026-09-02 19:02:06 +00:00
Jason Rasmussen f7d703eb95 feat: update download page (#760)
* feat: update download page

* chore: pr feedback
2026-09-02 09:28:44 -04:00
renovate[bot] 89eba889fa chore(deps): update dependency terragrunt to v1.1.4 (#757) 2026-09-02 11:30:02 +02:00
renovate[bot] 385d723634 chore(deps): update typescript-projects (#759) 2026-09-02 11:28:38 +02:00
bo0tzz 2b023e2899 fix: keep hardware acceleration mounts in rootless mode (#758) 2026-09-01 15:55:25 -04:00
renovate[bot] 6fd74ac454 chore(deps): update node.js to ba849c6 (#756) 2026-09-01 20:18:15 +02:00
Daniel Dietzler e121cc71dc fix: august blog post layout (#755) 2026-09-01 19:55:30 +02:00
bo0tzzandJason Rasmussen abdd8f458f feat: revive compose file builder (#660)
* feat: app shell for get.immich.app

* feat: revive compose file builder

* fix: lints

* fix: review feedback

* chore: clean up types

* feat: zod validation

* chore: remove TODO

* feat: external compose file types

* feat: uid/gid input fields when in rootless mode

* chore: always show db named volume description

* fix: proper forms text handling

* feat: also reject WSL mounts for db path

* feat: container names toggle

* feat: external libraries

* feat: external network option

* chore: rearrange server panel

* chore: use NumberInput

* chore: move the builder under the app shell

* chore: move to immich.app/download

* revert: get.immich.app changes

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2026-09-01 12:54:06 -04:00
renovate[bot] 6ac8f37a22 chore(deps): update dependency sharp to v0.35.4 (#743) 2026-09-01 12:36:59 +02:00
renovate[bot] 85e50ad423 fix(deps): update dependency kysely-postgres-js to v4 (#752) 2026-09-01 12:26:39 +02:00
renovate[bot] 87e29b7258 chore(deps): update node.js to v24.20.0 (#746) 2026-09-01 12:13:23 +02:00
renovate[bot] 9b03eab7ad chore(deps): update dependency @types/node to ^26.4.0 (#745) 2026-09-01 10:11:18 +00:00
renovate[bot] 23ab1943fa chore(deps): update typescript-projects (#732) 2026-09-01 12:05:47 +02:00
Daniel Dietzler 248562882a fix: separate out svelte highlight dep into its own renovate PR (#750) 2026-09-01 11:56:17 +02:00
renovate[bot] fa1dca1407 chore(deps): update terraform cloudflare to v5.24.0 (#747) 2026-09-01 11:32:01 +02:00
renovate[bot] 4303a256e7 fix(deps): update dependency @immich/ui to ^0.86.0 (#748) 2026-09-01 11:30:28 +02:00
renovate[bot] 31c39ab2f1 chore(deps): update immich-app/devtools action to v3.0.1 (#744) 2026-09-01 11:05:55 +02:00
Daniel DietzlerandJason Rasmussen 7626674d9a feat: august recap (#739)
* feat: august recap

* chore: reimport post

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2026-08-31 17:12:05 -04:00
Mikkel ALMONTE--RINGAUD 2d640bb0ff chore: add imora to apps (#740) 2026-08-31 17:00:59 -04:00
immich-push-o-matic[bot] 8d91581924 chore(main): release ui 0.86.0 (#700) ui-v0.86.0 2026-08-27 17:10:00 +02:00
pasqualkreher 4fe86bb560 feat: add Rollfilm (#693) 2026-08-27 10:54:02 -04:00
immich-push-o-matic[bot] 8dd91c20b6 chore(main): release kysely-adapter-cloudflare 0.1.2 (#731)
Co-authored-by: immich-push-o-matic[bot] <179150890+immich-push-o-matic[bot]@users.noreply.github.com>
kysely-adapter-cloudflare-v0.1.2
2026-08-27 12:24:41 +00:00
olmos-cmd 33c84c4bb8 feat: add Media Backup Manager (#736)
* Add Media Backup Manager to Awesome Immich

* Keep Awesome Immich JSON formatting unchanged

* chore: retrigger checks after GitHub outage
2026-08-27 12:20:41 +00:00
immich-push-o-matic[bot] c76214f952 chore(main): release svelte-markdown-preprocess 0.7.0 (#675)
Co-authored-by: immich-push-o-matic[bot] <179150890+immich-push-o-matic[bot]@users.noreply.github.com>
svelte-markdown-preprocess-v0.7.0
2026-08-27 08:20:37 -04:00
immich-push-o-matic[bot] 217f81ff62 chore(main): release sql-tools 0.6.3 (#734)
Co-authored-by: immich-push-o-matic[bot] <179150890+immich-push-o-matic[bot]@users.noreply.github.com>
sql-tools-v0.6.3
2026-08-25 22:19:20 +00:00
Jason Rasmussen 561ca1f769 fix: build (#733)
* fix: build

* chore: lint for js file extensions
2026-08-25 18:15:36 -04:00
renovate[bot] 8145d233f4 chore(deps): update dependency @cloudflare/vitest-pool-workers to ^0.22.0 (#728) 2026-08-25 17:59:47 +00:00
renovate[bot] 34fe6e0246 chore(deps): pin postgres docker tag to cf78e76 (#725) 2026-08-25 19:59:06 +02:00
renovate[bot] f0f93bef97 chore(deps): update dependency opentofu to v1.12.6 (#726) 2026-08-25 19:58:45 +02:00
renovate[bot]andDaniel Dietzler 6cd426b370 chore(deps): update typescript-projects (#710)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-08-25 19:53:49 +02:00
immich-push-o-matic[bot] 1e48d9d343 chore(main): release sql-tools 0.6.2 (#730) sql-tools-v0.6.2 2026-08-25 16:32:58 +02:00
Jason Rasmussen fa2e800f6e fix: build (#727) 2026-08-25 16:27:49 +02:00
João Ferreiraandjoperafe 2e6f44d71a fix: prevent logo from being draggable (#724)
Co-authored-by: joperafe <joaoderreira.miecom@gmail.com>
2026-08-25 12:29:56 +00:00
Jason Rasmussen b940c9b2de feat: carousel card icons (#722) 2026-08-21 16:22:46 -04:00
Jason Rasmussen b5735a7c32 fix: export persisted state (#721) 2026-08-21 18:18:24 +00:00
immich-push-o-matic[bot] f5c293ae07 chore(main): release kysely-adapter-cloudflare 0.1.1 (#486)
Co-authored-by: immich-push-o-matic[bot] <179150890+immich-push-o-matic[bot]@users.noreply.github.com>
kysely-adapter-cloudflare-v0.1.1
2026-08-19 21:09:41 +00:00
immich-push-o-matic[bot] 682174f42a chore(main): release sql-tools 0.6.1 (#720)
Co-authored-by: immich-push-o-matic[bot] <179150890+immich-push-o-matic[bot]@users.noreply.github.com>
sql-tools-v0.6.1
2026-08-19 21:04:40 +00:00
Zack PollardandClaude Opus 5 10e376848a chore(survey): update dependencies (#718)
* fix(survey): import Migrator from kysely/migration

kysely 0.29 moved Migrator, Migration and MigrationProvider out of the
package root and into the kysely/migration subpath export, so the
self-hosted Node entrypoint died at startup with "Migrator is not a
constructor" and served every request against an unmigrated database.
packages/sql-tools already imports from the subpath; this brings the
survey backend in line.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014aAfftndexMEN2j2os6yEv

* chore(deps): update survey.immich.app dependencies to latest

Brings every dependency of the survey app and its backend up to the
newest release published on npm, and aligns the app with the TypeScript
setup the rest of the monorepo already uses.

Majors:
- vite 7 -> 8 with @sveltejs/vite-plugin-svelte 6 -> 7 (the plugin's
  peer range requires vite 8 and svelte >= 5.46.4); every other app in
  the workspace was already on this pair
- typescript ^5.9.2 -> the workspace convention of
  typescript -> npm:@typescript/typescript6 plus @typescript/native ->
  npm:typescript@7. @sveltejs/kit, svelte-check and typescript-eslint
  all cap their typescript peer below 7, so TS 6 stays the tooling
  compiler and TS 7 native is installed alongside it
- @types/node 24 -> 26
- backend: @hono/node-server 1 -> 2 (drops Node 18, removes the Vercel
  adapter; neither is used here), better-sqlite3 12 -> 13 (Node-API
  rewrite, same JS API) and @types/better-sqlite3 7 -> 9

Everything else is a minor or patch bump: @sveltejs/kit 2.70.3, svelte
5.56.9, vitest 4.1.11, eslint 10.8.1, tailwindcss 4.3.3, wrangler
4.124.0, hono 4.13.3, playwright 1.62.1, and the rest.

@cloudflare/workers-types and @sveltejs/kit were published inside pnpm's
minimumReleaseAge window, so they need an explicit exemption for
`pnpm install --frozen-lockfile` to accept the lockfile. The entries can
be dropped once those versions age out.

Only the two survey importers changed in the lockfile; the other 15
workspace projects resolve identically.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014aAfftndexMEN2j2os6yEv

* chore(survey): build the Docker image on node 24

better-sqlite3 13 declares engines node >= 22 and the repo sets
engine-strict, so `pnpm install` in the image no longer resolves on
node:20-slim. node 24 matches the version .mise/config.toml pins for
CI and local development.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014aAfftndexMEN2j2os6yEv

* chore(deps): keep survey deps inside pnpm's minimumReleaseAge window

@sveltejs/kit 2.70.3 and @cloudflare/workers-types 5.20260819.1 were
published within pnpm's minimum release age, so accepting them required
a minimumReleaseAgeExclude entry for `pnpm install --frozen-lockfile` to
pass. Step both back one release instead and drop the exemption, leaving
pnpm-workspace.yaml untouched. 2.70.2 is also what the other apps in the
workspace resolve to.

Also declares kysely and @immich/kysely-adapter-cloudflare on the
backend. Both are imported by backend/src but were only ever resolved
through the frontend's node_modules, so any install that did not also
include the frontend could not resolve them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014aAfftndexMEN2j2os6yEv

* fix(survey): repair the Docker build

The image had not been buildable for a while. Each of these failed the
build on its own:

- `--filter survey...` matches no project; the app is survey.immich.app,
  so the frontend stage installed nothing and the build that followed
  had no node_modules
- the manifest for futo-backups-survey was still copied in, but that app
  was removed in 7d9d2d3, so COPY aborted on a missing path. Neither it
  nor the datasets manifest is needed: pnpm --filter installs fine
  without unrelated workspace manifests, so both are gone along with the
  comment that justified them
- the backend stage never received apps/survey.immich.app/shared, which
  backend/src imports, so esbuild could not resolve it
- the esbuild bundle is ESM but inlines CommonJS dependencies, and
  esbuild's ESM output replaces require with a stub that throws. ws hit
  it on `require("events")` and the server died on startup. build:node
  now restores a real require via createRequire, and the Dockerfile
  calls that script instead of repeating the flags

Adds a .dockerignore so COPY stops dragging the host's pnpm symlink farm
and stale build output into the context, and marks the backend package
as ESM, which is what it already is and what its bundle needs to avoid
being reparsed at every start.

Verified by replaying every stage's COPY and RUN outside Docker: both
builders complete, and the resulting payload boots, applies migrations,
serves the built frontend and records a survey response through
better-sqlite3.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014aAfftndexMEN2j2os6yEv

* fix(lint): pin tsconfigRootDir in both eslint configs

The survey app is the only workspace project with its own flat config,
and ESLint 10 resolves a config per linted file, so a root `pnpm lint`
loads that config alongside this one. typescript-eslint records a
candidate tsconfigRootDir for every config file it is loaded from and
throws rather than guess once there is more than one, failing 215 files
across the survey app, ui.immich.app, bin and packages with "No
tsconfigRootDir was set, and multiple candidate TSConfigRootDirs are
present".

Aliasing the survey app's typescript to @typescript/typescript6 is what
surfaced it: the app used to resolve its own typescript-eslint instance
against typescript 5.9, so the two configs registered their candidates
in separate module state. Now both configs share one instance and see
each other's candidate.

Pinning tsconfigRootDir explicitly in each config is what the error
asks for and keeps each config anchored to its own directory.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014aAfftndexMEN2j2os6yEv

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-08-19 16:59:51 -04:00
Santo Shakil b91935ed1c fix(sql-tools): force ISO DateStyle on postgres connections (#719) 2026-08-19 16:59:13 -04:00
renovate[bot] 87cba589c8 chore(deps): update dependency terragrunt to v1.1.3 (#712) 2026-08-19 14:26:41 +02:00
renovate[bot] 66825f8964 chore(deps): update dependency @cloudflare/workers-types to v5 (#713) 2026-08-18 20:25:10 +02:00
renovate[bot] 53a233eb02 fix(deps): update typescript-projects (#711) 2026-08-18 13:08:17 +02:00
renovate[bot] a197f7ba9c chore(deps): update github-actions (#704) 2026-08-18 13:00:49 +02:00
renovate[bot] 405454a7b4 chore(deps): update node (#705) 2026-08-18 12:58:39 +02:00
renovate[bot] 6c3fdef4a1 chore(deps): update dependency esbuild to ^0.28.0 [security] (#702) 2026-08-18 12:48:29 +02:00
renovate[bot]andDaniel Dietzler a2897e059f chore(deps): update typescript-projects (#708)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-08-18 12:38:50 +02:00
renovate[bot] f31a2dace4 fix(deps): update dependency @immich/ui to ^0.85.0 (#709)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-18 12:26:17 +02:00
renovate[bot] 0d34c00224 chore(deps): update terraform cloudflare to v5.23.0 (#706) 2026-08-18 12:12:57 +02:00
renovate[bot] 11e9fbbf72 chore(deps): update terraform random to v3.9.0 (#707) 2026-08-18 12:02:59 +02:00