DebTik features an enterprise-grade, high-performance Reverse Proxy & Application Gateway engine integrated natively into the appliance controller.
It enables transparent reverse proxying of incoming HTTP and HTTPS traffic matching specific domain names, hostnames, IP addresses, or path prefixes, terminating SSL/TLS certificates issued or managed by the DebTik Certificate Manager, and forwarding requests to internal or external backend services while preserving complete subfolder hierarchies and query strings.
Protocol Flexibility:
Domain, Hostname & IP Matching:
app.example.com, nextcloud.home).*.example.com).192.168.1.1, 10.99.1.1).*).Path-Based Routing & Subfolder Preservation:
/app1, /api/v1, or root /).http://example.com/app1/module1/attribute1?filter=active/module1/attribute1 and query parameters.http://example.com/app1 (target has subpath)http://10.0.0.5:8080 (root target)Strip Path Prefix:
strip_path: true)./service1, Request /service1/users -> Backend receives /users.Integrated SSL/TLS & Dynamic SNI:
/certificate).Backend Insecure TLS & Host Preservation:
insecure_tls: Allows proxying to HTTPS backends using self-signed or internal certificates.preserve_host: Forwards original client Host header instead of target backend hostname when needed.Configuration is stored in /etc/debtik/reverse_proxy.json.
{
"enabled": true,
"http_port": 80,
"https_port": 443,
"default_cert": "ns0-eparmak-eu",
"rules": [
{
"id": "proxy-1793627577980971773",
"name": "App1 Gateway",
"enabled": true,
"domains": ["example.com", "app.example.com"],
"path": "/app1",
"target_url": "http://example.com/app1",
"strip_path": false,
"preserve_host": false,
"protocol": "both",
"certificate": "ns0-eparmak-eu",
"http_to_https": true,
"insecure_tls": false,
"comment": "Production App1 backend forwarding"
}
]
}
DebTik provides full RouterOS CLI commands for the reverse proxy:
/ip reverse-proxy print
/ip reverse-proxy status
/ip reverse-proxy add name=Nextcloud domains=cloud.example.com path=/ target=http://10.0.0.25:8080 protocol=https certificate=cloud-cert http-to-https=yes
/ip reverse-proxy add name=Microservice1 domains=example.com path=/app1 target=http://10.0.0.50:3000/app1 protocol=both
/ip reverse-proxy enable <id>
/ip reverse-proxy disable <id>
/ip reverse-proxy remove <id>
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/proxy/config |
Get global engine settings |
POST |
/api/proxy/config |
Update global engine settings |
GET |
/api/proxy/rules |
List all proxy rules |
POST |
/api/proxy/rules |
Create a new proxy rule |
GET |
/api/proxy/rules/{id} |
Get specific rule details |
PUT |
/api/proxy/rules/{id} |
Update existing rule |
DELETE |
/api/proxy/rules/{id} |
Delete proxy rule |
POST |
/api/proxy/rules/{id}/state |
Toggle rule enabled/disabled state |
GET |
/api/proxy/status |
Runtime status, ports, and telemetry |