How Do I Self-Host WantasticCore with Docker?
Zurück zum Blog
Self-hosting10 min read

How Do I Self-Host WantasticCore with Docker?

Run the portal, WireGuard core, Postgres, Redis, nginx, certificates, and firewall in one container, then connect your first device.

K
Karim Ouazmir· Co-founder & CTO
August 29, 2026

What do I need before I start?

WantasticCore packages the management portal and its supporting services into one container. Prepare a Linux host with Docker, a persistent volume, a public DNS name, and firewall access for the required ports.

Wantastic network topology in the self-hostable management interfaceLive beta UI with sanitized demo data

Open these host ports:

PortPurpose
80/tcpACME HTTP challenge and HTTPS redirect
443/tcpPortal, setup wizard, and browser tools
8291/tcpWinbox multiplexer
51820/udpWireGuard transport

1. Start the all-in-one container

docker run -d --name wantastic \
  --cap-add NET_ADMIN \
  --restart unless-stopped \
  -p 80:80 \
  -p 443:443 \
  -p 8291:8291 \
  -p 51820:51820/udp \
  -v wantastic-data:/var/lib/wantastic \
  ghcr.io/wantastic-app/wantastic:latest

The named volume is important. It stores configuration, Postgres, Redis, certificates, and logs outside the disposable container layer.

2. Complete the browser setup wizard

Open https://<host>/. A certificate warning is expected on the first boot because nginx uses a bootstrap certificate until setup finishes.

The wizard asks for:

  1. the base domain and console hostname;
  2. the Winbox and WireGuard hostnames;
  3. a Let's Encrypt email;
  4. whether the container firewall should be enabled;
  5. the first super-admin account;
  6. optional SMTP and Copilot credentials.

Before submitting, point the requested DNS records at the host. The wizard writes the production configuration, requests certificates, applies the firewall, and restarts the core in normal mode.

3. Connect a device to your server

For interactive enrollment, point wantasticd at your portal:

curl -sSL https://get.wantastic.app/install.sh | sh -s -- \
  --portal-url https://wantastic.example.com \
  --login

For factory provisioning:

wantasticd genkey \
  --out /etc/wantastic/device-claim-key.json \
  --server-url https://wantastic.example.com

MikroTik RouterOS 7 devices do not need wantasticd. Add them from Devices and use the generated native WireGuard configuration.

4. Verify the deployment

docker logs -f wantastic
docker exec wantastic s6-svstat /run/service/postgres
docker exec wantastic s6-svstat /run/service/wantastic-core
docker exec wantastic s6-svstat /run/service/certbot-renew

Then confirm the portal loads over HTTPS, a device becomes online, the topology renders, and WebSSH or Winbox can reach only the intended endpoint.

5. Back up and operate it

Create database backups outside the container:

docker exec wantastic su-exec postgres \
  pg_dump -U wantastic wantastic > backup.sql

Also back up the wantastic-data volume according to your recovery policy. Test a restore before relying on it, monitor certificate renewal, and keep the host firewall aligned with the four documented public ports.

WantasticCoreDockerSelf-hostedWireGuardBackup

Ready to try Wantastic?

Free for up to 3 devices. No credit card required.

Start Free Forever
How Do I Self-Host WantasticCore with Docker? | Wantastic Blog