Declutter is a self-hosted photo management tool that helps you sort, review, and archive your photo collection β straight from your browser.
- π Browse your photo collection by month or folder
- β‘ Presort raw dumps into dated folders automatically
- π₯ Burst detection β compare similar photos side by side in a lightbox
- π Drag & drop photos into albums (desktop) or use the move picker (mobile)
- π§ Smart date prefill β selected photos fill in the date range automatically
- π English & Dutch interface
- π Optional Immich integration
- π³ Runs entirely in Docker β no installation required
1. Download the two required files
curl -O https://raw.githubusercontent.com/neforce/declutter/main/docker-compose.yml
curl -O https://raw.githubusercontent.com/neforce/declutter/main/.env.example2. Create your .env
cp .env.example .envOpen .env and set at minimum:
BASE_DIR=/photos
/photosis the path inside the container. You map your actual photo folder indocker-compose.yml(see below).
3. Set your photo folder in docker-compose.yml
volumes:
- /your/photos/path:/photos # β change this to your actual folder4. Start
docker compose up -dOpen http://localhost:8765 in your browser.
docker compose pull && docker compose up -d| Variable | Default | Description |
|---|---|---|
BASE_DIR |
β | Photo folder path (inside container: /photos) |
RAW_DIR |
ruwe_data |
Raw dump subfolder (relative to BASE_DIR) |
INBOX_DIR |
in_behandeling |
Sorting/inbox subfolder |
ARCHIVE_DIR |
verwerkt |
Archive subfolder |
DATELESS_DIR |
datumloos |
Archive subfolder for items without a date |
TRASH_DIR |
prullenbak |
Trash subfolder |
DATA_DIR |
/data |
Cache & app data (leave as-is for Docker) |
PORT |
8765 |
Web interface port |
IMMICH_URL |
β | Immich instance URL (optional) |
IMMICH_API_KEY |
β | Immich API key (optional) |
DEBUG |
false |
Enable debug logging |
PRESORT_DEBUG |
false |
Log detailed presort output per file |
Upgrading from an older version? The Dutch variable names
ARCHIEF_DIR,UITZOEKEN_DIR,DUMP_DIR,PRULLENBAK_DIRandDATUMLOOS_DIRstill work but are deprecated. Declutter will print a warning on startup. Please rename them to the English equivalents listed above at your earliest convenience.
A tour of the smarter features you might not notice at first glance.
Select one or more photos and click + to create a new folder. The date is filled in automatically based on your selection:
- One photo β the exact date:
2026-03-15 - Multiple photos spanning different days β the full range:
2026-03-15 - 2026-03-22
All you need to add is a name, e.g. 2026-03-15 - 2026-03-22 Holiday.
If photos are selected when you create a folder, the button changes from Create to Create and move β the photos land there immediately. No extra step needed.
Click a photo, then hold Shift and click another: everything in between is selected (or deselected) in one go.
Your selection is not lost when you switch to a different month or folder. Useful for gathering photos from multiple periods to move them all at once.
The browser remembers which month or folder you last viewed. On reopening, that view is loaded automatically β including a red bookmark ("last visited here") placed at the photo you had scrolled to.
Photos taken within a few seconds of each other are automatically grouped. Click a burst group to open the lightbox:
- Give the photos you want to keep a heart (click or press H)
- Click Confirm β photos without a heart go to the trash
- Use β β to navigate through the group
Click the βΉ icon on any thumbnail for detailed information: exact capture date and time, file size, and β if the photo contains GPS data β the location on a map.
Declutter reads the date in this order: EXIF original β EXIF digitized β date pattern in the filename β file modification time. You always get the most reliable date available.
Not sure about a photo? Click β³ Later to move the selection to the dedicated Review later folder. It sits at the top of the To sort section so you can always find it quickly.
The Clean up button removes empty YYYY-MM folders from To sort (useful after finishing a period). Before anything is deleted, you see a list of exactly which folders will be removed β so you never accidentally clean up too much.
- Drag the divider between the folder tree and the photo grid to resize the panel.
- Use the size slider in the toolbar to make thumbnails larger or smaller.
Both settings are saved and restored the next time you open the app.
You can drag folders themselves to a different folder or to a section header (Archived or No date) to reorganise your structure.
Double-click a folder name in the tree, or click the β icon. The rename is applied to disk immediately.
Dragging doesn't work well on touch screens. Instead:
- Tap thumbnails to select photos
- A green bar π Move toβ¦ appears at the bottom of the screen
- Tap it to open a searchable list of all available folders
Declutter watches the folder structure in the background. If files appear or disappear outside the app (e.g. via Immich or another tool), the tree updates automatically β no page reload needed. All moved files are visible in the activity log at the bottom of the page.
hub.docker.com/r/neforce/declutter
If Declutter saves you time, consider buying me a coffee β
Bitcoin: 32u7kzd2vEDWDddTcXcEaUbuZGxQoynu5y
MIT