PatchviaPatchvia
FeaturesConsoleDNSSECInstallSelf-hostFAQ
v0.1.0Get started
Home/Install

Install

Install Patchvia DNS with Docker.

You need Docker with the Compose plugin and a host where port 53 is free. Install takes about five commands; the console is then on port 3000 and the DNS server answers on port 53.

What you need

Docker with the Compose plugin (`docker compose version` should print a version), and a host with port 53 free over UDP and TCP. You download two small files; you do not need git, Node.js or the source code.

  • Docker Engine with the Compose plugin
  • Port 53 (UDP and TCP) free on the host
  • Port 3000 for the console, and port 8081 for the API, which stays on localhost unless you change API_BIND

1. Install

Download the compose file and the environment template into a new folder. Set two values in the environment file: ADMIN_PASSWORD (at least 10 characters, used only the first time) and SESSION_SECRET (at least 32 characters, random). Then pull the published images and start both services.

bash
1$ mkdir patchvia && cd patchvia2$ curl -fsSLO https://raw.githubusercontent.com/patchvia/patchvia/main/deploy/docker-compose.yml3$ curl -fsSL -o .env https://raw.githubusercontent.com/patchvia/patchvia/main/deploy/.env.example4$ nano .env                # set ADMIN_PASSWORD and SESSION_SECRET5$ docker compose pull6$ docker compose up -d --no-build

2. Check it runs

Open the console on port 3000 and sign in as admin with the password you set. To check DNS, create a zone in the console, add a record to it, then ask the server for that record. The example uses localhost; use the server’s address from another machine.

bash
1$ docker compose ps2$ dig @127.0.0.1 www.example.com

The images

Both images are public on GitHub’s container registry, built for linux/amd64 and linux/arm64. You can pull them without logging in, and read their package pages for the tags.

  • dns-server: the DNS server and API
  • dns-console: the web console

3. Update

Pull the newer images and restart. Your data stays in the dns-data volume.

bash
1$ docker compose pull2$ docker compose up -d --no-build

Pin a version

The default tag is latest. To stay on one release, set PATCHVIA_TAG in .env (for example 0.1.0, or a commit as sha-<short commit>), then pull and start again.

bash
1$ PATCHVIA_TAG=0.1.0   # in .env2$ docker compose pull3$ docker compose up -d --no-build

Run Patchvia DNS on Provelox

Provelox, another Floms product, runs Compose projects on your own server and gives each public service a domain with HTTPS. Install Provelox from its website, then paste this project into New → Compose project. It asks for the variables declared at the top and refuses to deploy without the required ones.

compose.yaml
1x-provelox:2  variables:3    ADMIN_PASSWORD: { secret: true, minLength: 10, label: Admin password (first start only) }4    SESSION_SECRET: { secret: true, minLength: 32, label: Session secret }5    DEFAULT_NS: { label: Default nameservers }6 7services:8  dns-server:9    image: ghcr.io/patchvia/dns-server:latest10    restart: unless-stopped11    ports:12      - "53:53/udp"13      - "53:53/tcp"14    environment:15      ADMIN_PASSWORD: ${ADMIN_PASSWORD:?ADMIN_PASSWORD is required, at least 10 characters}16      DEFAULT_NS: ${DEFAULT_NS:-}17    volumes:18      - dns-data:/data19  dns-console:20    image: ghcr.io/patchvia/dns-console:latest21    restart: unless-stopped22    depends_on: [dns-server]23    environment:24      SESSION_SECRET: ${SESSION_SECRET:?SESSION_SECRET is required, at least 32 characters}25      DNS_API_URL: http://dns-server:808126    x-provelox:27      expose: true28      port: 300029 30volumes:31  dns-data:
  • Install Provelox from its website
  • Provelox documentation

If port 53 is taken

On many Ubuntu servers systemd-resolved already listens on port 53, so the DNS server cannot start. The deployment guide in the repository explains how to free the port, which firewall rules to add, and how to undo the change.

Keep reading

Self-hosting

Self-host Patchvia DNS with Docker Compose: the DNS server and web console as two containers, configured with one environment file.

→

Features

Patchvia DNS features: authoritative records, zones, DNSSEC signing, AXFR and IXFR transfers, dynamic DNS, clustering, accounts and API keys, in one server with a web console.

→

Clustering

Run several authoritative nameservers that keep each other in sync. Patchvia DNS clustering uses a shared secret, per-node databases and a cluster health page.

→

Read the full self-hosting guide

Ports, backups, the cluster settings and the firewall rules are on the self-hosting page.

Read the self-hosting guideBack to home
PatchviaPatchvia

DNS infrastructure, simplified.

Product

  • Features
  • Console
  • DNSSEC
  • Dynamic DNS
  • Clustering
  • Install
  • Self-hosting
  • FAQ

Product updates, when there is something to try.

We will email you about new releases and changes to Patchvia DNS, and nothing else. You can unsubscribe in any message.

Patchvia DNS is sponsored by Floms. Your address is used only for these updates. See the privacy policy.

Sponsored byFlomsFloms

© 2026 Patchvia

GitHubLicensePrivacyContact