Documentation

Private Services - Secure Internal Network

Deploy secure internal services accessible only within your private network. Perfect for databases, internal APIs, background processors, and microservices that don't need public internet access.

Private Network
Internal Services
Secure Deployment
Microservices

What are Private Services?

deployra private services are identical to web services with one crucial difference: they're completely isolated from the public internet. These services don't receive public URLs or deployra.app subdomains, making them perfect for internal infrastructure components.

Database Services

Host Elasticsearch, ClickHouse, or custom databases securely

Internal APIs

Deploy backend services and microservices for internal use

Background Processors

Run job queues, task processors, and worker services

Private Service

service-name.service

No Public Access

Internal network only

Use cases for private services

Search engines
Deploy Elasticsearch or other search tools

Run search engines like Elasticsearch that only need to be accessed by your application servers, not by end users directly.

Analytics databases
Deploy ClickHouse and similar analytics tools

Run analytics databases that process internal data and don't need to be exposed to the public internet.

Internal APIs
Backend services that only serve your application

Deploy internal APIs and microservices that should only be accessible to your other services, not to the outside world.

Background processors
Handle jobs and process queues privately

Run background task processors, job queues, or other services that don't need direct user interaction.

Connecting to private services

Within your Deployra private network, services can reach each other using internal hostnames, which follow this format:

service-name.service

For example, if you have a web service named "api" and a private service named "search", your api service can connect to the search service using "search.service" as the hostname.

Example: Connecting to Elasticsearch

If you deploy Elasticsearch as a private service named "elasticsearch", your web services would connect to it using this connection string:

http://elasticsearch.service:9200

Where 9200 is the standard port that Elasticsearch listens on.

Frequently Asked Questions

What's the difference between private and web services?

Private services are identical to web services except they're not accessible from the public internet. They don't receive public URLs or deployra.app subdomains, making them perfect for internal infrastructure components that only need to communicate with your other services.

How do private services communicate with each other?

Private services communicate using internal hostnames within your deployra private network. The format is service-name.service. For example, a service named "database" would be accessible at database.service from your other services.

Can private services use custom ports?

Yes! Private services can listen on almost any port and communicate using any protocol (HTTP, TCP, UDP). This flexibility makes them perfect for databases, message queues, and other specialized services that may require specific port configurations.

Are private services more secure than web services?

Private services provide an additional layer of security through network isolation. Since they're not accessible from the public internet, they can only be reached by your other deployra services within the same private network, reducing the attack surface significantly.

What types of applications work best as private services?

Private services are ideal for databases (Elasticsearch, ClickHouse, MongoDB), internal APIs, background job processors, message queues, caching layers, and any service that doesn't need direct access from end users but serves your application infrastructure.

Can I convert a web service to a private service?

You'll need to redeploy your service as a private service type. The application code remains the same, but the networking configuration changes to remove public internet access. Make sure to update any connection strings in your other services to use the internal hostname format.