# 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 ```bash # Install dependencies npm install # Run in development mode npm run dev ``` ### Docker Deployment ```bash # Build the image docker build -t pnger:latest . # Run the container docker run -p 8080:3000 pnger:latest ``` ### Unraid Deployment 1. Clone this repository to your Unraid server 2. Use the provided `docker-compose.yml` 3. 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 https://git.alwisp.com/jason/pnger