https://github.com/xxroxxerxx/integration_immich
Browse your Immich photo library directly inside Nextcloud β timeline, albums, people, map and more.
https://github.com/xxroxxerxx/integration_immich
albums app gallery immich media nextcloud nextcloud-app photos php selfhosted vue
Last synced: about 1 month ago
JSON representation
Browse your Immich photo library directly inside Nextcloud β timeline, albums, people, map and more.
- Host: GitHub
- URL: https://github.com/xxroxxerxx/integration_immich
- Owner: xXRoxXeRXx
- License: agpl-3.0
- Created: 2026-02-24T08:52:26.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2026-05-08T13:46:30.000Z (about 1 month ago)
- Last Synced: 2026-05-08T15:42:16.264Z (about 1 month ago)
- Topics: albums, app, gallery, immich, media, nextcloud, nextcloud-app, photos, php, selfhosted, vue
- Language: Vue
- Homepage:
- Size: 5.92 MB
- Stars: 31
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: COPYING
Awesome Lists containing this project
README

# Immich Integration for Nextcloud
**Browse your [Immich](https://immich.app) photo library directly inside Nextcloud.**
Timeline, albums, people, map, explore β all seamlessly integrated.
[](COPYING)
[](https://nextcloud.com)
[](https://immich.app)
---
## πΈ Screenshots
Timeline
Albums
People
---
## β¨ Features
| Feature | Description |
| --- | --- |
| πΌοΈ **Timeline** | Lazy-loaded photo & video timeline, grouped by date with smooth infinite scroll |
| π **Albums** | Browse all your Immich albums with cover thumbnails, create, rename and delete albums |
| π€ **People** | Face recognition β explore your library by recognized person |
| πΊοΈ **Map** | Interactive map of all geotagged photos with cluster markers |
| π **Explore** | Browse by city, country, state, object or tag |
| π **Lightbox** | Full-screen viewer with keyboard navigation, pinch-to-zoom and EXIF metadata panel |
| β **Favorites** | Mark and unmark photos as favorites directly from Nextcloud |
| ποΈ **Delete** | Delete files from Immich (moved to trash if enabled) via lightbox or selection menu |
| πΎ **Save to Nextcloud** | Select photos and videos and save the originals directly to your Nextcloud Files |
| β¬οΈ **Upload to Immich** | Send photos and videos from Nextcloud Files to Immich via the file action menu |
| βοΈ **Multi-select** | Select multiple assets across any view for batch operations |
| π **Translations** | German, French, Spanish, Dutch and Portuguese included |
| βοΈ **Admin Settings** | Configure Immich server URL and API key per user |
---
## π§ Requirements
- **Nextcloud** 27 or newer
- **PHP** 8.2 or newer
- A running [Immich](https://immich.app) instance (with API access enabled)
---
## π Installation
### Via Nextcloud App Store *(recommended)*
1. Open **Nextcloud β Apps β Search** for `Immich Integration`
2. Click **Install**
### Via Release Tarball (manual)
1. Download `integration_immich.tar.gz` from the [latest release](https://github.com/xXRoxXeRXx/integration_immich/releases/latest)
2. Extract into your Nextcloud `apps/` directory:
```bash
tar -xzf integration_immich.tar.gz -C /path/to/nextcloud/apps/
```
3. Enable the app:
```bash
php occ app:enable integration_immich
```
---
## βοΈ Configuration
1. Open **Nextcloud β Personal Settings β Immich Integration**
2. Enter your **Immich server URL** (e.g. `https://photos.example.com`)
3. Enter your **API key** β found in Immich under *Account Settings β API Keys*
4. Click **Test connection** to verify, then **Save**
5. The **Immich** entry now appears in the Nextcloud top navigation
### π Required Immich API Key Permissions
When creating an API key in Immich (*Account Settings β API Keys β New API key*), the following permissions are required:
| Permission | Used for |
| --- | --- |
| `asset.view` | Thumbnails and video streaming |
| `asset.read` | Timeline, asset details, EXIF metadata |
| `asset.update` | Mark / unmark favorites |
| `asset.upload` | Upload files from Nextcloud to Immich |
| `asset.download` | Download originals and archives to Nextcloud |
| `asset.delete` | Delete assets from Immich (moves to trash if enabled) |
| `album.read` | List all albums and album contents |
| `album.create` | Create new albums |
| `album.update` | Rename albums |
| `album.delete` | Delete albums |
| `albumAsset.create` | Add assets to albums |
| `albumAsset.delete` | Remove assets from albums |
| `person.read` | List recognized people and their thumbnails |
| `map.read` | Load map markers for the Map view |
> **Tip:** Immich lets you create multiple API keys with different scopes. Creating a dedicated key for the Nextcloud integration (with only the permissions above) is recommended over using a full-access key.
>
> The connection validation on the settings page (`POST /auth/validateToken`) does not require any additional permission β it works with any valid API key.
---
## π οΈ Development
```bash
npm install
npm run dev # development build (unminified)
npm run watch # watch mode with hot rebuild
npm run build # production build
```
The app uses **Vue 3** + **Pinia** for state management and the official `@nextcloud/*` component libraries.
---
## π€ Contributing
Pull requests and bug reports are welcome!
Please open an [issue](https://github.com/xXRoxXeRXx/integration_immich/issues) for feature requests or bug reports.
---
## π License
This project is licensed under the [AGPL-3.0-or-later](COPYING) license.