Skip to content

Requirements — VPS, not shared hosting

Read this before you buy anything. Getting the server type right is the single biggest cause of a smooth deployment — or a failed one.

Nudova runs as Docker containers: the Django API, PostgreSQL, the storefront, the staff admin app, and a Caddy reverse proxy. That requires a small Linux virtual server you control, with root SSH access.

What “a VPS you control” means in practice:

  • Root SSH access — you can log in and install software.
  • A public IP and ports 80 + 443 open — so customers can reach your shop and Caddy can obtain HTTPS certificates.
  • A domain you control — to point at the server.
  • Docker-capable Linux — Ubuntu 24.04 LTS is what we test on; any modern Docker-capable distro works.

The list is deliberately short — Nudova runs as containers, so the box needs almost nothing on it:

Tool Needed? Notes
Docker + Docker Compose Yes The whole product runs as containers. One command installs both: curl -fsSL https://get.docker.com | sh. The runbooks do this for you.
A domain + DNS access Yes Three records (@, api, admin) point at the box; certificates are issued automatically.
git or your purchase zip Yes To get the code onto the box — git clone or upload and unzip.
Node.js No You do not install Node on the server. The storefront and admin are prebuilt Next.js images that run inside Docker — Node lives in the containers, not on your VPS. (Only the split topology, where you host the two front ends on a separate platform, involves Node — and that platform provides it.)

The whole product on the smallest supported box. No Redis, no Celery; background email/SMS run inline with strict timeouts, and scheduled jobs run on a cron loop.

Minimum
RAM 2 GB (+ 1–2 GB swap — required, not optional)
CPU 1–2 vCPU
Disk 20 GB+ SSD
OS Ubuntu 24.04 LTS (any Docker-capable Linux)
Network ports 80 + 443 reachable, a domain you control
Example box DigitalOcean 2 GB droplet (~$12/mo)

You don’t choose a different product; you choose a footprint. It’s the same image and the same code either way — one environment flag (INFRA_PROFILE) decides the behaviour.

Start lite

Most single-tenant shops at low-to-medium volume. The whole product on a 2 GB box, no message broker to operate. It’s the floor — and it’s a real, measured floor.

Move to full later

When you outgrow the small box — sustained traffic, real-time needs — moving lite → full is a one-flag change on the same data and image. You don’t re-platform; you resize.

Full comparison and how switching works → Lite vs full

Three HTTPS hosts with real Let’s Encrypt certificates, issued automatically:

  • https://your-domain/ — the storefront your customers see
  • https://admin.your-domain/ — the staff admin app
  • https://api.your-domain/ — the API (its /admin/ is the deep-ops console)

Plus nightly database backups with 7-day rotation, and every container running under a hard memory limit so the box stays predictable.

Head to the Quickstart for the fast path, or straight to a step-by-step runbook for your host.