# url-to-png

> Self-hosted, open-source PNG screenshot service from URLs using Playwright with caching (S3/CouchDB/filesystem) and Prometheus metrics.

- **Category:** Web Scraping
- **Licence:** MIT
- **Latest version:** v2.1.4
- **Open source:** oss
- **Languages:** Typescript
- **Platforms:** Docker
- **Tags:** API, Screenshot, Node, Nestjs, Screenshots, Amazon S3, Playwright, Node.js, Docker, S3, Prometheus, Caching, Self Hosted, Couchdb, Selfhosted, Png, Url To Image, Url To Png

## Description

URL to PNG is a self-hosted HTTP service that renders webpage screenshots as PNG images. It uses Playwright (Chromium) for parallel rendering and accepts query parameters to customize output dimensions, viewport size, mobile emulation, dark mode, full-page capture, and device scale factor. Generated images can be cached using a choice of storage backends: local filesystem, S3-compatible object storage, or CouchDB. The service exposes a Prometheus metrics endpoint for monitoring the browser connection pool. It runs as a Docker container (ghcr.io/jasonraimondi/url-to-png) on port 3089, or locally via pnpm with Playwright Chromium installed. Configuration is done through environment variables for logging, cache control, allow/block lists, Playwright timeouts, connection pool sizing, defaults for all rendering options, encryption, and storage provider settings. The project is licensed under MIT and actively maintained.

## Links

- [Homepage](https://github.com/jasonraimondi/url-to-png)
- [Website](https://jasonraimondi.github.io/url-to-png/)
- [Docker](ghcr.io/jasonraimondi/url-to-png)
- [GitHub Repository](https://github.com/jasonraimondi/url-to-png)
- [Docker Hub](https://hub.docker.com/r/jasonraimondi/url-to-png/)
- [GHCR](https://ghcr.io/jasonraimondi/url-to-png)

---
Source: https://selfhost.directory/project/url-to-png