A containerized, privacy-focused version of Photopea with zero data persistence and optional network routing through Firefox for enhanced anonymity.
- Zero Data Persistence - All data stored in memory (tmpfs)
- No Cache Storage - Aggressive no-cache headers and clearing
- Private Browsing Mode - Continuous clearing of localStorage, sessionStorage, and cookies
- Network Isolation - Optional routing through Firefox container for IP masking
- No Logging - Nginx access logs disabled for privacy
- Secure Headers - Anti-tracking and security headers enabled
- Docker and Docker Compose installed
- Git (for cloning)
# Clone the repository
git clone https://github.com/jlambert12013/Photopea.git
cd Photopea
# Start the application
docker-compose up -d
# Access Photopea
open http://localhost:3000
# Use the provided docker-compose.yml with Firefox routing
docker-compose up -d
# Access Firefox interface (to monitor network activity)
open http://localhost:5800
# Access Photopea through Firefox network
open http://localhost:3000
# Run the destruction script for maximum privacy
chmod +x destroy-data.sh
./destroy-data.sh
# This will:
# - Stop all containers
# - Remove all volumes and cached data
# - Clean Docker system
# - Start fresh containers
Perfect for:
- Server deployments
- Privacy-focused editing
- Isolated environments
- Network routing through VPN/proxy
Use this codebase to build a desktop application:
# Install Electron dependencies
npm install electron electron-builder --save-dev
# Create electron main process (example)
# See electron-example/ directory for full implementation
# Build desktop app
npm run electron:build
Deploy without Docker:
# Install dependencies
npm install
# Start nginx or use Node.js server
# Serve index.html with your preferred web server
Photopea/
βββ docker-compose.yml # Main orchestration file
βββ Dockerfile # Container build instructions
βββ nginx.conf # Zero-cache nginx configuration
βββ index.html # Privacy-enhanced Photopea wrapper
βββ destroy-data.sh # Complete data destruction script
βββ package.json # Node.js dependencies (if needed)
βββ dist/ # Built assets (auto-generated)
βββ electron-example/ # Electron app example (optional)
βββ README.md # This file
# Firefox container settings
DISPLAY_WIDTH=1920
DISPLAY_HEIGHT=1080
VNC_PASSWORD=yourpassword
# Nginx settings
NGINX_HOST=localhost
NGINX_PORT=80
NODE_ENV=production
To route through different containers or VPN services:
# In docker-compose.yml
services:
photopea-pro:
network_mode: "container:your-vpn-container"
# or
network_mode: "service:your-proxy-service"
# Build the Docker image
docker-compose build --no-cache
# Run in development mode
docker-compose -f docker-compose.dev.yml up
Edit nginx.conf
and index.html
to adjust:
- Cache policies
- Security headers
- Data clearing intervals
- Browser restrictions
- Sandboxed iframe - Photopea runs in restricted environment
- No right-click - Context menu disabled
- Dev tools blocking - F12, Ctrl+Shift+I disabled
- Referrer policy - No referrer information sent
- Content security - XSS and content-type protections
- Data redaction - Sensitive console logs filtered
- β Docker (Linux/macOS/Windows)
- β Web browsers (Chrome, Firefox, Safari, Edge)
- β Electron (desktop app potential)
- β Progressive Web App (PWA ready)
- Chrome 70+
- Firefox 65+
- Safari 12+
- Edge 79+
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Electron desktop application
- Progressive Web App (PWA) support
- Additional privacy plugins
- VPN integration presets
- Mobile-responsive improvements
- Custom Photopea themes
- Batch processing capabilities
This application enhances privacy but cannot guarantee complete anonymity. For maximum security:
- Use with VPN/Tor
- Avoid uploading sensitive files
- Clear browser data after use
- Monitor network activity
- All data stored in RAM - monitor memory usage
- Large files may consume significant memory
- Container restarts clear all data permanently
Container won't start:
# Check logs
docker-compose logs photopea-pro
# Rebuild without cache
docker-compose build --no-cache
Port conflicts:
# Change ports in docker-compose.yml
ports:
- "3001:80" # Use different port
Memory issues:
# Increase Docker memory limits
# Or reduce display resolution in Firefox settings
This project is licensed under the MIT License - see the LICENSE file for details.
- Photopea - Amazing web-based photo editor
- jlesage/docker-firefox - Firefox container for network routing
- Docker community for containerization best practices
- π Report Issues
- π¬ Discussions
- π§ Contact: [your-email@example.com]
β‘ Made for privacy-conscious creators who need professional photo editing without data tracking.