Skip to main content
Skip table of contents

Deployment For Clients

Surfly application consist of 23+ services. Most of them are containerized and
run with podman. Podman containers are managed by systemd. For more details,
see /etc/systemd/system folder. Surfly services normally have prefix ss-.

There are 2 exceptions - redis and postgresql services. They can be installed
and configured in 2 different ways:

During the installation process, the container images of services are pulled from the Surfly registry. The images of official released versions are retained in registry for 720 days. The other images are retained for 5 days.

To complete the installation process, a client requests a build file from our build server. The build file contains personalized configuration files for Surfly installation and a license file. The build file is downloaded from storage serverand cached for 1 day.

Minimum deployable version

Surfly releases a new version, on average, 2 to 6 times a month. We highly recommend using the latest version for optimal performance and security. However, if you are unable to do so, we also make efforts to ensure that older Surfly versions remain deployable.

The deployability of older versions is subject to certain conditions:

  • Availability of container images in the registry

  • Changes in system packages which are required for Surfly to function correctly (see up-to-date list here)

  • Changes in system packages required for Surfly to build.

  • The version of Surfly setup script. Regardless of the Surfly version you intend to deploy, the latest version of the setup script is required.

We are actively working to minimize system dependencies for both building and running Surfly, ensuring smoother deployment experiences.

Please note that Surfly does not support versions that rely on operating systems that have reached End of Life (EOL) status.

Future plans

  • Minimize the number of system packages required for Surfly to operate and build.

  • Transfer the generation of configuration files from the build server to the installation process on the server itself. This optimization aims to accelerate deployment and decrease reliance on system packages necessary for building Surfly.

  • Implement a distributive-independent installation process. We will define the minimum version of container engine, Linux kernel, and other essential system packages required for Surfly to function. This approach will enable easy installation on any modern Linux distribution.

  • Replace Surfly setup script with Podman pods or/and rewrite it in Go. This
    transition will allow us to simplify the installation process and reduce the number of
    packages required to install Surfly.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.