Advanced Shared Album Manager for Linux.
The gallery manager your family actually needed.
Gacela is a photo gallery manager built for families and teams sharing the same Linux computer. Instead of scattering duplicate files across user folders, Gacela keeps your original images intact while giving fast access to private and shared collections.
- Smart multi-user workflow: switch between private and shared galleries from the same app.
- Safer photo management: photo locking helps prevent accidental deletions.
- Fast previews: thumbnails are optimized for quick browsing.
- Event-driven UI: a responsive interface coordinated through internal services.
- Lightweight desktop app: fast startup and low resource usage.
- Some tools are powerful but heavy.
- Others are simple but do not handle shared usage well.
- Many duplicate or reorganize files in ways that do not fit a family workflow.
- Your original photos remain yours.
- Private and shared environments are separated clearly.
- The app favors confirmation before critical actions.
- A single gallery workflow can serve a whole household or small team.
Gacela is designed with pragmatic engineering principles:
- Clean Architecture: separation between business logic and infrastructure.
- Mediator pattern: UI coordination is centralized through services such as
PhotoSelectionService. - SQLite-backed metadata: fast local access to gallery data.
- Binary thumbnails: quick preview loading from the database.
- Decoupled UI components: forms and services collaborate without excessive coupling.
- Private spaces per user
- Shared albums for household memories
- Smart import flow
- SQLite-based storage
- No vendor lock-in
- Families sharing one Linux desktop
- Small offices with collaborative photo archives
- Home servers or NAS-like gallery setups
- Community or group photography projects
Screenshots placeholder
Contributions are welcome, whether you are reporting bugs, suggesting improvements, or sending code.
- Fork the repository
- Create a branch (
git checkout -b feature/my-change) - Commit your changes
- Push your branch
- Open a Pull Request
If you like, consider starring the repository.