1b4b497fdf
Mirror to GitHub / mirror (push) Successful in 44s
Test and Lint / backend-test (push) Successful in 1m42s
Test and Lint / frontend-test (push) Has been cancelled
Version and Release / version-bump (push) Has been cancelled
Version and Release / trigger-drone (push) Has been cancelled
- Remove all console.log/debug statements from production code - Add NODE_ENV checks for development-only logging - Remove test scripts (test-feedback, test-image-security, test-backup-*, test-restore) - Remove one-time fix scripts (fix-temp-photos, fix-migration-state, mark-migration-applied) - Remove sensitive files (.env.backup, ADMIN_CREDENTIALS.txt) - Update package.json to remove references to deleted scripts - Replace console statements with logger utility in backend - Secure error boundaries to not expose stack traces in production This makes the codebase production-ready with no debug output or test scripts. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
276 lines
7.3 KiB
Markdown
276 lines
7.3 KiB
Markdown
# 🚀 PicPeak Beta Setup Guide
|
|
|
|
This guide helps non-technical users install PicPeak on Raspberry Pi or VPS systems using the automated setup script.
|
|
|
|
## 📋 Quick Setup
|
|
|
|
### Step 1: Download and Run Setup Script
|
|
|
|
```bash
|
|
# Download PicPeak
|
|
wget -O setup-picpeak.sh https://raw.githubusercontent.com/the-luap/picpeak/main/setup-picpeak.sh
|
|
|
|
# Make it executable
|
|
chmod +x setup-picpeak.sh
|
|
|
|
# Run the setup
|
|
bash setup-picpeak.sh
|
|
```
|
|
|
|
**Or in one command:**
|
|
```bash
|
|
curl -fsSL https://raw.githubusercontent.com/the-luap/picpeak/main/setup-picpeak.sh | bash
|
|
```
|
|
|
|
### Step 2: Follow the Interactive Prompts
|
|
|
|
The script will guide you through:
|
|
1. ✅ System requirements check
|
|
2. 🐋 Docker installation (if needed)
|
|
3. 🌐 Domain/IP configuration
|
|
4. 📧 Email setup (optional)
|
|
5. 🔐 Automatic password generation
|
|
6. 📦 PicPeak download and configuration
|
|
7. 🚀 Service startup
|
|
|
|
## 📋 Prerequisites
|
|
|
|
### Minimum System Requirements
|
|
- **OS**: Ubuntu, Debian, Raspberry Pi OS, CentOS, or Fedora
|
|
- **RAM**: 2GB minimum (script will warn if less)
|
|
- **Storage**: 20GB free space minimum
|
|
- **Network**: Internet connection for downloads
|
|
|
|
### Supported Systems
|
|
- ✅ Ubuntu 20.04+
|
|
- ✅ Debian 11+
|
|
- ✅ Raspberry Pi OS (32-bit and 64-bit)
|
|
- ✅ CentOS 7+
|
|
- ✅ Fedora 30+
|
|
|
|
## 🛠️ What the Script Does
|
|
|
|
### Automatic Installation
|
|
1. **System Check**: Verifies RAM, disk space, and architecture
|
|
2. **Docker Setup**: Installs Docker and Docker Compose if missing
|
|
3. **Network Configuration**: Helps configure domain/IP access
|
|
4. **Email Configuration**: Optional setup for Gmail, SendGrid, or custom SMTP
|
|
5. **Security**: Generates secure passwords automatically
|
|
6. **Service Deployment**: Downloads, builds, and starts PicPeak
|
|
7. **SSL Support**: Optional Let's Encrypt SSL setup
|
|
|
|
### Generated Configurations
|
|
- Secure JWT secret (64 hex characters)
|
|
- Database password (PostgreSQL)
|
|
- Redis password
|
|
- Environment configuration file
|
|
- Docker Compose setup
|
|
|
|
## 🌐 Network Configuration Options
|
|
|
|
### 1. Local Network Access (Default)
|
|
- Uses your local IP address
|
|
- Accessible only on your local network
|
|
- Perfect for home/office use
|
|
|
|
### 2. Public IP Access
|
|
- Uses your server's public IP
|
|
- Accessible from the internet
|
|
- Requires firewall configuration
|
|
|
|
### 3. Domain Name
|
|
- Uses your custom domain (e.g., photos.mydomain.com)
|
|
- Supports SSL/HTTPS with Let's Encrypt
|
|
- Professional setup
|
|
|
|
### 4. Development Mode
|
|
- Uses localhost
|
|
- Only accessible from the same machine
|
|
- Good for testing
|
|
|
|
## 📧 Email Configuration
|
|
|
|
### Gmail (Recommended for Beginners)
|
|
1. Enable 2-Factor Authentication on your Google account
|
|
2. Generate an App Password for PicPeak
|
|
3. Use your Gmail address and the App Password
|
|
|
|
### SendGrid (Recommended for Production)
|
|
1. Sign up at sendgrid.com (free tier: 100 emails/day)
|
|
2. Create an API key
|
|
3. Verify your sender email address
|
|
|
|
### Custom SMTP
|
|
- Use any SMTP server
|
|
- Configure host, port, security, and credentials
|
|
|
|
### Skip Email Setup
|
|
- Configure later in the admin panel
|
|
- PicPeak works without email but notifications won't be sent
|
|
|
|
## 🔐 Security Features
|
|
|
|
### Automatic Password Generation
|
|
- JWT secret: 64 hex characters
|
|
- Database password: 32 base64 characters (no $ symbols)
|
|
- Redis password: 32 base64 characters (no $ symbols)
|
|
|
|
### First Login Security
|
|
- Auto-generated admin password shown in setup
|
|
- **Mandatory password change** on first login
|
|
- Strong password requirements enforced
|
|
|
|
### SSL/HTTPS Support
|
|
- Optional Let's Encrypt integration
|
|
- Automatic nginx reverse proxy setup
|
|
- Forced HTTPS redirects
|
|
|
|
## 📍 Access Information
|
|
|
|
After successful installation, you'll get:
|
|
|
|
### Access URLs
|
|
- **Gallery**: `http://your-domain:3000` (or `https://your-domain` with SSL)
|
|
- **Admin Panel**: `http://your-domain:3001/admin` (or `https://your-domain/admin` with SSL)
|
|
|
|
### Admin Credentials
|
|
- **Email**: `admin@example.com`
|
|
- **Password**: Auto-generated (shown during setup)
|
|
|
|
## 🚨 Important First Steps
|
|
|
|
### 1. Change Admin Password
|
|
- The password change is **mandatory** for security
|
|
- You cannot skip this step
|
|
- New password requirements:
|
|
- Minimum 12 characters
|
|
- Mixed case letters
|
|
- Numbers and special characters
|
|
|
|
### 2. Configure Email (if skipped)
|
|
1. Login to admin panel
|
|
2. Go to Settings → Email Configuration
|
|
3. Enter your SMTP details
|
|
4. Test email sending
|
|
|
|
### 3. Create Your First Gallery
|
|
1. Go to Admin Panel → Events
|
|
2. Click "Create New Event"
|
|
3. Upload photos to the generated folders
|
|
4. Share the gallery URL and password
|
|
|
|
## 🛠️ Management Commands
|
|
|
|
### Service Management
|
|
```bash
|
|
# View logs
|
|
cd ~/picpeak && docker compose logs -f
|
|
|
|
# Stop services
|
|
cd ~/picpeak && docker compose down
|
|
|
|
# Start services
|
|
cd ~/picpeak && docker compose up -d
|
|
|
|
# Restart services
|
|
cd ~/picpeak && docker compose restart
|
|
```
|
|
|
|
### Admin Password Reset
|
|
```bash
|
|
# Reset admin password
|
|
docker exec picpeak-backend node scripts/show-admin-credentials.js --reset
|
|
```
|
|
|
|
### Updates
|
|
```bash
|
|
cd ~/picpeak
|
|
git pull
|
|
docker compose down
|
|
docker compose build
|
|
docker compose up -d
|
|
```
|
|
|
|
## 🐛 Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
#### "Permission denied" when running script
|
|
```bash
|
|
chmod +x setup-picpeak.sh
|
|
```
|
|
|
|
#### "Docker command not found" after installation
|
|
```bash
|
|
# Log out and back in, or run:
|
|
newgrp docker
|
|
```
|
|
|
|
#### Can't access web interface
|
|
1. Check if services are running: `docker compose ps`
|
|
2. Check firewall: `sudo ufw allow 3000` and `sudo ufw allow 3001`
|
|
3. Verify URLs in browser match the setup configuration
|
|
|
|
#### 502 Bad Gateway
|
|
1. Wait 60 seconds for services to fully start
|
|
2. Check backend logs: `docker compose logs backend`
|
|
3. Restart frontend: `docker restart picpeak-frontend`
|
|
|
|
#### Email not working
|
|
1. Verify SMTP settings in admin panel
|
|
2. Check email queue: Admin Panel → Settings → Email
|
|
3. Test with a simple service like Gmail first
|
|
|
|
### Getting Help
|
|
1. Check the logs: `docker compose logs -f`
|
|
2. Review this guide and the main deployment guide
|
|
3. Search existing GitHub issues
|
|
4. Create a new issue with:
|
|
- Error messages
|
|
- System information (`uname -a`)
|
|
- Setup choices made
|
|
|
|
## 📁 File Locations
|
|
|
|
After installation:
|
|
- **Installation directory**: `~/picpeak`
|
|
- **Photos**: `~/picpeak/storage/events/`
|
|
- **Logs**: `~/picpeak/logs/`
|
|
- **Database**: Docker volume `picpeak_postgres-data`
|
|
- **Backups**: `~/picpeak/backup/`
|
|
|
|
## 🔒 Security Recommendations
|
|
|
|
### For Internet-Facing Installations
|
|
1. **Use HTTPS**: Enable SSL during setup
|
|
2. **Firewall**: Only open ports 80 and 443
|
|
3. **Updates**: Keep system and Docker updated
|
|
4. **Backups**: Configure automatic backups in admin panel
|
|
5. **Monitoring**: Regularly check logs for suspicious activity
|
|
|
|
### For Local Network Use
|
|
1. **Strong passwords**: Use the auto-generated passwords
|
|
2. **Network security**: Secure your local network
|
|
3. **Regular backups**: Even for local use
|
|
4. **Access control**: Only share admin credentials with trusted users
|
|
|
|
## 🎯 Next Steps
|
|
|
|
After installation:
|
|
1. **Complete admin setup** (change password)
|
|
2. **Configure email notifications**
|
|
3. **Create your first test gallery**
|
|
4. **Set up automated backups**
|
|
5. **Customize themes and branding**
|
|
6. **Configure analytics** (optional)
|
|
|
|
## 📞 Support
|
|
|
|
- **Documentation**: Check the main deployment guide
|
|
- **Issues**: GitHub Issues page
|
|
- **Community**: GitHub Discussions
|
|
- **Updates**: Star the repository for notifications
|
|
|
|
---
|
|
|
|
**PicPeak Beta Setup Script v1.0** - Making photo sharing simple for everyone! 📸 |