pigallery2
A fast directory-first photo gallery website, with rich UI, optimized for running on low resource servers (especially on raspberry pi)
Top Related Projects
AI-Powered Photos App for the Decentralized Web 🌈💎✨
👉 Go to chevereto/chevereto for newer Chevereto releases. Self-hosted image sharing software, your own Flickr/Imgur with your very own rules.
A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.
A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.
Self hosted alternative to Google Photos
Quick Overview
PiGallery2 is a self-hosted, responsive web photo gallery application. It's designed to organize and display photos and videos, with a focus on fast navigation and easy setup. PiGallery2 runs on various platforms, including low-power devices like Raspberry Pi.
Pros
- Easy to set up and use, with a user-friendly interface
- Supports various media formats, including photos and videos
- Offers face recognition and GPS location features
- Responsive design, works well on both desktop and mobile devices
Cons
- Requires self-hosting, which may be challenging for non-technical users
- Limited customization options compared to some other gallery solutions
- May have performance issues with very large photo collections
- Depends on external tools for some features (e.g., ExifTool for metadata extraction)
Getting Started
To set up PiGallery2:
- Install Node.js (version 16 or later)
- Clone the repository:
git clone https://github.com/bpatrik/pigallery2.git cd pigallery2 - Install dependencies:
npm install - Build the application:
npm run build - Start PiGallery2:
npm start - Access the gallery at
http://localhost:80
For more detailed instructions and configuration options, refer to the project's README and documentation.
Competitor Comparisons
AI-Powered Photos App for the Decentralized Web 🌈💎✨
Pros of PhotoPrism
- More advanced AI-powered features, including facial recognition and object detection
- Supports a wider range of file formats, including RAW images and videos
- Offers a more polished and modern user interface
Cons of PhotoPrism
- Higher system requirements and resource usage
- Steeper learning curve due to more complex features
- Lacks some customization options available in PiGallery2
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 code)
}
PiGallery2 (TypeScript):
export class SearchManager {
public static search(text: string): Promise<SearchResult> {
return SQLConnection.selectFromDB(
'SELECT * FROM media WHERE name LIKE ? OR directory LIKE ?',
['%' + text + '%', '%' + text + '%']
);
}
}
The code snippets show different approaches to implementing search functionality. PhotoPrism uses a more complex query builder in Go, while PiGallery2 employs a simpler SQL query in TypeScript. This reflects the overall difference in complexity and feature set between the two projects.
👉 Go to chevereto/chevereto for newer Chevereto releases. Self-hosted image sharing software, your own Flickr/Imgur with your very own rules.
Pros of Chevereto-free
- More user-friendly interface for non-technical users
- Built-in social features like user profiles and image sharing
- Supports multiple storage providers out of the box
Cons of Chevereto-free
- Less flexible for customization compared to PiGallery2
- Requires PHP and MySQL, which may be less performant for large galleries
- Limited metadata support and advanced search capabilities
Code Comparison
PiGallery2 (TypeScript):
@Get('gallery/:galleryPath(*)')
public async getGallery(@Param('galleryPath') galleryPath: string): Promise<GalleryDTO> {
return this.galleryService.getGallery(galleryPath);
}
Chevereto-free (PHP):
public function get_album($id) {
$album = Album::getSingle($id);
if (!$album) {
return $this->throw_error(404);
}
return $album;
}
PiGallery2 uses TypeScript and a more modern, modular approach, while Chevereto-free relies on PHP with a more traditional object-oriented structure. PiGallery2's code appears more concise and type-safe, potentially offering better maintainability for developers familiar with TypeScript and modern web frameworks.
A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.
Pros of Lychee
- More polished and user-friendly interface
- Better support for video files
- More active development and larger community
Cons of Lychee
- Less flexible folder structure management
- Fewer advanced search and filtering options
- Limited support for RAW image formats
Code Comparison
Lychee (PHP):
public function add(Request $request)
{
$request->validate([
'albumID' => 'required|string',
'function' => 'required|string',
]);
PiGallery2 (TypeScript):
public async addPhoto(file: Express.Multer.File, metadata: PhotoMetadata): Promise<Photo> {
const photo = new Photo();
photo.name = file.originalname;
photo.metadata = metadata;
Both projects use different programming languages, with Lychee primarily using PHP and PiGallery2 using TypeScript. Lychee's code structure tends to be more straightforward, while PiGallery2 offers more type safety and object-oriented patterns.
Lychee focuses on simplicity and ease of use, making it a good choice for users who want a quick setup and intuitive interface. PiGallery2, on the other hand, provides more advanced features and customization options, catering to users who need granular control over their photo management system.
A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.
Pros of Lychee
- More polished and user-friendly interface
- Better support for album organization and management
- Integrated image editing features
Cons of Lychee
- Less flexible in terms of customization options
- Fewer advanced features for power users
- More resource-intensive, especially for large collections
Code Comparison
Lychee (PHP):
public function add(Request $request)
{
$request->validate([
'albumID' => 'nullable|string',
'function' => 'required|string',
]);
// ... (implementation)
}
PiGallery2 (TypeScript):
@Post('/upload')
@UseInterceptors(FileInterceptor('file'))
async uploadFile(@UploadedFile() file: Express.Multer.File, @Body() body: any) {
// ... (implementation)
}
Both projects use different languages and frameworks, making direct code comparison challenging. Lychee uses PHP with Laravel, while PiGallery2 is built with TypeScript and NestJS. Lychee's code tends to be more concise due to Laravel's conventions, while PiGallery2's TypeScript code offers stronger typing and more explicit structure.
Self hosted alternative to Google Photos
Pros of Ownphotos
- Built with Django and React, offering a modern web framework and UI library
- Includes face recognition and object detection features
- Supports automatic album creation based on events and places
Cons of Ownphotos
- Less active development compared to PiGallery2
- Fewer stars and forks on GitHub, indicating a smaller community
- Limited documentation and setup instructions
Code Comparison
PiGallery2 (TypeScript):
export class PhotoDTO {
public id: number;
public name: string;
public metadata: PhotoMetadata;
}
Ownphotos (Python):
class Photo(models.Model):
image_hash = models.CharField(primary_key=True, max_length=32, null=False)
thumbnail = models.ImageField(upload_to='thumbnails')
image = models.ImageField(upload_to='photos')
Both projects use strongly-typed languages, with PiGallery2 utilizing TypeScript for frontend development and Ownphotos using Python with Django for backend implementation. PiGallery2 focuses on a more traditional photo gallery structure, while Ownphotos includes additional features like face recognition and event-based organization.
PiGallery2 has a larger community and more frequent updates, potentially offering better long-term support and feature additions. However, Ownphotos provides unique AI-powered features that may appeal to users looking for advanced photo organization capabilities.
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
PiGallery2
PiGallery2 is a fast directory-first photo gallery website, optimized for running on low-resource servers (especially on Raspberry Pi).
ð Key Features
- â¡ Fast: Optimized for low-end hardware.
- âï¸ Simple: Point to your photos and you are ready.
- ð Directory-first: Shows your folder structure as it is.
- Read-only: Your photo folder is never modified.
Try our live demo! (First load may take up to 60s while the server boots up)
ð Getting Started
The official and recommended way to run PiGallery2 is using Docker.
Install with Docker (Recommended)
Native Installation (Unsupported)
Native installation is possible for users familiar with Node.js but is not officially supported.
ð Documentation
For more detailed information, please see our Documentation Website or the docs/ folder:
ð¤ Contributing
Contributions are welcome! Please read our Contribution Guide to get started.
â Star History
ð License
PiGallery2 is licensed under the MIT License.
Top Related Projects
AI-Powered Photos App for the Decentralized Web 🌈💎✨
👉 Go to chevereto/chevereto for newer Chevereto releases. Self-hosted image sharing software, your own Flickr/Imgur with your very own rules.
A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.
A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.
Self hosted alternative to Google Photos
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