Etheonor/pictiur

Convert, optimize, resize, and yeah, that's it.

6

stars

64

commits

TypeScript

primary language

Sep 2, 2026

updated

README

Pictiúr

Optimize images 100% locally — convert, resize and compress in one pass, right in your browser.

  • 🔒 No upload: processing runs locally in your browser (WebAssembly)
  • PWA: installable, works offline
  • 🧩 Formats: JPEG (mozjpeg), PNG (oxipng), WebP, AVIF, JPEG XL; HEIC/HEIF (iPhone) input via WebAssembly

Development

pnpm install
pnpm dev

Deployment

Pictiúr is a fully static app (adapter-static) — any static host works.

Docker (self-hosted)

Simplest way — official Docker image:

docker run -d --name pictiur -p 3002:80 ghcr.io/etheonor/pictiur:latest

With password protection:

docker run -d --name pictiur -p 3002:80 \
  -e USERNAME=admin -e PASSWORD=your-password \
  ghcr.io/etheonor/pictiur:latest

Or with docker-compose — see docker-compose.yml (builds locally from the Dockerfile by default).

Third-party

License

MIT

Contributors

Etheonor

64 commits

Etheonor/pictiur

Convert, optimize, resize, and yeah, that's it.

6

stars

64

commits

TypeScript

primary language

Sep 2, 2026

updated

README

Pictiúr

Optimize images 100% locally — convert, resize and compress in one pass, right in your browser.

  • 🔒 No upload: processing runs locally in your browser (WebAssembly)
  • PWA: installable, works offline
  • 🧩 Formats: JPEG (mozjpeg), PNG (oxipng), WebP, AVIF, JPEG XL; HEIC/HEIF (iPhone) input via WebAssembly

Development

pnpm install
pnpm dev

Deployment

Pictiúr is a fully static app (adapter-static) — any static host works.

Docker (self-hosted)

Simplest way — official Docker image:

docker run -d --name pictiur -p 3002:80 ghcr.io/etheonor/pictiur:latest

With password protection:

docker run -d --name pictiur -p 3002:80 \
  -e USERNAME=admin -e PASSWORD=your-password \
  ghcr.io/etheonor/pictiur:latest

Or with docker-compose — see docker-compose.yml (builds locally from the Dockerfile by default).

Third-party

License

MIT

Contributors

Etheonor

64 commits

Languages

TypeScript

64.2%

Svelte

27.5%

CSS

4.2%

JavaScript

3.1%