Hosting and domains

Your app, on your servers.

Dus can put your app online on a server you own, check it is healthy and keep a one-step rollback. This page shows what is ready, from the evidence, and what is still coming.

Last reviewed 19 October 2026

Host and run: what is ready.

Each stage comes from the same record as Capabilities, so this page and that one always agree.

Deploy, with health checks and rollback

Give Dus a Linux server you can reach over SSH (Debian, Ubuntu or a Red Hat family system). Dus installs what the app needs, uploads the release, starts it as a service that restarts on its own, serves it through Caddy with HTTPS from Let’s Encrypt when you give a domain, and checks that it answers, on the server and from your machine.

The new release and the previous one are kept. If the new one fails its health check after the switch, Duscode goes back to the previous release by itself. Rolling back by hand is one step, and you confirm it.

Dus can also deploy through the official command-line tool or API of Vercel, Netlify, Fly.io, Render and Cloudflare Pages, with your token from the vault. These flows follow each provider’s public documentation and have not yet been tried against live accounts, so check the result on the provider’s own dashboard the first time.

Always your call: the first deploy to a target, changing DNS records, anything that creates billed resources, database migrations and destructive commands on a server. Each comes as an Owner’s Call with what will happen and how to undo it, and no setting or mode skips them.

For engineers

SSH uses the system ssh with the key from the vault in a temporary file that is deleted afterwards, a known_hosts per target and batch mode. Releases go to /srv/<app>/releases/<id> with a current switch; the app runs as a restarting systemd unit or a Docker container; Caddy serves it and ufw (or firewalld) keeps the SSH port open. Deploy targets live in your Duscode folder, not in the project. Details: Deploy your app.

Watch, and hearing about it

While Duscode is running, Watch checks your live system from outside: the address, the certificate (a warning 14 days before it expires), that the domain still points where it should, the last deploy, and the server’s disk and memory. Two bad readings open one incident. Dus diagnoses it and either follows a standing order you set in advance, such as “restart it if it stops answering”, or brings you an Owner’s Call. Recovery counts only when the checks pass again from outside. Gaps while your computer was off are recorded and listed.

You hear when work finishes, needs you or something breaks: in the app, by email, or in Slack or Microsoft Teams.

Coming

None of these is built yet, and none has a date.

  • Phone alerts: an urgent problem rings or texts your phone.
  • Hosting recommendations and set-up: help choosing where to run your app, from a VPS to a large cloud, an app platform or shared hosting, and setting it up.
  • Buying and connecting domains without breaking the email that already runs on them.
  • The always-on runner: a small Duscode runner on your own server that keeps working and watching while your computer is switched off.
  • Managed hosting: Duscode running the software it builds on servers it manages, so you don’t need your own.
Domains

Your domain stays in your hands.

Today Duscode doesn’t buy servers or domains for you, and it doesn’t automate DNS. Buying and connecting domains for you is coming. Here is how a domain fits in today.

You own the domain

Buy it from any registrar you like, in your own name. Buying one is a decision that costs money, so Dus would always ask first.

You point it at your server

You add the records at your registrar or DNS host. If Dus is to change DNS records for you, that is an Owner’s Call, every time.

Dus does the HTTPS

Once the domain points at your server, Caddy gets a certificate from Let’s Encrypt, and Watch checks it before it expires.

What Dus asks for

Say “Put it online”. Dus reads the project (the framework, the build and start commands, the port, the database and the settings the code expects), recommends a way to run it and shows the steps as a plan. What it can’t know, it asks for with a form in the chat: the server’s address, the SSH user and key, a domain or a hosting token. It asks once per project, so the next deploy is one step.

Server details and secrets

Keys and tokens from that form go straight into the encrypted vault on your computer and never reach an AI model. Deploy targets are kept in your Duscode folder, not in the project, so a server address never ends up in a commit. Credentials and server details are not routed through Duscode Cloud. More on Security.

Limits today

  • Caddy is the only web server Dus sets up on a server.
  • Dus doesn’t buy servers or domains, or automate DNS.
  • Databases aren’t backed up before a migration. Back up first if the data matters.
  • Watch checks only while Duscode is running on your computer.

The step-by-step guide is Deploy your app in the docs, and every capability with its stage is on Capabilities.