74 lines
1.7 KiB
Markdown
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 |