2026-03-07 22:37:25 -06:00
2026-03-07 22:37:25 -06:00

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

  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

Description
Modern PNG editor & resizer with live preview, drag & drop, smart presets, keyboard shortcuts, and dark/light themes. TypeScript + Svelte + Sharp. Deployed on Unraid.
Readme MIT 180 KiB
Languages
Svelte 40.2%
TypeScript 30.2%
CSS 14.2%
JavaScript 9.8%
Dockerfile 3.8%
Other 1.8%