---
title: "Introduction"
description: "The CloudPDF server — a self-hostable PDF engine that renders pages, extracts text, manages annotations, and serves documents over a secure HTTP API."
source: "https://www.cloudpdf.com/docs/server/getting-started"
---

# The server

`@cloudpdf/server` is the backend that powers CloudPDF. It runs native PDFium on
your own infrastructure and exposes it as a clean, document-scoped HTTP API:
open a document, render pages, extract text, read and write annotations, inspect
metadata, and enforce access — all behind short-lived JWTs.

It is the same engine that runs locally in the browser with EmbedPDF, lifted
onto the server. Your frontend keeps talking to one [`Engine`
interface](https://www.cloudpdf.com/docs/engine); the server does the heavy PDF work, holds your
documents, and never hands storage credentials to the client.

> In a hurry? The [Quick start](https://www.cloudpdf.com/docs/server/getting-started/quick-start)
> gets a server answering requests in about a minute with a single
> `docker run`.

## Why run your own server

- **Your data stays yours.** Documents live in your database and object store —
  SQLite and the local disk to start, Postgres and S3/GCS/Azure when you grow.
- **Real PDF rendering.** Native PDFium renders pages to PNG/WebP and extracts
  text and geometry — the same fidelity as the desktop, on the server.
- **Secure by construction.** Every document route requires a short-lived,
  document-scoped JWT minted by your backend. The browser never sees your
  tenant secret or storage keys.
- **Runs anywhere.** A single Node process, a Docker container, or a
  Kubernetes deployment that scales from a side project to enterprise traffic.

## Three ways to run it

The server is a single, self-contained application. Pick the packaging that fits
your team — they all run the exact same binary and read the exact same
[configuration](https://www.cloudpdf.com/docs/server/configuration).

- [Node / npm](https://www.cloudpdf.com/docs/server/deployment/npm) — Install the package and run the CLI. Best for local dev and existing Node platforms.
- [Docker](https://www.cloudpdf.com/docs/server/deployment/docker) — One self-contained image. Best for single-host self-hosting and CI.
- [Docker Compose](https://www.cloudpdf.com/docs/server/deployment/docker-compose) — The server plus Postgres and S3-compatible storage, on one host.
- [Helm / Kubernetes](https://www.cloudpdf.com/docs/server/deployment/helm) — Production-grade: replicas, autoscaling, and managed migrations.

> Don't want to host anything? **CloudPDF Cloud** runs this same
> server for you as a managed SaaS. The API is identical, so you can start on the
> cloud and move to self-hosted later — or the other way around — without
> changing a line of frontend code. [See plans and start a free trial](https://www.cloudpdf.com/pricing).

## Next steps

- [How it works](https://www.cloudpdf.com/docs/server/getting-started/how-it-works) — The request flow, the worker pool, and the storage model.
- [Quick start](https://www.cloudpdf.com/docs/server/getting-started/quick-start) — Run a server and make your first authenticated request.
- [Configuration reference](https://www.cloudpdf.com/docs/server/configuration) — Every CLOUDPDF\_\* setting, with defaults.
- [The engine client](https://www.cloudpdf.com/docs/engine) — Drive the server from your frontend with @cloudpdf/engine.
