Platform
Everything between a commit and a served request.
Quayel builds your code, places it on machines you own, fronts it with a real gateway, and tells you what happened. This page walks through each piece.
$curl -fsSL https://agent-api.quayel.com/install.sh | sudo bashDeployments
Ship on push, or on click — your call, per service.
Auto-deploy is a per-service switch, so the repos that should ship themselves do, and the ones that need a human don't.
GitHub App, not a webhook you maintain
Install the Quayel app on the repos you choose. Pushes to the deploy branch trigger a build automatically, and the connection can be revoked from GitHub at any time.
Four ways in
A connected GitHub repo, any reachable Git URL, a Dockerfile in your tree, or a prebuilt image from a registry. Same pipeline downstream.
Builds without a Dockerfile
Nixpacks inspects the project and produces an image for most common stacks. Bring your own Dockerfile when you need the control.
Rolling updates
Replicas are replaced one at a time so the service keeps answering. If the new version won't come up, the old one keeps serving.
Pre- and post-deploy scripts
Run migrations before the new version starts, or warm a cache once it's healthy. Both hooks live with the service.
Maintenance mode
Flip a switch to serve a maintenance page instead of the service while you do something disruptive.
- Push to maina41f902 · Merge pull request #218
- Buildnixpacks · cached layers reused
- Deployapp-1 · rolling, 2 replicas
- Liveapi.acme.com · 200 in 41ms
Servers & agent
One command turns a bare host into part of your platform.
The agent takes a fresh Ubuntu or Debian machine and leaves it ready to run workloads, front traffic, and report on itself. Add as many machines as you need and choose which one each service runs on.
One command to enroll
The installer sets up Docker Engine and Compose, initialises Swarm with an overlay network, installs nixpacks, brings up the gateway, and registers the host against your organization.
The agent keeps itself current
It compares its installed version against the published installer and updates in place, so a fleet doesn't drift apart over months.
Hardware and runtime facts sync
CPU model, cores, memory, disk and the state of Docker and nixpacks are reported back, so the dashboard reflects the machine rather than what you typed when you added it.
Placement is explicit
Each service names the server it runs on and how many replicas it keeps there. A service lives on one machine; spread different services across as many machines as you like.
Gateway & domains
A real edge on every server, configured from the dashboard.
Apache APISIX runs on each host. Quayel keeps its routes in sync with your services so you never edit config on the box.
Domains with certificates attached
Add a hostname to a service and Quayel creates the DNS record and provisions the certificate. Nothing to renew, nothing to cron.
Host and path routing
Route a hostname, or a path prefix under one, straight to a service port. Rules sync into the server's APISIX instance as you save them.
JWT-guarded routes
Put a route behind token verification without adding auth middleware to the service itself. Configure the claims and algorithm from the dashboard.
Conditions and redirects
Match on request attributes to steer traffic, and manage permanent or temporary redirects for hostnames you've retired.
Service config
The knobs you expect, in one place.
Environment, storage, ports and limits live with the service and apply on the next deploy.
Environment variables
A key-value map per service, applied on the next deploy and written into the generated compose definition.
Storage
Named volumes, bind mounts and file mounts, declared per service so state survives redeploys.
Resource limits
CPU and memory ceilings per service, so one noisy workload can't take a host down with it.
Ports
Publish container ports on the host where you need direct access, alongside whatever the gateway routes.
Observability
What ran, what it's doing, and who set it going.
Enough signal to answer an incident question without SSHing into three boxes.
Logs live, then archived
Build and runtime output streams while a run is in flight and is written to object storage when it finishes, so you can still read what happened last week.
Metrics from the machine
CPU, memory, network and replica counts arrive on a heartbeat from the agent rather than being inferred from the last action you took.
Actions with an actor
Every deploy, restart and rebuild records who triggered it and which commit it put live — the answer to 'what changed and who changed it'.
Status that self-corrects
Stale readings are ignored in favour of fresher ones, so the UI converges on what the servers actually report.
Sources & templates
Start from your repo — or from something already built.
Postgres, MySQL, MariaDB, MongoDB, Redis and Valkey come preconfigured in the catalogue, so standing up a dependency isn't a research project. They deploy like any other service, with their own volumes and domains.
GitHub
Install the app, pick repos, choose a branch. Push-to-deploy from there.
Git URL
Any reachable repository, with the branch and build settings you specify.
Dockerfile
Already containerized? Quayel builds your Dockerfile as written.
Container image
Point at an image in any registry and run it with your env and ports.
Templates
Databases and other open-source services, preconfigured and ready to deploy.
Architecture
What actually runs where.
Quayel is a control plane. The parts that touch your traffic and your data run on your machines.
| Component | Role | Where |
|---|---|---|
| qagent | Runs on each host. Executes actions, reports metrics and hardware, manages containers and keeps the gateway in sync. | Docker container, privileged |
| Apache APISIX | Per-server edge. Terminates TLS, routes by host and path, applies auth and redirect rules. | Ports 80 / 443 |
| etcd | Configuration store backing APISIX on the host. | Internal network only |
| Docker Swarm | Schedules and supervises service replicas on the machine. | Overlay network |
| Quayel control plane | Orgs, services, deployments, access control and the public API. Never holds your workload data. | api.quayel.com |
Try it
Enroll a server and deploy something
The fastest way to judge a deployment platform is to put a real service on it. That takes about five minutes here.