Endpoints are how you expose a specific port on a container without attaching a public IP to it. The platform performs the TCP or UDP port mapping for you and routes external traffic to that port through the Shared Load Balancer.
This is the right tool when you need direct access to a service — a database client, a remote IDE, an admin panel — but do not want the operational cost of a dedicated public IP.
Managing endpoints
Endpoints live on the environment, under Settings → Endpoints. The tab shows every endpoint defined on every node in the environment.
Adding an endpoint
Click Add on the toolbar and fill the form:
| Field | What it does |
|---|---|
| Node | The environment node the endpoint exposes |
| Name | A label, or one of the pre-configured templates |
| Private Port | The port on the node that should be reachable |
| Protocol | TCP or UDP |
The Public Port and Access URL are assigned by the platform and appear in the list once the endpoint is created.
Pre-configured port templates
For convenience, common service ports have a named template — pick the template and the private port is filled in for you.
| Template | Private port |
|---|---|
| FTP | 21 |
| SSH | 22 |
| SMTP | 25 |
| DNS-UDP / DNS-TCP | 53 |
| HTTP | 80 |
| POP3 | 110 |
| IMAP | 143 |
| LDAP | 389 |
| HTTPS | 443 |
| SMTPS | 587 |
| IMAPS | 993 |
| POP3S | 995 |
| Docker Swarm | 2377 |
| MySQL | 3306 |
| Remote Desktop | 3389 |
| Docker Swarm Overlay | 4789 |
| PostgreSQL | 5432 |
| RabbitMQ | 5672 |
| CouchDB | 5984 |
| PowerShell | 5986 |
| Redis | 6379 |
| Cassandra-JMX | 7199 |
| Neo4J | 7474 |
| Riak | 8093 |
| Cassandra | 9042 |
| Memcached | 11211 |
| MongoDB | 27017 |
Editing and removing
Double-click an endpoint to edit its name, private port, or protocol. Use the Remove action in the toolbar to delete it.
Operational notes
- VPS and custom Docker containers — the listed private port must be opened on the container manually. Endpoints handle the public-side mapping only.
- Nodes that also have a public IP — drop the
node{nodeId}-prefix from the endpoint’s Access URL; otherwise the URL resolves to the public IP instead of the SLB-routed endpoint.
Common use cases
Remote database access
The most common reason to add an endpoint. Once the MySQL or PostgreSQL endpoint is live, connect from your local shell:
mysql -h {host} -P {port} -u {user} -p
Where:
{host}is the endpoint’s Access URL without the port suffix{port}is the endpoint’s public port{user}is your database user (the platform emails the default credentials after environment creation)
The same pattern works with a graphical client (MySQL Workbench, DBeaver, TablePlus, pgAdmin). Configure a new connection with the endpoint host and port, and store the password in your keychain if your client supports it.
Running multiple project copies on a single application server
You can use one application server to host both production and a dev branch by exposing extra ports through endpoints.
- Create an endpoint on the application server with an unused private port (avoid 80 — Apache uses it for default HTTP traffic).
- Deploy the application twice, to different contexts (e.g.
prodanddev). - Edit the Apache configuration (
/etc/httpd/conf/httpd.conf) to listen on the extra port:Listen [::]:{port} - Duplicate the default
VirtualHostblock, change its port, and point its document root at the second context.
External traffic to the endpoint reaches the second VirtualHost; the default URL still serves production.