Self-Hosting

Deploy and manage Sling Platform in your own infrastructure

Overview

Self-hosting Sling Platform enables organizations to:

  • Maintain complete control over data and infrastructure

  • Meet strict compliance and security requirements

  • Deploy in air-gapped or private environments

  • Customize deployment configurations

The slingdata/sling-platform image provides a self-hosted Sling data platform for managing data pipelines, connections, and agents.

Quick Start

Run below and access on http://localhost:7878:

docker run -d \
  -p 7878:7878 \
  -p 4443:4443 \
  -e SLING_PLATFORM_LICENSE="your-license-key" \
  -e SLING_PLATFORM_ENCRYPTION_KEY="your-32-char-encryption-key" \
  -e SLING_PLATFORM_ADMIN_CREDENTIALS='{"email":"[email protected]","password":"your-secure-password"}' \
  -v sling-platform-data:/home/sling \
  slingdata/sling-platform:latest

Required Environment Variables

  • SLING_PLATFORM_LICENSE - Your Sling Platform license key. This can be either a 36-character UUID for cloud-verified licenses or an offline license token for air-gapped environments. Obtain a trial key from https://dash.slingdata.io/self-platform (no credit card needed).

  • SLING_PLATFORM_ENCRYPTION_KEY - A 32-character encryption key used to encrypt sensitive data like connection credentials. Generate a secure random string.

  • SLING_PLATFORM_ADMIN_CREDENTIALS - JSON payload containing the initial admin user credentials. need email and password keys.

Optional Environment Variables

  • SLING_PLATFORM_HOST - The external URL where your platform will be accessible. This is used for agent connections and web UI access. The default is http://localhost:7878

  • SLING_PLATFORM_SMTP_CREDENTIALS - SMTP configuration for email notifications. If your SMTP service requires SSL, specify the optional security key with the value SSL. If not provided, email notifications will be disabled. For example: {"host":"smtp.gmail.com","port":587,"user":"[email protected]","password":"your-app-password","from":"Sling Platform <[email protected]>", "security": "SSL"}

  • SLING_LOGGING - The default logger uses ANSI colors. You can change this if you'd like, accepts values: NO_COLOR or JSON.

Connecting Agents

To connect Sling agents to your platform, use the slingdata/sling image with these environment variables:

Agent Environment Variables

  • SLING_AGENT_KEY - Agent authentication key obtained from the platform UI under Agents section

  • SLING_PLATFORM_HOST - Same URL as your platform instance

  • SLING_PLATFORM_HOST_WS - Optional, the web-socket host to use for NATS connection, e.g. ws://your-platform-host:4443. Default uses the same host as SLING_PLATFORM_HOST.

Docker Compose Example

Ports

  • 7878 - Main HTTP port for web UI and API access

  • 4443 - Web-Socket port for agent communication (via NATS)

Volumes

  • /home/sling - Platform data directory.

Embedded Database: The sling-platform container includes an embedded PostgreSQL database. Database files are stored under /home/sling/platform/postgres within the container. This database is accessible on port 9876 with username sling (read-only) and password pgpass.$PREFIX, where $PREFIX is the first 6 characters of SLING_PLATFORM_ENCRYPTION_KEY. The database name is sling_platform.

Here is the env var to have Sling read from the Platform database (replace $PREFIX and $SLING_PLATFORM_HOST): SLING_PLATFORM_DB='postgresql://sling:pgpass.$PREFIX@$SLING_PLATFORM_HOST:9876/sling_platform?sslmode=disable'

Custom Agent Docker Image

If you need to build your own custom Sling agent Docker image (for example, to include additional dependencies or configurations), you can use the official Dockerfiles as a starting point:

See here for an example.

Getting Started

  1. Start the platform container with required environment variables

  2. Access the web UI at your configured SLING_PLATFORM_HOST

  3. Log in with your admin credentials

  4. Create agent keys in the Agents section

  5. Deploy agents using the slingdata/sling image

  6. Start creating connections and data pipelines

Security Notes

  • Use strong, unique values for SLING_PLATFORM_ENCRYPTION_KEY (32 characters)

  • Store sensitive environment variables securely

  • Use HTTPS in production environments

Support

For support, reach out to [email protected].

Kubernetes

Troubleshooting

Common Issues

  1. Platform won't start

    • Check container logs: docker logs sling-platform

    • Verify environment variables are set correctly

    • Ensure data volume has sufficient permissions

  2. Agents not connecting

    • Verify network connectivity between agent and platform

    • Check agent key is valid and properly set

    • Ensure platform URL is accessible from agent

    • Review agent logs for error messages

  3. Performance issues

    • Increase resource limits (CPU/memory)

    • Scale agents horizontally for more concurrent jobs

    • Monitor disk space for data volume

Getting Help

If you are facing issues setting up, please reach out to us at [email protected], on discord or open a Github Issue here.

Last updated

Was this helpful?