Overview
Pangolin supports two blueprint formats:- YAML Configuration Files: Standalone configuration files
- Docker Labels: Configuration embedded in Docker Compose files
YAML Configuration Format
Proxy Resources
Proxy resources are used to expose HTTP, TCP, or UDP services through Pangolin. Below is an example configuration for proxy resources:Authentication Configuration
Authentication is off by default. You can enable it by adding the relevant fields in the
auth
section as shown in the example below.Targets-Only Resources
You can define simplified resources that contain only target configurations. This is useful for adding targets to existing resources or for simple configurations:When using targets-only resources, the
name
and protocol
fields are not required. All other resource-level validations are skipped for these simplified configurations.Client Resources
Client resources are only accessible when connected via an Olm client:Docker Labels Format
For containerized applications, you can define blueprints using Docker labels.Enabling Docker Socket Access
To use Docker labels, enable the Docker socket when running Newt:Docker Compose Example

Pangolin UI showing Docker Compose blueprint example
Docker Labels Considerations
Automatic Discovery
When hostname and internal port are not explicitly defined in labels, Pangolin will automatically detect them from the container configuration.
Site Assignment
If no site is specified in the labels, the resource will be assigned to the Newt site that discovered the container.
Configuration Merging
Configuration across different containers is automatically merged to form complete resource definitions. This allows you to distribute targets across multiple containers while maintaining a single logical resource.
Configuration Properties
Proxy Resources
Property | Type | Required | Description | Constraints |
---|---|---|---|---|
name | string | Conditional | Human-readable name for the resource | Required unless targets-only resource |
protocol | string | Conditional | Protocol type (http , tcp , or udp ) | Required unless targets-only resource |
full-domain | string | HTTP only | Full domain name for HTTP resources | Required for HTTP protocol, must be unique |
proxy-port | number | TCP/UDP only | Port for raw TCP/UDP resources | Required for TCP/UDP, 1-65535, must be unique within proxy-resources |
ssl | boolean | No | Enable SSL/TLS for the resource | - |
enabled | boolean | No | Whether the resource is enabled | Defaults to true |
host-header | string | No | Custom Host header for requests | - |
tls-server-name | string | No | SNI name for TLS connections | - |
headers | array | No | Custom headers to add to requests | Each header requires name and value (min 1 char each) |
rules | array | No | Access control rules | See Rules section below |
auth | object | HTTP only | Authentication configuration | See Authentication section below |
targets | array | Yes | Target endpoints for the resource | See Targets section below |
Target Configuration
Property | Type | Required | Description | Constraints |
---|---|---|---|---|
site | string | No | Site identifier where the target is located | - |
hostname | string | Yes | Target hostname or IP address | - |
port | number | Yes | Port on the target system | 1-65535 |
method | string | HTTP only | Protocol method (http , https , or h2c ) | Required for HTTP protocol targets |
enabled | boolean | No | Whether the target is enabled | Defaults to true |
internal-port | number | No | Internal port mapping | 1-65535 |
path | string | HTTP only | Path prefix, exact path, or regex pattern | - |
path-match | string | HTTP only | Path matching type (prefix , exact , or regex ) | - |
Authentication Configuration
Not allowed on TCP/UDP resources.Property | Type | Required | Description | Constraints |
---|---|---|---|---|
pincode | number | No | 6-digit PIN for access | Must be exactly 6 digits |
password | string | No | Password for access | - |
sso-enabled | boolean | No | Enable SSO authentication | Defaults to false |
sso-roles | array | No | Allowed SSO roles | Cannot include “Admin” role |
sso-users | array | No | Allowed SSO user emails | Must be valid email addresses |
whitelist-users | array | No | Whitelisted user emails | Must be valid email addresses |
Rules Configuration
Property | Type | Required | Description | Constraints |
---|---|---|---|---|
action | string | Yes | Rule action (allow , deny , or pass ) | - |
match | string | Yes | Match type (cidr , path , ip , or country ) | - |
value | string | Yes | Value to match against | Format depends on match type |
Client Resources
These are resources used with Pangolin Olm clients (e.g., SSH, RDP).Property | Type | Required | Description | Constraints |
---|---|---|---|---|
name | string | Yes | Human-readable name for the resource | 2-100 characters |
protocol | string | Yes | Protocol type (tcp or udp ) | - |
proxy-port | number | Yes | Port accessible to clients | 1-65535, must be unique within client-resources |
hostname | string | Yes | Target hostname or IP address | 1-255 characters |
internal-port | number | Yes | Port on the target system | 1-65535 |
site | string | No | Site identifier where the resource is located | 2-100 characters |
enabled | boolean | No | Whether the resource is enabled | Defaults to true |
Validation Rules and Constraints
Resource-Level Validations
-
Targets-Only Resources: A resource can contain only the
targets
field, in which casename
andprotocol
are not required. -
Protocol-Specific Requirements:
- HTTP Protocol: Must have
full-domain
and all targets must havemethod
field - TCP/UDP Protocol: Must have
proxy-port
and targets must NOT havemethod
field - TCP/UDP Protocol: Cannot have
auth
configuration
- HTTP Protocol: Must have
-
Port Uniqueness:
proxy-port
values must be unique withinproxy-resources
proxy-port
values must be unique withinclient-resources
- Cross-validation between proxy and client resources is not enforced
-
Domain Uniqueness:
full-domain
values must be unique across all proxy resources -
Target Method Requirements: When protocol is
http
, all non-null targets must specify amethod
Common Validation Errors
When working with blueprints, you may encounter these validation errors:“Admin role cannot be included in sso-roles”
TheAdmin
role is reserved and cannot be included in the sso-roles
array for authentication configuration.
”Duplicate ‘full-domain’ values found”
Eachfull-domain
must be unique across all proxy resources. If you need multiple resources for the same domain, use different subdomains or paths.
”Duplicate ‘proxy-port’ values found”
Port numbers inproxy-port
must be unique within their resource type (proxy-resources or client-resources separately).
”When protocol is ‘http’, all targets must have a ‘method’ field”
All targets in HTTP proxy resources must specify whether they usehttp
, https
, or h2c
.
”When protocol is ‘tcp’ or ‘udp’, targets must not have a ‘method’ field”
TCP and UDP targets should not include themethod
field as it’s only applicable to HTTP resources.
”When protocol is ‘tcp’ or ‘udp’, ‘auth’ must not be provided”
Authentication is only supported for HTTP resources, not TCP or UDP.”Resource must either be targets-only or have both ‘name’ and ‘protocol’ fields”
Resources must either contain only thetargets
field (targets-only) or include both name
and protocol
for complete resource definitions.