immich-power-tools
immich-power-tools copied to clipboard
Power tools for organizing your immich library
Immich Power Tools
A unofficial immich client to provide better tools to organize and manage your immich account. Building it to speed up your workflows in Immich to organize your people and albums.
💭 Back story
Recently I've migrated my entire Google photos library to Immich, I was able to successfully migrate all my assets along with its albums to immich. But there were few things like people match that was lacking. I loved Immich UI on the whole but for organizing content I felt its quite restricted and I had to do a lot of things in bulk instead of opening each asset and doing it. Hence I built this tool (continuing to itereate) to make my life and any other Immich user's life easier.
🚀 Getting Started
🐬 Using Docker
Power-tools is designed to be used alongside Immich, and there are two ways you can run it.
Method 1 - Docker Compose ( Recommended )
Add the following into your docker compose as a new service along side other immich services. Make sure you've power-tools
in same network as immich.
See the sample docker-compose-all-immich.yml file for reference.
services:
# Other services...
power-tools:
container_name: immich_power_tools
image: ghcr.io/varun-raj/immich-power-tools:latest
ports:
- "8001:3000"
env_file:
- .env
Add the Immich API Key and immich url's to the env file (which you already have for the immich)
IMMICH_API_KEY= # your_immich_api_key
IMMICH_URL = "http://local-ip-of-immich:port" # Your immich instace ip address and port
EXTERNAL_IMMICH_URL = "https://external-address" # External address of immich
Refer here for obtaining Immich API Key: https://immich.app/docs/features/command-line-interface#obtain-the-api-key
Method 2 - Portainer
If you're using portainer, run the docker using docker run
and add the power tools to the same network as immich.
docker run -d --name immich_power_tools -p 8001:3000 --env-file .env ghcr.io/varun-raj/immich-power-tools:latest
🚀 For local development
[!NOTE]
Please usebun
to run the project. If you don't havebun
installed, checkout bun.sh for installation.
Copy paste the .env.example
to .env
and fill in the values.
IMMICH_URL="" # Immich URL
IMMICH_API_KEY="" # Immich API Key
DB_USERNAME="" # Postgress Database Username
DB_PASSWORD = "" # Postgres Database Password
DB_HOST = "" # Postgres Host (IP address or hostname of the database)
DB_PORT = "" # Postgres Port number (Default: 5432)
DB_DATABASE_NAME = "" # Name of the database
[!NOTE]
Make sure you have postgres port exposed on you machine.
Refer here for obtaining Immich API Key: https://immich.app/docs/features/command-line-interface#obtain-the-api-key
Run the development server:
bun run dev
Features
Immich Related
- [x] Manage People
- [x] Smart Merge
- [ ] Manage Albums
- [ ] Bulk Delete
- [ ] Bulk Edit
- [ ] Filters
- [x] Potential Albums
- [ ] Statistics
- [x] EXIF Data
- [ ] Assets Overtime Chart
Tech Related
- [x] Dark Mode
- [x] Dockerize
- [ ] Authentication
- [x] Push to github packages
Tech Stack
- Next.js for infrastructure
- Tailwind CSS for styling
- Shadcn for UI Components
- Axios for API calls
Contributing
Feel free to contribute to this project, I'm open to any suggestions and improvements. Please read the CONTRIBUTING.md for more details.