1773ed5f95
Mirror to GitHub / mirror (push) Successful in 26s
Test and Lint / backend-test (push) Successful in 1m11s
continuous-integration/drone/push Build is passing
Test and Lint / frontend-test (push) Successful in 2m28s
Version and Release / version-bump (push) Successful in 32s
Version and Release / trigger-drone (push) Has been skipped
Original: feat: enhance security logging and ensure rate limit blocks are properly tracked - Add comprehensive logging for rate limit blocks with full request details - IP address (with proper proxy detection), user agent, headers, timestamps - Rate limit info (current count, limit, remaining, reset time) - Separate tracking for auth vs general endpoints - Enhance authentication failure logging - JWT validation failures with detailed error info - Admin auth attempts without token - Failed token validation with user context - All events include IP, path, method, user agent - Improve Winston logger configuration for production - Add automatic log rotation (10MB errors, 50MB combined) - Create separate security.log for auth/rate limit events - Ensure logs directory exists automatically - Add structured JSON format for log aggregation - Support container logging with LOG_TO_CONSOLE env var - Create comprehensive documentation - Security logging guide with examples - Monitoring recommendations - Configuration reference - Add test script to verify logging functionality All rate limit settings remain configurable via admin panel: - Window duration, max requests, auth limits - Skip authenticated requests option - Public endpoints only option 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
185 lines
6.8 KiB
Markdown
185 lines
6.8 KiB
Markdown
# 📸 PicPeak - Open Source Photo Sharing for Events
|
|
|
|
<div align="center">
|
|
<img src="docs/picpeak-logo.png" alt="PicPeak Logo" width="300" />
|
|
|
|
[](https://opensource.org/licenses/MIT)
|
|
[](https://www.docker.com/)
|
|
[](https://nodejs.org/)
|
|
[](https://reactjs.org/)
|
|
</div>
|
|
|
|
**PicPeak** is a powerful, self-hosted open-source alternative to commercial photo-sharing platforms like PicDrop.com and Scrapbook.de. Designed specifically for photographers and event organizers, PicPeak makes it simple to share beautiful, time-limited photo galleries with clients while maintaining full control over your data and branding.
|
|
|
|

|
|
|
|
## 🌟 Why Choose PicPeak?
|
|
|
|
Unlike expensive SaaS solutions, PicPeak gives you:
|
|
|
|
- **💰 No Monthly Fees** - One-time setup, unlimited galleries
|
|
- **🔒 Complete Data Control** - Your photos stay on your server
|
|
- **🎨 White-Label Ready** - Full branding customization
|
|
- **📱 Mobile-First Design** - Beautiful on all devices
|
|
- **🚀 Lightning Fast** - Optimized performance and caching
|
|
- **🌍 Multi-Language** - Built-in i18n support (EN, DE)
|
|
|
|
## ✨ Key Features
|
|
|
|
### For Photographers
|
|
- 📁 **Drag & Drop Upload** - Simply drop photos into folders
|
|
- ⏰ **Auto-Expiring Galleries** - Set expiration dates (default: 30 days)
|
|
- 🔐 **Password Protection** - Secure client galleries
|
|
- 📧 **Automated Emails** - Creation confirmations and expiration warnings
|
|
- 📊 **Analytics Dashboard** - Track views, downloads, and engagement
|
|
- 🎨 **Custom Themes** - Match your brand perfectly
|
|
|
|
### For Clients
|
|
- 🖼️ **Beautiful Galleries** - Clean, modern interface
|
|
- 📱 **Mobile Optimized** - Swipe through photos on any device
|
|
- ⬇️ **Bulk Downloads** - Download all photos with one click
|
|
- 🔍 **Smart Search** - Find photos quickly
|
|
- 📤 **Guest Uploads** - Optional client photo uploads
|
|
|
|
### Technical Excellence
|
|
- 🐳 **Docker Ready** - Deploy in minutes
|
|
- 🔄 **Auto-Processing** - Automatic thumbnail generation
|
|
- 💾 **Smart Storage** - Automatic archiving of expired galleries
|
|
- 🛡️ **Security First** - JWT auth, rate limiting, CORS protection
|
|
- 📈 **Scalable** - From small studios to large agencies
|
|
|
|
## 🚀 Quick Start
|
|
|
|
Get PicPeak running in under 5 minutes:
|
|
|
|
```bash
|
|
# Clone the repository
|
|
git clone https://github.com/the-luap/picpeak.git
|
|
cd picpeak
|
|
|
|
# Copy environment template
|
|
cp .env.example .env
|
|
|
|
# Edit configuration (required: JWT_SECRET)
|
|
nano .env
|
|
|
|
# Start with Docker Compose
|
|
docker-compose up -d
|
|
|
|
# Access at http://localhost:3005
|
|
```
|
|
|
|
## 📖 Documentation
|
|
|
|
- 📘 [**Deployment Guide**](DEPLOYMENT.md) - Detailed installation instructions
|
|
- 🤝 [**Contributing**](CONTRIBUTING.md) - How to contribute
|
|
- 📜 [**License**](LICENSE) - MIT License
|
|
- 🔒 [**Security**](SECURITY.md) - Security policies
|
|
- 📋 [**Code of Conduct**](CODE_OF_CONDUCT.md) - Community guidelines
|
|
|
|
## 🎯 Use Cases
|
|
|
|
Perfect for:
|
|
- 💒 **Wedding Photographers** - Share ceremony photos securely
|
|
- 🎂 **Event Photography** - Birthday parties, corporate events
|
|
- 📸 **Portrait Studios** - Client galleries with download limits
|
|
- 🏢 **Corporate Events** - Internal photo sharing with branding
|
|
- 🎓 **School Photography** - Secure parent access with expiration
|
|
|
|
## 🏗️ Tech Stack
|
|
|
|
- **Backend**: Node.js, Express, SQLite/PostgreSQL
|
|
- **Frontend**: React, Tailwind CSS, Framer Motion
|
|
- **Storage**: File-based with automatic archiving
|
|
- **Email**: SMTP with customizable templates
|
|
- **Analytics**: Privacy-focused with Umami integration
|
|
|
|
## 🤝 Contributing
|
|
|
|
We love contributions! PicPeak is built by photographers, for photographers. Whether you're fixing bugs, adding features, or improving documentation, your help is welcome.
|
|
|
|
See our [Contributing Guide](CONTRIBUTING.md) for details.
|
|
|
|
## 📊 Comparison with Alternatives
|
|
|
|
| Feature | PicPeak | PicDrop | Scrapbook.de |
|
|
|---------|---------|---------|--------------|
|
|
| Self-Hosted | ✅ | ❌ | ❌ |
|
|
| Custom Branding | ✅ Full | Limited | Limited |
|
|
| Monthly Cost | $0 | $29-199 | €19-99 |
|
|
| Storage Limit | Unlimited* | 50-500GB | 100-1000GB |
|
|
| Client Uploads | ✅ | ✅ | ✅ |
|
|
| API Access | ✅ | Paid | ❌ |
|
|
| Open Source | ✅ | ❌ | ❌ |
|
|
|
|
*Limited only by your server storage
|
|
|
|
## 🛡️ Security
|
|
|
|
PicPeak takes security seriously:
|
|
- 🔐 Password hashing with bcrypt
|
|
- 🎫 JWT-based authentication
|
|
- 🚦 Rate limiting on all endpoints
|
|
- 🛡️ CORS protection
|
|
- 📝 Activity logging
|
|
- 🔒 Secure file access
|
|
|
|
Found a security issue? Please email security@example.com
|
|
|
|
## 📸 Screenshots
|
|
|
|
### 🎛️ **Admin Dashboard**
|
|
Get a complete overview of your photo galleries, analytics, and system status.
|
|
|
|
<img src="docs/screenshot-dashboard.png" alt="PicPeak Admin Dashboard" width="800" />
|
|
|
|
### 📊 **Analytics & Insights**
|
|
Track gallery performance, view statistics, and monitor user engagement.
|
|
|
|
<img src="docs/screenshot-analytics.png" alt="PicPeak Analytics Dashboard" width="800" />
|
|
|
|
### 📁 **Event Management**
|
|
Organize and manage your photo galleries with intuitive event management tools.
|
|
|
|
<img src="docs/screenshots-events.png" alt="PicPeak Events Management" width="800" />
|
|
|
|
### ✨ **Key Interface Highlights**
|
|
|
|
<details>
|
|
<summary>👆 Click to see more interface details</summary>
|
|
|
|
#### What makes PicPeak's interface special:
|
|
|
|
- **🎨 Clean Design**: Modern, photographer-friendly interface
|
|
- **📱 Responsive**: Perfect on desktop, tablet, and mobile
|
|
- **⚡ Fast Loading**: Optimized for quick photo browsing
|
|
- **🔒 Secure Access**: Password-protected galleries with expiration
|
|
- **📤 Easy Uploads**: Drag & drop functionality for effortless photo management
|
|
- **🎯 Client-Focused**: Intuitive gallery experience for your clients
|
|
|
|
</details>
|
|
|
|
## 🙏 Acknowledgments
|
|
|
|
PicPeak is inspired by the best features of commercial platforms while remaining completely open source. Special thanks to all contributors who make this project possible.
|
|
|
|
## 📄 License
|
|
|
|
PicPeak is released under the [MIT License](LICENSE). Use it freely for personal or commercial projects.
|
|
|
|
## 🚀 Ready to Get Started?
|
|
|
|
1. ⭐ **Star this repository** to show your support
|
|
2. 📖 Read the [Deployment Guide](DEPLOYMENT.md)
|
|
3. 🐛 Report issues or request features
|
|
4. 🤝 Join our community and contribute!
|
|
|
|
---
|
|
|
|
<p align="center">
|
|
Made with ❤️ by photographers, for photographers
|
|
<br>
|
|
<a href="https://github.com/the-luap/picpeak">GitHub</a> •
|
|
<a href="DEPLOYMENT.md">Documentation</a> •
|
|
<a href="https://github.com/the-luap/picpeak/issues">Support</a>
|
|
</p> |