0a81f30c36d0d846d4c1d223c91138b06bedd348
PNGer - Modern PNG Editor & Resizer
A simple, reactive, modern PNG editor and resizer with direct upload and download features. Deployed as a single Docker container on Unraid.
Features
- Drag & Drop Upload: Intuitive file upload interface
- Real-time Preview: See changes as you adjust settings
- Resize Operations: Width, height, and aspect ratio controls
- Compression: Optimize PNG file sizes
- Direct Download: No server-side storage, immediate download
- Modern UI: Sleek, responsive design
Tech Stack
- Frontend: Svelte + Vite
- Backend: Node.js + Express
- Image Processing: Sharp
- Container: Docker (Alpine-based)
- Deployment: Unraid via Docker Compose
Quick Start
Local Development
# Install dependencies
npm install
# Run in development mode
npm run dev
Docker Deployment
# Build the image
docker build -t pnger:latest .
# Run the container
docker run -p 8080:3000 pnger:latest
Unraid Deployment
- Clone this repository to your Unraid server
- Use the provided
docker-compose.yml - Access via http://[unraid-ip]:8080
Project Structure
pnger/
├── frontend/ # Svelte application
├── backend/ # Express API server
├── Dockerfile # Multi-stage build
├── docker-compose.yml # Unraid deployment config
└── INSTRUCTIONS.md # Development guide
Configuration
Environment variables (optional):
PORT: Server port (default: 3000)MAX_FILE_SIZE: Maximum upload size in MB (default: 10)NODE_ENV: production or development
License
MIT License - See LICENSE file for details
Repository
Languages
Svelte
40.2%
TypeScript
30.2%
CSS
14.2%
JavaScript
9.8%
Dockerfile
3.8%
Other
1.8%