https://github.com/jackra1n/czkawka-web
A lightning-fast, minimalist web frontend for the czkawka duplicate file finder
https://github.com/jackra1n/czkawka-web
cleaner duplicates multiplatform rust similar-images similar-music similar-videos svelte sveltekit
Last synced: 23 days ago
JSON representation
A lightning-fast, minimalist web frontend for the czkawka duplicate file finder
- Host: GitHub
- URL: https://github.com/jackra1n/czkawka-web
- Owner: jackra1n
- License: agpl-3.0
- Created: 2026-04-20T20:43:28.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-06-05T21:40:11.000Z (about 1 month ago)
- Last Synced: 2026-06-05T22:22:23.126Z (about 1 month ago)
- Topics: cleaner, duplicates, multiplatform, rust, similar-images, similar-music, similar-videos, svelte, sveltekit
- Language: Svelte
- Homepage:
- Size: 2.46 MB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# czkawka-web
[](https://github.com/jackra1n/czkawka-web/actions/workflows/ci.yml)
[](https://github.com/jackra1n/czkawka-web/releases)
[](LICENSE)
A lightning-fast, minimalist web frontend for the [Czkawka](https://github.com/qarmin/czkawka) duplicate file finder.
I built this because I wanted to run Czkawka on my server, but I needed a good UI and easy Docker deployment for it.

Image swipe comparison mode:

## Features
- **All Czkawka scans:** Supports every scan type that Czkawka offers.
- **Image comparisons:** Side-by-side, swipe, and onion skin comparison modes.
- **Fullscreen preview:** View images and videos in fullscreen mode.
- **Keyboard navigation:** Navigate through files using arrow keys and mark duplicates with space.
- **Docker deployment:** Easy deployment on headless servers via Docker.
## Docker
Pull the pre-built image from GitHub Container Registry:
```bash
docker pull ghcr.io/jackra1n/czkawka-web
```
### Run
```bash
docker run -d \
--name czkawka-web \
-p 6198:6198 \
-v czkawka-web-data:/data \
-v /path/to/your/files:/mnt/files \
ghcr.io/jackra1n/czkawka-web
```
### Docker Compose
```yaml
services:
czkawka-web:
image: ghcr.io/jackra1n/czkawka-web
container_name: czkawka-web
ports:
- "6198:6198"
volumes:
- ./data:/data
# Mount directories you want to scan:
# - /path/on/host/to/files:/mnt/files
restart: unless-stopped
```
Then start it:
```bash
docker compose up -d
```
## Tech Stack
This project is built with an emphasis on zero bloat and high performance.
- **Backend:** [Rust](https://www.rust-lang.org/) + [Axum](https://github.com/tokio-rs/axum)
- **Frontend:** [SvelteKit](https://kit.svelte.dev/)
- [Bun](https://bun.sh/)
- [Mise](https://mise.jdx.dev/)
## Development / Local Build
If you want to build the image locally from source instead of using the pre-built one, use the development compose file:
```bash
cp .env.example .env
# Edit .env and set SCAN_PATH to the directory you want to scan
mkdir -p data
docker compose -f compose.dev.yaml up
```
If you use [Mise](https://mise.jdx.dev/), you can also run:
```bash
mise run docker
```
## Acknowledgments
A huge thanks to [qarmin](https://github.com/qarmin) for creating and maintaining [czkawka](https://github.com/qarmin/czkawka). This project wouldn't be possible without the incredible work put into that amazing project.