Deploy qhook to Render
1. Create a Web Service
- In the Render dashboard, select New > Web Service
- Connect your GitHub repository and select the qhook repo
- Configure:
- Environment: Docker (Dockerfile is auto-detected)
- Region: Closest to your users
- Instance Type: Starter or above
2. Environment Variables
Set in the Environment tab:
| Variable | Value | Notes |
|---|---|---|
PORT |
8888 |
Render may auto-set this |
DATABASE_URL |
postgres://... or sqlite:///data/qhook.db |
See below |
RUST_LOG |
info |
Use debug for verbose logs |
PORT Mapping
Render specifies the port via the PORT environment variable. Reference it in qhook.yaml:
server:
port: ${PORT}
Keep the Dockerfile EXPOSE consistent:
EXPOSE 8888
3. Postgres Add-on
- In the Render dashboard, create New > PostgreSQL
- Copy the Internal Database URL
- Set it as
DATABASE_URLin the Web Service environment variables
Traffic goes through Render’s internal network – no external exposure needed.
4. Disk (for SQLite)
Render’s filesystem resets on every deploy, so SQLite requires a Disk:
- Go to the Web Service Disks tab and click Add Disk
- Configure:
- Mount Path:
/data - Size: 1 GB (increase as needed)
- Mount Path:
qhook.yaml and the SQLite DB are persisted under /data.
Note: Starter plan does not support Disks. Standard plan or above is required for SQLite.
5. Health Check
Set the Health Check Path in the Settings tab:
/health
Render periodically calls this endpoint and auto-restarts on failure.
6. Custom Domain
- Go to Settings > Custom Domains and click Add Custom Domain
- Enter your domain (e.g.,
hooks.example.com) - Add the displayed CNAME record to your DNS:
hooks.example.com CNAME xxx.onrender.com - SSL certificates are auto-provisioned (Let’s Encrypt)
Deploys trigger automatically on push to GitHub. For manual deploys, use Manual Deploy > Deploy latest commit.