Creating services
A service is your app, database or site running in the cloud. Every service is created through the same wizard and lives on the Services tab of the console.
Open console.muerte.cloud and go to Services to start.
Service types#
| Field | Description |
|---|---|
| Static site | HTML/CSS/JS and builds from React, Vue, Astro and other frontend frameworks |
| Web service | An app or API reachable from the internet over a domain |
| Private service | Runs inside your environment only, never published publicly |
| Worker | Background processing: queues, mailers, long tasks. No domain |
| Cron service | A container that starts on a schedule and exits |
| PostgreSQL / Redis / MongoDB | Managed databases with ready-to-use credentials |
Step by step#
- 1Open the creation wizardGo to Services → Create service and pick a type. The type decides which settings you see next — a domain and port are only requested for web services.
- 2Choose a code source
Applications support three sources:
- Catalog — ready-made apps deployed in one click (panels, CMS, game and media servers). Nothing to configure.
- Repository — connect a Git account, pick a repository and branch. Each new commit to that branch can trigger a rebuild.
- Archive — upload a
.zipwith your project. Handy when the code is not in Git.
Databases skip this step.
- 3Configure the buildThe build type defines how your code turns into a running service. When unsure, keep
Railpack— it detects the language (Node.js, PHP, Python, Go, Java and more) and picks build commands. - 4Pick resources and planChoose the plan the service is created under, then CPU and RAM. Insufficient RAM during the build is the single most common cause of failures. The console shows how many slots and resources the plan has left.
- 5Add environment variablesSet anything that must not live in code — API keys, connection strings, run mode — as
KEY=valuepairs, one per line. Values are masked in the UI and never printed into build logs. Changing variables requires a redeploy. - 6Set port and domain (web services)Enter the port your app listens on inside the container — for example
3000for Node.js,8000for Python,80for nginx. A technical domain is created and all traffic is routed to that port. - 7Create and watch the first buildClick Create. The service appears with a building status and the Deployments tab streams the live build log. On success the status becomes Running and the domain goes live.
Build types
| Field | Description |
|---|---|
| Railpack | Universal auto-detecting builder — the recommended default |
| Nixpacks | Alternative auto-builder, useful for unusual stacks |
| Paketo Buildpacks | Enterprise builds following the Cloud Native Buildpacks standard |
| Dockerfile | Your repository ships its own Dockerfile and you want full control |
| Static | Prebuilt static files, no server process needed |
Wrong port?
If the port does not match your process, the domain answers with a gateway error. Change it on the Settings tab and redeploy.
What to set up right after creating#
- A custom domain if the service is public.
- A volume for files that must survive redeploys.
- Backups for volumes and databases.
- Scheduled jobs for recurring maintenance.
Managing a service#
| Field | Description |
|---|---|
| Overview | Status, resources, quick actions: start, stop, redeploy. |
| Deployments | Build history, logs and rollbacks. |
| Logs | Live application logs. |
| Metrics | CPU and memory consumption. |
| Variables | Environment variables. |
| Settings | Port, domains, volumes, deletion. |
FAQ#
Can I change the build type later?
Yes, on the Settings tab. Trigger a redeploy afterwards.
What happens when a service is stopped?
The container shuts down and resources are released. Data in volumes and databases is kept, and starting the service again needs no rebuild.
Is deletion reversible?
No. The container, domains and attached volumes are removed. Only backups already exported to object storage remain.
If the build fails
Expand the deployment in the history and read the log. The Copy button next to the log is useful when you need to send it to support.
text
# typical failure: not enough RAM during install
Killed
error Command failed with exit code 137