Render
Render requires a paid Web Service because Dagu needs a Persistent Disk.
Deploy
- Select + New > Web Service.
- Under Source Code, select Existing Image.
- Enter
ghcr.io/dagucloud/dagu:latestand select Connect. - Select a paid instance type.
- Under Advanced, add a
1 GBPersistent Disk mounted at/var/lib/dagu. - Add these variables:
dotenv
PORT=8080
DAGU_AUTH_MODE=builtin
DAGU_AUTH_BUILTIN_INITIAL_ADMIN_USERNAME=admin
DAGU_AUTH_BUILTIN_INITIAL_ADMIN_PASSWORD=<strong-password>
PUID=0
PGID=0- Create the service.
Open its onrender.com HTTPS URL and sign in as admin. Remove the two DAGU_AUTH_BUILTIN_INITIAL_ADMIN_* variables, then deploy the change.
This direct-image setup runs Dagu and its workflows as root so the mounted disk is writable. Use a custom image that fixes the disk ownership to run as UID 1000.
The disk limits the service to one instance and disables zero-downtime deploys. Render creates daily disk snapshots. Render does not redeploy an image-backed service when a mutable tag changes; use Manual Deploy > Deploy latest reference. Use a versioned Dagu image for production.
See Render's prebuilt image and Persistent Disk documentation.

