Server settings control how the HTTP server runs, including network binding, API endpoints, and cross-origin requests.
Configuration
# .systemprompt/profiles/local/profile.yaml
server:
host: "0.0.0.0"
port: 8080
api_server_url: "http://localhost:8080"
api_internal_url: "http://localhost:8080"
api_external_url: "http://localhost:8080"
use_https: false
cors_allowed_origins:
- "http://localhost:8080"
- "http://localhost:5173"
Fields
| Field | Required | Description |
|---|---|---|
host |
Yes | Network interface to bind (127.0.0.1 or 0.0.0.0) |
port |
Yes | TCP port (must be > 0) |
api_server_url |
Yes | Primary API endpoint |
api_internal_url |
Yes | Internal service-to-service URL |
api_external_url |
Yes | Public URL for external clients |
use_https |
No | Enable HTTPS (default: false) |
cors_allowed_origins |
No | Allowed CORS origins |
The 3 API URLs
systemprompt.io uses three distinct URLs:
| URL | Purpose | Example |
|---|---|---|
api_server_url |
Primary API | http://localhost:8080 |
api_internal_url |
Service-to-service | http://app.internal:8080 |
api_external_url |
Public access, OAuth callbacks | https://api.example.com |
CORS Configuration
Allow frontend applications to make API requests:
server:
cors_allowed_origins:
- "http://localhost:5173" # Vite dev server
- "https://app.example.com" # Production frontend
CORS Rules
- Each origin must start with
http://orhttps:// - No trailing slashes
- No wildcards (
*)
Production Example
server:
host: "0.0.0.0"
port: 8080
api_server_url: "https://api.example.com"
api_internal_url: "http://app.internal:8080"
api_external_url: "https://api.example.com"
use_https: false # TLS at load balancer
cors_allowed_origins:
- "https://app.example.com"
See systemprompt infra services --help for detailed CLI options.