How ServerSinc provisions servers

March 16, 2025

ServerSinc simplifies server provisioning, configuration, and management by combining automation with smart design. Here's how the server provisioning process works from start to finish.

Provisioning Servers

To begin, users add their Cloud Provider API keys to ServerSinc. This allows ServerSinc to create and manage servers on their behalf.

At launch, ServerSinc will support Hetzner, with DigitalOcean and additional providers following soon after.

Once API keys are added, users can submit their desired server specifications — such as instance size, region, and operating system. This triggers a ProvisionServer job that handles two key steps:

  1. Provisioning the Server: ServerSinc sends an API request to the chosen Cloud Provider to create the server.
  2. Storing Server Details: Once provisioned, the server’s IP address and other key details are saved in the database for future use.

In some cases, Cloud Providers may omit the server’s IP address from the initial response. ServerSinc’s approach ensures that even if details are missing, they can still be collected later.

Phoning Home

Cloud Providers differ in how they report a server’s status. Some mark a server as “active” while it’s still booting, while others wait until it's fully operational. This inconsistency creates issues for services like ServerSinc, which requires servers to be ready for SSH connections before continuing setup.

To solve this, ServerSinc sends a user_data script as part of the provisioning request. This script contains a CURL command that automatically pings ServerSinc once the server is fully booted.

When this “phone home” request arrives, ServerSinc verifies the server’s identity, updates its details in the database (including the IP address if it was missing), and dispatches an InstallServer job.

The InstallServer job connects via SSH to:

  • Install Docker
  • Configure necessary system settings
  • Prepare the server for Tugboat deployment

This proactive signal eliminates the need for ServerSinc to constantly check the Cloud Provider’s API, reducing delays and improving reliability.

Tugboat

Once the setup script is complete, it pulls the latest Tugboat image and deploys it as a container.

Tugboat is an open-source REST API server that manages both the system and Docker using the dockerode JS package. This creates a secure and efficient bridge between ServerSinc and its managed servers.

Instead of relying on frequent SSH connections, ServerSinc can request system metrics, deploy containers, or manage services by sending lightweight HTTP requests to the server’s Tugboat instance.

For example, if ServerSinc needs to retrieve CPU and RAM usage, it simply queries Tugboat rather than initiating an SSH session. This design significantly reduces latency, improves scalability, and minimizes the overhead of managing multiple servers.

Tugboat’s efficient design allows ServerSinc to provide real-time monitoring, run system updates, and deploy applications without constant SSH interaction, ensuring better performance and security.

Conclusion

ServerSinc streamlines server management by combining automated provisioning with Tugboat’s efficient API-driven design. The “Phoning Home” system ensures servers are only configured once they’re fully operational, reducing guesswork and minimizing errors.

This architecture allows ServerSinc to handle large server fleets efficiently while improving performance and security. Whether users are deploying a handful of servers or managing a large-scale infrastructure, ServerSinc ensures their applications run reliably while reducing the complexity of server management.

Share this post: