services
Private Service
Internal services that are not exposed to the public internet.
A private service runs inside your deployment network but is not accessible from the public internet. Other services in the same deployment can reach it through internal networking.
When to Use#
- Internal APIs or microservices that should not be public
- Authentication or authorization services
- Internal tools and admin panels
- Services that only other services need to reach
Configuration#
runix.yaml
yaml
services:
- name: auth-service
type: private-service
repo: https://github.com/alice/auth
env:
PORT: "4000"
JWT_SECRET: "my-secret"
- name: api
type: web-service
repo: https://github.com/alice/api
env:
AUTH_SERVICE_URL: "http://auth-service:4000"Available Fields#
| Field | Default | Description |
|---|---|---|
| `repo` | — | GitHub repository URL (required) |
| `branch` | `main` | Git branch to deploy |
| `instance` | `starter` | Instance type |
| `build_command` | Auto-detected | Override the build command |
| `start_command` | Auto-detected | Override the start command |
| `env` | None | Environment variables |
Key Differences from Web Services#
- No public URL or subdomain is assigned
- Only reachable by other services in the same deployment via internal networking
- Uses the service name as the hostname (e.g., `http://auth-service:4000`)
Use private services for anything that should not be directly reachable from the internet, like authentication backends, internal APIs, or admin tools.
Private services still get health monitoring and log streaming. You can view their status and logs in the dashboard or CLI just like any other service.