Top Related Projects
AI-Powered Photos App for the Decentralized Web 🌈💎✨
A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.
A self-hosted open source photo management service. This is the repository of the backend.
Quick Overview
Immich is a self-hosted photo and video backup solution that allows users to automatically upload their media from various devices to a centralized server. It provides a user-friendly web interface for managing and organizing the uploaded content.
Pros
- Automatic Backup: Immich automatically uploads photos and videos from connected devices, ensuring your media is securely backed up.
- Cross-Platform Compatibility: Immich supports a wide range of devices, including smartphones, tablets, and computers, making it easy to use across different platforms.
- User-Friendly Interface: The web-based interface is intuitive and easy to navigate, allowing users to manage their media effectively.
- Self-Hosted Solution: Immich is a self-hosted application, giving users full control over their data and privacy.
Cons
- Setup Complexity: Setting up Immich may require some technical expertise, as it involves deploying a Docker-based application stack.
- Limited Mobile App: While Immich provides a web interface, the mobile app experience is currently limited, which may be a drawback for some users.
- Ongoing Maintenance: As a self-hosted solution, users are responsible for maintaining and updating the Immich server, which can require some technical knowledge.
- Limited Sharing Options: The current version of Immich has limited sharing capabilities, which may be a limitation for users who need to share their media with others.
Getting Started
To get started with Immich, follow these steps:
- Install Docker and Docker Compose on your server or local machine.
- Clone the Immich repository from GitHub:
git clone https://github.com/immich-app/immich.git
- Navigate to the project directory and start the Immich stack using Docker Compose:
cd immich docker-compose up -d
- Access the Immich web interface by opening your web browser and navigating to
http://localhost:3000
. - Follow the on-screen instructions to complete the initial setup and create your Immich account.
- Configure your devices to automatically upload media to the Immich server.
Competitor Comparisons
AI-Powered Photos App for the Decentralized Web 🌈💎✨
Pros of PhotoPrism
- More mature project with a larger community and longer development history
- Offers advanced features like facial recognition and geo-tagging out of the box
- Supports a wider range of file formats, including RAW images
Cons of PhotoPrism
- Heavier resource usage, especially for larger photo libraries
- Less focus on mobile-first experience compared to Immich
- More complex setup process, particularly for non-technical users
Code Comparison
PhotoPrism (Go):
func (m *Search) Photos(f form.SearchPhotos) (results PhotoResults, err error) {
s := UnscopedDb().Table("photos").Select("photos.*").
Where("photos.deleted_at IS NULL").
Where("photos.photo_quality >= 3")
// ... (additional query logic)
}
Immich (TypeScript):
async searchAssets(dto: SearchAssetDto, userId: string): Promise<AssetResponseDto[]> {
const { q, query, withArchived } = dto;
const queryBuilder = this.assetRepository
.createQueryBuilder('asset')
.where('asset.ownerId = :userId', { userId });
// ... (additional query logic)
}
Both projects use different languages and database query approaches, but aim to provide efficient photo search functionality.
A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.
Pros of Lychee
- Lightweight and easy to set up
- Supports multiple users and sharing options
- Offers a clean, minimalist interface
Cons of Lychee
- Limited features compared to Immich
- Less active development and community support
- Lacks advanced AI-powered features
Code Comparison
Lychee (PHP):
public function upload(Request $request)
{
$request->validate(['photo' => 'required|image']);
$photo = $request->file('photo');
$filename = time() . '.' . $photo->getClientOriginalExtension();
$photo->move(public_path('uploads'), $filename);
}
Immich (TypeScript):
async uploadAsset(file: Express.Multer.File, userId: string): Promise<Asset> {
const asset = new Asset();
asset.originalPath = file.path;
asset.deviceAssetId = file.filename;
asset.ownerId = userId;
return this.assetRepository.save(asset);
}
Both projects handle file uploads, but Immich's implementation is more structured and typed, reflecting its more modern architecture. Lychee's code is simpler but less robust. Immich offers more advanced features and better scalability, while Lychee provides a straightforward solution for basic photo management needs.
A self-hosted open source photo management service. This is the repository of the backend.
Pros of LibrePhotos
- More mature project with a longer development history
- Supports face recognition and object detection out of the box
- Offers a web-based interface for easy access from any device
Cons of LibrePhotos
- Less active development compared to Immich
- More complex setup process
- Heavier resource requirements due to additional features
Code Comparison
LibrePhotos (Python):
@api_view(['POST'])
@permission_classes((IsAuthenticated,))
def upload_photo(request):
image_file = request.FILES['file']
md5 = compute_md5(image_file)
# ... (additional processing)
Immich (TypeScript):
@Post('upload')
@UseInterceptors(FileInterceptor('file'))
async uploadImage(
@UploadedFile() file: Express.Multer.File,
@User() user: UserEntity,
) {
return this.assetService.uploadImage(file, user);
}
Both projects use different languages and frameworks, but they share similar concepts for handling file uploads. LibrePhotos uses Django's function-based views, while Immich employs NestJS decorators for routing and file handling. Immich's code appears more modular and follows TypeScript's strong typing, potentially leading to better maintainability.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
High performance self-hosted photo and video management solution
Català Español Français Italiano æ¥æ¬èª íêµì´ Deutsch Nederlands Türkçe ä¸æ Ð ÑÑÑкий Português Brasileiro Svenska اÙعربÙØ© Tiếng Viá»t ภาษาà¹à¸à¸¢
Disclaimer
- â ï¸ The project is under very active development.
- â ï¸ Expect bugs and breaking changes.
- â ï¸ Do not use the app as the only way to store your photos and videos.
- â ï¸ Always follow 3-2-1 backup plan for your precious photos and videos!
[!NOTE] You can find the main documentation, including installation guides, at https://immich.app/.
Links
Demo
Access the demo here. The demo is running on a Free-tier Oracle VM in Amsterdam with a 2.4Ghz quad-core ARM64 CPU and 24GB RAM.
For the mobile app, you can use https://demo.immich.app/api
for the Server Endpoint URL
Login credentials
Password | |
---|---|
demo@immich.app | demo |
Features
Features | Mobile | Web |
---|---|---|
Upload and view videos and photos | Yes | Yes |
Auto backup when the app is opened | Yes | N/A |
Prevent duplication of assets | Yes | Yes |
Selective album(s) for backup | Yes | N/A |
Download photos and videos to local device | Yes | Yes |
Multi-user support | Yes | Yes |
Album and Shared albums | Yes | Yes |
Scrubbable/draggable scrollbar | Yes | Yes |
Support raw formats | Yes | Yes |
Metadata view (EXIF, map) | Yes | Yes |
Search by metadata, objects, faces, and CLIP | Yes | Yes |
Administrative functions (user management) | No | Yes |
Background backup | Yes | N/A |
Virtual scroll | Yes | Yes |
OAuth support | Yes | Yes |
API Keys | N/A | Yes |
LivePhoto/MotionPhoto backup and playback | Yes | Yes |
Support 360 degree image display | No | Yes |
User-defined storage structure | Yes | Yes |
Public Sharing | Yes | Yes |
Archive and Favorites | Yes | Yes |
Global Map | Yes | Yes |
Partner Sharing | Yes | Yes |
Facial recognition and clustering | Yes | Yes |
Memories (x years ago) | Yes | Yes |
Offline support | Yes | No |
Read-only gallery | Yes | Yes |
Stacked Photos | Yes | Yes |
Tags | No | Yes |
Folder View | No | Yes |
Translations
Read more about translations here.
Repository activity
Star history
Contributors
Top Related Projects
AI-Powered Photos App for the Decentralized Web 🌈💎✨
A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.
A self-hosted open source photo management service. This is the repository of the backend.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot