Serversinc

Introduction

An introduction to Serversinc and its features.

What is Serversinc?

ServerSinc is an application-centric deployment and server management tool designed to streamline how you build, ship, and manage Dockerized apps across multiple servers.

Key Features

  • Multiple Cloud Providers: Deploy your applications on various cloud platforms like Hetzner and DigitalOcean.
  • Server Management: Easily manage your servers, including starting, stopping, and rebooting them.
  • Application Management: Deploy, configure, and manage your applications with ease.
  • Docker Support: Built-in support for Docker, making it easy to deploy containerized applications.
  • User-Friendly Interface: A simple and intuitive web interface for managing your deployments.

Why Use Serversinc?

Managing and deploying applications across multiple servers can be complex and time-consuming. Whilst there are many tools available to help with this, they often provide a fragmented experience, requiring you to juggle multiple interfaces and tools. Serversinc aims to simplify this process by providing a unified platform that allows you to manage your servers and applications in one place.

Who is Serversinc for?

I originally built ServerSinc to simplify how I manage my own apps, such as MCR Trams, hosted across multiple servers. Managing deployments, updates, and environments for client and personal projects became tedious, so I built something to make it easier.

If you're a developer, freelancer, or small team running multiple Dockerized apps on different servers, ServerSinc is built for you. It takes the pain out of managing infrastructure, so you can focus on building, not babysitting servers.

Getting Started

Getting up and running with ServerSinc is quick. Here’s how to launch your first app:

  1. Sign Up Create a free account to access the dashboard.

  2. Connect a Cloud Provider Link your preferred cloud provider (e.g. DigitalOcean, AWS) by securely adding your API credentials.

  3. Provision a Server Spin up a new server with Docker and Traefik pre-installed—or connect an existing one.

  4. Deploy Your App Link your GitHub repo, set environment variables, and deploy your Dockerized application in seconds.

Cloud Providers

Serversinc lets you provision new servers directly from your cloud provider, making it easy to scale infrastructure across multiple regions and providers when needed.

How it works

By connecting your cloud provider (such as Hetzner or DigitalOcean) using API tokens, ServerSinc can securely create and manage virtual machines on your behalf. This enables you to:

  • Spin up new servers with one click
  • Automatically install Docker, Traefik, and monitoring agents
  • Install Tugboat for Docker management
  • Manage server lifecycle (start, stop, reboot)

Supported Cloud Providers

ServerSinc currently supports the following cloud providers:

  • Hetzner Cloud: A cost-effective cloud provider with data centers in Europe.

Connecting a Cloud Provider

To connect a cloud provider, follow these steps:

  1. Create an API Token: Log in to your cloud provider's dashboard and create a new API token with the necessary permissions.
  2. Add the Token to ServerSinc: In the ServerSinc dashboard, click on "Manage Cloud Providers" and select "Add New Provider". Enter the API token and any required details.
  3. Start Provisioning: Once connected, you can start provisioning new servers directly from the ServerSinc dashboard.

Servers

In ServerSinc, a server is any remote machine (usually a VPS or cloud VM) that you use to host and run Dockerized applications.

What happens during provisioning?

When you provision a server, ServerSinc performs the following steps:

  1. Creates a new server instance on your chosen cloud provider.
    • By default, ServerSinc uses the ubuntu-24.04 image for the server.
  2. Runs an installer script to set up:
  3. Configures SSH access for ServerSinc (in case we need to connect to the server later).
  4. Sets up a secure connection between ServerSinc and the server's Tugboat instance.

Managing Servers

You can manage your servers through the ServerSinc dashboard. Here are some common actions:

  • Start/Stop: Control the server's power state.
  • Reboot: Restart the server.

Deleting a Server

When deleting a server, ServerSinc will:

  • Remove any and all Application data associated with that server.
  • Stop and delete all Containers running on that server.
  • Remove the server from your account.

You will need to remove the VPS or VM instance from your cloud provider manually, as ServerSinc does not handle this automatically yet.

Applications

An Application defines how your software is deployed and managed on an Server. It acts as a blueprint for creating and managing Docker containers effectively.

Applications can be:

  • Built from source: using a public or private GitHub repository, cloned and built on the target server.
  • Deployed from a Docker image: pulled and run directly without source code access.

Each Application includes:

  • Labels: Metadata applied to containers for identification, routing, or automation.
  • Environment Variables: Key-value pairs passed to containers at runtime.
  • Volumes: Persistent storage mounts for container data.

Updating an Application does not automatically redeploy containers. To apply changes, you must manually trigger a redeploy from the Deployment tab.

Creating an Application

To create an Application, follow these steps:

  1. Navigate to the Applications Page: Click on "Applications" in the sidebar.
  2. Click "Create Application": This opens the Application creation form.
  3. Fill in the Details: - Type: Choose between "Github" (GitHub repository) or "Docker Image". - Name: Enter a unique name for the Application. - Domain: Specify the domain for the Application (optional). - Port: Set the port on which the Application will run (optional). 3a. Github: - Repository URL: Enter the URL of the GitHub repository. - Branch: Specify the branch to build from (default is main). 3b. Docker Image: - Image Name: Enter the name of the Docker image to deploy. - Tag: Specify the image tag (default is latest). - Private Registry: If using a private registry, provide the registry URL and authentication details.
  4. Configure Labels: Add any labels needed for the Application.
  5. Set Environment Variables: Add any environment variables required by the Application.
  6. Define Volumes: Specify any volumes to mount for persistent storage.
  7. Select Server: Choose the server where the Application will be deployed.