URL-to-PNG Hosting Live In 5 Minutes

Deploy URL-to-PNG on xCloud and get URL-to-PNG hosting for a private screenshot API, so you can generate link previews, social cards and thumbnails from your own backend without a third-party service. xCloud runs the pinned image with encryption mode turned on, so every request must carry an encrypted hash made with your install's own key, and your endpoint never becomes a public proxy.

  • No terminal
  • No technical skills needed
  • No lock-in, cancel anytime

What is URL-to-PNG?

URL-to-PNG is a URL to PNG generator over HTTP with a fairly simple API accessed through query parameters. A self-hosted URL-to-PNG renders a page with headless Chromium through Playwright, with customisable image dimensions and viewport, mobile user agent and dark mode rendering, an allow list for domains and a Prometheus metrics endpoint (left off in this template), as an alternative to a third-party screenshot service. It is MIT licensed.

On xCloud the install runs v2.1.4 of the jasonraimondi/url-to-png image, pinned by digest, as one stateless container with no database or volume. Upstream accepts any request by default, so the template turns on encryption mode and builds the key from a generated secret. Your backend must encrypt each request, and a browser pool of one warm Chromium allows three renders at once.

From Sign-Up to a Live Screenshot API In Just 3 Easy Steps

Self-hosting a screenshot service normally means a container, a headless browser pool, an encryption scheme and a certificate before a single PNG renders. This is the same result without assembling any of it.

  1. Step 01

    Sign Up

    Create your xCloud account and pick URL-to-PNG from the OneClick catalog. There are no extra fields — xCloud generates the encryption key.

  2. Step 02

    We Deploy It For You

    One click. We bring up the pinned URL-to-PNG v2.1.4 image with encryption mode turned on, set a small browser pool of one warm Chromium and up to three renders at once, and publish the HTTP API over HTTPS on your domain.

  3. Step 03

    Encrypt A Request And Render Your First PNG

    Save the Encryption key (CRYPTO_KEY) from your installation page, check https://<your-domain>/ping, then encrypt a request with the @jmondi/string-encrypt-decrypt library and call https://<your-domain>/?hash=<hash> to receive a PNG.

Everything URL-to-PNG Does, On Your Own Server

URL-to-PNG runs in full here — its Playwright-driven screenshot API, on infrastructure you control.

  • Per-Request Rendering Options

    Control viewport size, output width, full-page capture, mobile emulation and dark mode on every request.

  • Link Previews And Social Cards

    Generate thumbnails and social cards from your own backend instead of paying a third-party screenshot service.

  • Encrypted Requests Only

    Every render request must carry an encrypted hash made with your install's AES-256 key — plain ?url= requests are refused.

  • Stateless By Design

    A single container with no database. Every request renders the page fresh, with no screenshots stored by default.

  • A Tuned Browser Pool

    One Chromium instance kept warm, with up to three renders at once — sized for small servers.

  • Your Endpoint, Your Server

    The encryption key is rebuilt from the same stored secret after a restart, so hashes you've already issued keep working.

Everything You Need To Run Your Screenshot API 24/7

Managed hosting for URL-to-PNG, so the parts that keep it online are not your problem.

  • URL-to-PNG v2.1.4 deployed instantly
  • Generated AES-256 encryption key
  • Tuned headless-Chromium browser pool
  • Free SSL certificate
  • Server backups and snapshots
  • Server security updates included
  • 30+ server locations
  • Unused balance refunded

What You Can Do With URL-to-PNG

  • Make link previews

    Generate link previews and thumbnails for pages from your own backend instead of paying a third-party screenshot service.

  • Create social cards

    Render a page at the width you need, with a mobile viewport or dark mode, to use as a social card.

  • Capture a full page

    Control viewport size, output width and full-page capture on every request, with options written inside the encrypted request.

  • Limit what can be rendered

    Use ALLOW_LIST to restrict rendering to hosts you expect, so even a leaked key cannot reach arbitrary addresses.

URL-to-PNG vs Alternatives

Third-party screenshot services
A hosted screenshot service renders pages on the vendor's servers and bills per image. URL-to-PNG runs on your own server, with the render capacity set by the Cloud VPS you choose.
Browserless
In a URL-to-PNG vs Browserless comparison, Browserless has its own OneClick page. Its catalogue entry describes headless Chromium as a service driven over WebSocket with Puppeteer or Playwright, or by REST for screenshots and PDFs.
Gotenberg
Gotenberg has its own OneClick page. Its catalogue entry describes a conversion API that turns HTML, Markdown and office documents into PDFs, where URL-to-PNG returns images of web pages.
Steel Browser
Steel Browser has its own OneClick page. Its catalogue entry describes a browser API for AI agents and automation, running Chromium that you drive over HTTP, Puppeteer, Playwright or Selenium.

Simple Pricing. Everything Included.

Dedicated Cloud VPS sizes, pre-configured for URL-to-PNG hosting. Pick the one that fits, and resize any time.

Cloud VPS 6 GB

Most popular

A screenshot API for one backend or product.

$24.99per month

  • 6 GB RAM
  • 4 vCPU cores
  • 100 GB NVMe SSD
  • 30 TB
  • Unlimited
Get started

Cloud VPS 16 GB

More concurrent renders for higher-traffic backends.

$59.99per month

  • 16 GB RAM
  • 6 vCPU cores
  • 200 GB NVMe SSD
  • 30 TB
  • Unlimited
Get started

Cloud VPS 24 GB

URL-to-PNG alongside a whole self-hosted stack.

$84.99per month

  • 24 GB RAM
  • 8 vCPU cores
  • 300 GB NVMe SSD
  • 30 TB
  • Unlimited
Get started

Every size is a dedicated Cloud VPS we provision, patch, monitor and restore. Billed monthly with no lock-in — delete the server and the unused balance comes back to your account. URL-to-PNG itself is free under the MIT licence.

Already Have a Server? Bring Your Own

Connect any VPS — DigitalOcean, Vultr, Linode, AWS, Hetzner or bare metal — and deploy URL-to-PNG on it through the same panel, for a per-server management fee instead of a Cloud VPS rental.

Free

Start your journey without cost.

$0forever

  • 1 server
  • 10 sites
Start free

Starter

Most popular

Your rate with 2–5 servers connected.

$5per server / month

  • 2–5 servers
  • Unlimited sites
  • All features included
  • Bring any VPS provider
Get started

Professional

The same platform, discounted at 6–10 servers.

$4per server / month

  • 6–10 servers
  • Unlimited sites
  • All features included
  • Bring any VPS provider
Get started

Agency

The same platform, discounted at 11+ servers.

$3per server / month

  • 11+ servers
  • Unlimited sites
  • All features included
  • Bring any VPS provider
Get started

Priced per connected server, so your rate adjusts automatically as you add or remove servers. You pay your own provider for the server itself.

Ready To Own Your Screenshot API?

URL-to-PNG on xCloud runs on a dedicated Cloud VPS that we provision, patch, monitor and restore. Deploy faster. Own the server. Stay in control.

Hear what people are saying about us

See why agencies, developers, startups, and growing businesses choose xCloud to power their projects.

xCloud works really well, I am surprised by its performance being this the release version, I have tried many paid platforms such as runcloud, cloudpages or serveravatar, as well as free platforms such as CyberPanel, CloudPanel or Hestia Control Panel and direct competitors such as SpinupWP and FlyWP. Of all those that I have tried, the platform that works best for WordPress is SpinupWP and I believe that xCloud can reach and surpass that development, its roadmap is promising. Congratulations to the xCloud team, I hope they become the leading platform in the segment, it has all the potential to achieve it!
Brian Geovanny
I've been with runcloud for the last 3 years. However, after trying xcloud for the last month, I'm switching over. They are on a roll with their setup.
Kevin Pineda
I'm moving my servers to xCloud, a cloud control panel by M Asif Rahman and the WPDeveloper team. Their roadmap looks interesting and no, there are no team mates nor API limits with xCloud! #xCloud #wordpress #hosting
Leo Koo
How Cloud Nine Web Elevated Client Experience While Streamlining Hosting Operations using xCloud
Ed Ellingham
xCloud is like having an expert server team on call — without the big agency costs. It's given me back my time and given my clients peace of mind. Highly recommended for freelancers and small teams who want reliable performance and security.
Dumitru Butucel
xCloud isn't just a solution. It's like one of that friend who got your back when you screw things up pretty bad.
Waqar Ahmed
Trust me when I say, once people explore the potential of xCloud they gonna switch from other panels, just keep delivering the best tech, lots of love for the team 😍😍
Rahul Singh
So far my experience has been smooth like silk. I didn't imagine that configuring and managing a VPS would be so easy. As of today, I have deployed 8 sites. The support is good, and they treat users with respect, even if they ask stupid questions (myself included). For the future, I hope for greater flexibility in scheduled backups and more comprehensive and consistent documentation. I'm sure that within a few months, xCloud will become the leader in its segment. This community is amazing, and the Staff here is super helpful.
Massimo Villa
Came from cloudways then to runcloud then to xcloud. Looks like I'm staying here.
Gerson El
I've recently taken all of my Vultr-hosted sites and gotten rid of cPanel for them to substitute it with xCloud. I have to say, I'm really impressed with xCloud so far! The interface is definitely the standout feature for me.
Tony Lewis
I came from Cloudways and won't go back. Highly impressed with xCloud. Glad I gave them a chance.
Jared McDowell
I like xCloud better than RunCloud, but one thing I'll point out is that some years ago RunCloud was hungry for business, the support was outstanding, and the community was active and helped each other. Maybe it was sold, there was a change in management, or they stopped being hungry, but the quality of the RunCloud offering declined and it hasn't been moving forward quickly. My point is that currently the xCloud team has the edge and it is theirs to keep or lose
David McCan
How Kevin Heinrichs Cut Hosting Costs by 84% While Running WooCommerce & Node.js Sites Efficiently
Kevin Heinrichs
I had 150 sites on cloudways and am in the process of moving them to xcloud. Much faster and better priced.
Dan Spinoza
Dear xCloud Team, I have been using xCloud for some time now and am genuinely impressed with its capabilities and the flexibility it offers by allowing users to bring their own VPS for management. It's a fantastic service, and my experience so far has been very positive. Successful migrated 5 sites on a single server. Xcloud migration tool worked great. There were few hiccups with security plugin like MalCare but disabling the plugin prior to migration worked just fine.
Rahil Maknojia
Came from runcloud. Tried xcloud and never came back.
Karl Fanega
How Advanced Web Strategies Saved Over $2,000 & Recovered 56 Hours per Month Managing 70+ Client Websites
Gary Moody
xCloud gave me what no other hosting platform could: the flexibility of a VPS with the convenience of managed WordPress. As a solo founder running an entire business on one server, that combination is an important unfair advantage.
Jorge de los Reyes Martínez
I use Server Avatar and xCloud and I'll sooner use xCloud than Server Avatar personally.
Jay Pagano
How Newman Web Solutions Ensured Perfect Uptime and Seamless Scaling For 120+ WordPress Sites with xCloud
Lori Newman
I too have moved over to xCloud. It's pretty sweet. One click n8n and uptime Kuma apps
John Aperture
I went from Cloudways to xCloud. No intention on switching in the foreseeable future.
Blaine Moore

Frequently Asked Questions

Feel free to contact us with any questions or concerns you may have.

Can you self-host URL-to-PNG with Docker?

Yes, and this template is URL-to-PNG Docker hosting without the setup: the pinned jasonraimondi/url-to-png v2.1.4 image as one stateless container, a tuned Chromium pool, a generated encryption key and HTTPS on your domain, with no database or volume.

How much RAM does URL-to-PNG need?

The template asks for 2048 MB of RAM, 1 CPU core and 6 GB of disk as a floor, because each request runs in headless Chromium. It keeps one browser warm and allows three renders at once. The 6 GB plan is the entry rung.

Can anyone use my URL-to-PNG screenshot endpoint?

No. Requests without a valid hash made with your install's key are rejected with a 400, and only /ping answers openly. Upstream would accept any request by default, so the template turns on encryption mode to avoid an open proxy.

How do I make a request to URL-to-PNG?

Encrypt a small JSON document with url, viewport and width options using the key from the installation credentials and the upstream @jmondi/string-encrypt-decrypt library, then request the page with the hash query parameter. Write true or false options inside the JSON as strings.

How do I keep my URL-to-PNG endpoint from being abused?

Keep the encryption key on your server, never in browser code, because anyone holding it can make the service render any reachable http or https address, including internal ones. Set ALLOW_LIST to limit rendering to hosts you expect.

Do URL-to-PNG hashes expire?

No. A hash never expires, so treat issued hashes like URLs you are willing to share, because anyone who sees one can reuse that exact request. Changing ENCRYPTION_SECRET invalidates every existing hash, so rotate it only when you can reissue the links that use it.

Are URL-to-PNG screenshots stored?

No. The service is stateless and each request renders the page again. Optional filesystem caching exists upstream but is off by default, so there is nothing to back up except the encryption key, which your backend also needs, so store the generated value securely.

Why did my URL-to-PNG request return a 500 instead of a 400?

A hash that does not decrypt returns a 500 error rather than a 400. That is upstream behaviour, not an xCloud setting, so check that your backend uses the current key and builds the JSON exactly as documented.

How do I upgrade URL-to-PNG?

v2.1.4 is pinned, and upstream's latest tag is a different build that this template does not use. Read the project's notes before moving to a newer template version. Running sites are never upgraded by xCloud.

Is URL-to-PNG free?

Yes. URL-to-PNG is under the MIT licence, so there is nothing to pay for the software. The dedicated Cloud VPS is the expense, and it needs enough memory for the Chromium instances rendering at once; nothing is billed per image.

Is there a URL-to-PNG cloud service?

Not through this page. URL-to-PNG cloud hosting here means your own renderer runs on a Cloud VPS that xCloud prepares, behind an encryption key only your backend holds, and with no vendor account or per-image fee involved.

Can I cancel anytime?

Yes. There is no lock-in — cancel any time. Hosting is billed monthly and charged for what you actually use, so when you delete the server the unused balance is refunded to your account, less up to 10% in payment-processing fees.

Ready to Own Your Screenshot API?

Connect your first server in minutes. No plan you have to grow into.