Files
pnger/README.md

74 lines
1.7 KiB
Markdown

# 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