Files
immich-power-tools/README.md
T
2024-09-07 19:37:18 +05:30

114 lines
3.9 KiB
Markdown

# ![Logo](./public/favicon-32x32.png) 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.
[Watch Demo Video here](https://www.loom.com/embed/13aa90d8ab2e4acab0993bdc8703a750?sid=71498690-b745-473f-b239-a7bdbe6efc21)
[![Immich Power Tools](./screenshots/screenshot-1.png)](https://www.loom.com/embed/13aa90d8ab2e4acab0993bdc8703a750?sid=71498690-b745-473f-b239-a7bdbe6efc21)
## 💭 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](./docker-compose-all-immich.yml) file for reference.
```yaml
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)
```bash
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.
```bash
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 use `bun` to run the project. If you don't have `bun` installed, checkout [bun.sh](https://bun.sh/) for installation.
Copy paste the `.env.example` to `.env` and fill in the values.
```bash
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:
```bash
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](https://nextjs.org/) for infrastructure
- [Tailwind CSS](https://tailwindcss.com/) for styling
- [Shadcn](https://shadcn.com/) for UI Components
- [Axios](https://axios-http.com/) for API calls
## Contributing
Feel free to contribute to this project, I'm open to any suggestions and improvements. Please read the [CONTRIBUTING.md](./CONTRIBUTING.md) for more details.