No description
Find a file
Robert Schäfer 573e9b0d52
refactor(dev): dockerify auth-server (#24377)
Description
-----------

A while ago I asked on Discord if you people would be interested in removing incompatibilities with rootless docker. See: https://discord.com/channels/979116623879368755/1071165397228855327/1442974448776122592

The e2e tests in `e2e/src/api/specs/oauth.e2e-spec.ts` depend on a docker feature [host-gateway](https://docs.docker.com/reference/cli/dockerd/#configure-host-gateway-ip) that seemingly does not work on rootless docker.

So the suggested change is to dockerify the `auth-server` and not run it on the docker host.

I would love to receive feedback on this PR and feel free to request further improvements. Things that come to my mind:

* Compile typescript instead of using `tsx`
* Add hot-reloading of source files in `auth-server/` for development
* Add `eslint` configuration for the new folder

How Has This Been Tested?
------------------------

I'm running both default and rootless docker on my machine with [docker contexts](https://docs.docker.com/engine/manage-resources/contexts/):
```
docker context ls
NAME         DESCRIPTION                               DOCKER ENDPOINT                     ERROR
default                                                unix:///var/run/docker.sock
rootless *                                             unix:///run/user/1000/docker.sock
```

If I follow the steps from the [documentation](https://docs.immich.app/developer/testing) then `oauth.e2e-spec.ts` will fail because the `auth-server` on my host can't be reached.

The tests pass after these steps:
1. `git switch refactor-auth-server-as-service`
2. `make e2e`
3. In another terminal `cd e2e`
4. `pnpm run test src/api/specs/oauth.e2e-spec.ts` passes

Checklist:
----------

- [x] I have performed a self-review of my own code
- [x] I have made corresponding changes to the documentation if applicable
- [x] I have no unrelated changes in the PR.
- [ ] I have confirmed that any new dependencies are strictly necessary.
- [ ] I have written tests for new code (if applicable)
- [ ] I have followed naming conventions/patterns in the surrounding code
- [ ] All code in `src/services/` uses repositories implementations for database calls, filesystem operations, etc.
- [ ] All code in `src/repositories/` is pretty basic/simple and does not have any immich specific logic (that belongs in `src/services/`)
2026-01-09 08:59:11 -05:00
.devcontainer feat(server): support running medium tests in devcontainer (#23882) 2025-11-18 21:03:21 -06:00
.github feat: use fastlane sigh to manage signing profiles (#25089) 2026-01-08 03:02:21 +00:00
.vscode chore(deps): update dependency eslint-plugin-unicorn to v62 (#24167) 2025-11-27 21:31:16 +00:00
cli chore(deps): update node.js to v24.12.0 (#25046) 2026-01-05 20:13:34 +00:00
deployment chore(deps): update dependency opentofu to v1.10.7 (#23964) 2025-11-28 14:41:23 +00:00
design chore: update readme screenshot (#8182) 2024-03-22 04:31:36 +00:00
docker chore(deps): update grafana/grafana docker tag to v12.3.1 (#25045) 2026-01-05 17:16:58 +01:00
docs fix: use my.immich.app as url placeholder in docs (#25153) 2026-01-09 11:46:55 +00:00
e2e refactor(dev): dockerify auth-server (#24377) 2026-01-09 08:59:11 -05:00
e2e-auth-server refactor(dev): dockerify auth-server (#24377) 2026-01-09 08:59:11 -05:00
fastlane Added required setup for f-droid (#88) 2022-03-29 14:13:47 -05:00
i18n refactor: album page (#25140) 2026-01-08 22:27:20 +00:00
machine-learning feat(ml): update ONNX Runtime, OpenVINO and ROCm stack (#23458) 2026-01-01 12:17:55 -05:00
misc/release chore: update info.plist app version in bump-version (#24722) 2025-12-20 21:02:11 -06:00
mobile fix: add asset upload medium test (#25144) 2026-01-08 22:01:25 +00:00
open-api fix(server): Document HTTP 200 response for duplicate uploads in OpenAPI (#25148) 2026-01-08 23:52:31 -05:00
plugins fix(deps): update typescript-projects (#25047) 2026-01-05 16:49:09 +00:00
readme_i18n docs: sync ru docs with main README.md (#23627) 2025-11-05 08:05:03 -06:00
server fix(server): Document HTTP 200 response for duplicate uploads in OpenAPI (#25148) 2026-01-08 23:52:31 -05:00
web refactor: album page (#25140) 2026-01-08 22:27:20 +00:00
.dockerignore chore: dockerfile layout changes (#19673) 2025-07-18 17:56:26 -04:00
.editorconfig chore: linting (#7532) 2026-01-04 16:05:56 +00:00
.gitattributes chore: do not render drift migration auto gen files (#20060) 2025-07-21 16:48:22 -05:00
.gitignore chore(mobile): ignore ios build folder (#22212) 2025-09-19 09:50:24 -05:00
.gitmodules chore: update submodule (#11789) 2024-08-14 22:06:11 +00:00
.pnpmfile.cjs fix: isolate docker host/container filesystem for node_modules and build output (#21167) 2025-08-24 13:09:45 -05:00
CODE_OF_CONDUCT.md Added Code of conduct 2024-07-05 15:31:13 +00:00
CODEOWNERS chore: add mobile codeowner (#22130) 2025-09-17 14:08:35 +02:00
CONTRIBUTING.md chore: docs for contributing (#25082) 2026-01-06 09:07:44 -06:00
install.sh fix: bash install.sh script for mac os (#15874) 2025-02-03 16:41:42 -06:00
LICENSE Change license to AGPLv3 (#7046) 2024-02-12 15:31:59 +00:00
Makefile feat: run e2e server in dev mode (#23921) 2025-11-17 14:16:39 -06:00
mise.toml feat: use prettier for i18n translations (#24623) 2026-01-06 15:02:10 +00:00
package.json fix(deps): update typescript-projects (#25047) 2026-01-05 16:49:09 +00:00
pnpm-lock.yaml refactor(dev): dockerify auth-server (#24377) 2026-01-09 08:59:11 -05:00
pnpm-workspace.yaml refactor(dev): dockerify auth-server (#24377) 2026-01-09 08:59:11 -05:00
README.md fix(docs): update Readme links (#23959) 2025-11-18 21:32:11 -06:00
renovate.json fix: disable ruby updates (#23794) 2025-11-11 14:51:21 +00:00
SECURITY.md chore: use immich.app email for security reports (#10594) 2024-06-24 07:25:48 -07:00


License: AGPLv3 Discord

High performance self-hosted photo and video management solution



Català Español Français Italiano 日本語 한국어 Deutsch Nederlands Türkçe 简体中文 正體中文 Українська Русский Português Brasileiro Svenska العربية Tiếng Việt ภาษาไทย

Warning

⚠️ Always follow 3-2-1 backup plan for your precious photos and videos!

Note

You can find the main documentation, including installation guides, at https://immich.app/.

Demo

Access the demo here. For the mobile app, you can use https://demo.immich.app for the Server Endpoint URL.

Login credentials

Email Password
demo@immich.app demo

Features

Features Mobile Web
Upload and view videos and photos Yes Yes
Auto backup when the app is opened Yes N/A
Prevent duplication of assets Yes Yes
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
Support 360 degree image display No Yes
User-defined storage structure Yes Yes
Public Sharing Yes 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
Tags No Yes
Folder View Yes Yes

Translations

Read more about translations here.

Translation status

Repository activity

Activities

Star history

Star History Chart

Contributors