* Migrate from npm to pnpm across entire project
• Update all GitHub workflow files to use pnpm instead of npm
• Replace npm commands with pnpm equivalents in devcontainer scripts
• Remove package-lock.json files and update to use pnpm-lock.yaml
• Consolidate node version references to use server/.nvmrc
* Refine pnpm migration based on review feedback
• Replace SKIP_SHARP_FILTERING with SHARP_IGNORE_GLOBAL_LIBVIPS environment variable
• Improve Sharp package filtering to include specific Linux architectures for Docker builds
• Optimize Dockerfile dependency caching with improved layer structure
• Clean up workspace configuration and remove redundant settings
* Address additional review feedback for pnpm migration
• Fix node-version-file paths in GitHub workflow configurations
• Refactor .pnpmfile.cjs to use switch statement for better code organization
• Correct cache type typo in fix-format workflow
• Simplify Vite configuration by merging configs inline
• Update package description for consistency
* Use 'server/.nvmrc' for fix-format.yml GHA
* Delete npm locks
* Remove Docker volume isolation for node_modules directories
• Remove volume mounts for node_modules and related directories
• Allow shared access between host and container filesystem
• Update init container to handle file ownership with conditional existence check
* Remove unused Docker volumes and volume mounts
• Remove node_modules volume mounts from devcontainer configuration
• Remove unused named volumes for pnpm-store, node_modules, and cache directories
• Clean up Docker Compose configuration after removing volume isolation
* Fix typescript-sdk package issues
• Remove unknown "build" dependency that was incorrectly added to package.json
• Update pnpm-lock.yaml to reflect dependency removal
* Add pnpm setup to mobile workflow for translation formatting
• Add pnpm action setup step to mobile unit tests workflow
• Required for translation file formatting and sorting operations
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
feat: Support config via Systemd Credentials
See https://systemd.io/CREDENTIALS/. This is used as a fallback, so will
only be used if the `$*_FILE` var is empty. This could also be used to
implicitly use Docker Secrets by settings
`CREDENTIALS_DIRECTORY=/run/secrets` rather than setting individual
`$_*FILE` environment variables.
* Update synology.md
Make sure to change example.env to .env, this is not trivial for non-Docker experts.
* Update synology.md
Wrapped file names in code tags
* chore: linting
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
The first step was missing—it's probably obvious for those already
familiar with Immich.
After I added the external library, no photos showed up anywhere and
all interfaces indicated that I had no photos
Eventually I found this "Scan" button, and after clicking it photos
started to appear. This is a necessary step before photos from the
library actually show up anywhere, so point it out explicitly.
* fix(docs): update the cli upload usage
The cli upload usage is missing some options compared to what is the current
output of `immich upload --help`. Update the docs accordingly.
Signed-off-by: Bence Ferdinandy <bence@ferdinandy.com>
* feat(cli): add --json-output option to upload command
Add an option that allows retrieving per-file information about the
upload process. The output includes the newFiles, duplicates and
newAssets lists, but could accommodate more information later if needed.
One use case this allows for is using --dry-run to get a list of all the
files that would be uploaded, and checking them manually before an
upload. This can be particularly useful when a curated subset of images
have already been uploaded to immich and we want to double check for
some stragglers without uploading everything to immich.
The upload command has a few lines of logging, so to get an actually
parsable json one needs to strip those lines:
immich upload --dry-run * | tail -n +4 | jq .newFiles[]
Signed-off-by: Bence Ferdinandy <bence@ferdinandy.com>
---------
Signed-off-by: Bence Ferdinandy <bence@ferdinandy.com>
* Add automatic OpenID Connect login by using parameter `autoLaunch=1`
By launching Immich with `/auth/login?autoLaunch=1` an OpenID Connect login attempt is directly initated on installations where OAuth Auto Launch is not enabled. The intended use for this parameter is to enable Immich to be launched from e.g. Nextcloud using the _External sites_ app and the _oids_ OpenID Connect provider app so as to enable the user to directly interact with Immich without the need to press the `Login with ...` button.
* Add documentation for autolaunch by navigating to `/auth/login?autoLaunch=1`
* Look ma, no braces!
_This could be a single line_
And now it is, as is its predecessor.
* Change formatting to satisfy _prettier_
* if (condition) return true -> return condition
* More _prettier_ reformatting
* Look ma, braces!
* add setting switch
this isnt bound to anything yet
* make google casting opt-in
* doc updates
* lint docs
* remove unneeded translation items
* update mobile openai defs
* fix failing test
we need to mock user prefs since CastButton uses it
* recreate #13966
* gcast button works
* rewrote gcast-player to be GCastDestination and CastManager manages the interface between UI and casting destinations
* remove unneeded imports
* add "Connected to" translation
* Remove css for cast launcher
* fix tests
* fix doc tests
* fix the receiver application ID
* remove casting app ID
* remove cast button from nav bar
It is now present at the following locations:
- shared link album and single asset views
- asset viewer (normal user)
- album view (normal user)
* part 1 of fixes from @danieldietzler code review
* part 2 of code review changes from @danieldietzler and @jsram91
* cleanup documentation
* onVideoStarted missing callback
* add token expiry validation
* cleanup logic and logging
* small cleanup
* rename to ICastDestination
* cast button changes