Sling data platform for managing data pipelines, connections, and agents. See https://slingdata.io
10K+
The slingdata/sling-platform image provides a self-hosted Sling data platform for managing data pipelines, connections, and agents.
See for more details:
Run below and access on http://localhost:7878:
docker run -d \
-p 7878:7878 \ # this is the HTTP port
-p 4443:4443 \ # NATS port for agent communication
-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
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.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.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:7878SLING_PLATFORM_SMTP_CREDENTIALS - SMTP configuration for email notifications. 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]>"}To connect Sling agents to your platform, use the slingdata/sling image with these environment variables:
docker run -d \
-e SLING_PLATFORM_HOST="http://your-platform-host:7878" \
-e SLING_AGENT_KEY="your-agent-key-from-platform-ui" \
-v sling-agent-data:/home/sling \
slingdata/sling agent run
SLING_AGENT_KEY - Agent authentication key obtained from the platform UI under Agents sectionSLING_PLATFORM_HOST - Same URL as your platform instanceSLING_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.services:
sling-platform:
image: slingdata/sling-platform
ports:
- "7878:7878" # HTTP port for UI and API
- "4443:4443" # NATS WebSocket port for agent communication
expose:
- "7878"
- "4443"
environment:
SLING_PLATFORM_LICENSE: "your-license-key"
SLING_PLATFORM_ENCRYPTION_KEY: "your-32-char-encryption-key"
SLING_PLATFORM_ADMIN_CREDENTIALS: '{"email":"[email protected]","password":"secure-password"}'
SLING_PLATFORM_HOST: "http://external.ip:7878" # External URL for web UI access
SLING_PLATFORM_SMTP_CREDENTIALS: '{"host":"smtp.gmail.com","port":587,"user":"your-email","password":"your-password","from":"Sling <[email protected]>"}'
volumes:
- sling-platform-data:/home/sling
restart: unless-stopped
sling-agent:
image: slingdata/sling:latest
environment:
SLING_PLATFORM_HOST: "http://sling-platform:7878" # Internal container communication
SLING_AGENT_KEY: "your-agent-key"
command: agent run
volumes:
- sling-agent-data:/home/sling
depends_on:
- sling-platform
restart: unless-stopped
volumes:
sling-platform-data:
sling-agent-data:
/home/sling - Platform data directory.SLING_PLATFORM_HOSTslingdata/sling imageSLING_PLATFORM_ENCRYPTION_KEYFor documentation and support, visit https://docs.slingdata.io
# Namespace
apiVersion: v1
kind: Namespace
metadata:
name: sling-platform
---
# ConfigMap for environment variables
apiVersion: v1
kind: ConfigMap
metadata:
name: sling-platform-config
namespace: sling-platform
data:
SLING_PLATFORM_HOST: "http://external.ip:8080" # Update with your actual external IP/domain
---
# Secret for sensitive environment variables
apiVersion: v1
kind: Secret
metadata:
name: sling-platform-secrets
namespace: sling-platform
type: Opaque
stringData:
SLING_PLATFORM_LICENSE: "your-license-key"
SLING_PLATFORM_ENCRYPTION_KEY: "your-32-char-encryption-key"
SLING_PLATFORM_ADMIN_CREDENTIALS: '{"email":"[email protected]","password":"secure-password"}'
SLING_PLATFORM_SMTP_CREDENTIALS: '{"host":"smtp.gmail.com","port":587,"user":"your-email","password":"your-password","from":"Sling <[email protected]>"}'
SLING_AGENT_KEY: "your-agent-key"
---
# PersistentVolumeClaim for platform data
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: sling-platform-data
namespace: sling-platform
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
# storageClassName: your-storage-class # Uncomment and specify if needed
---
# PersistentVolumeClaim for agent data
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: sling-agent-data
namespace: sling-platform
spec:
accessModes:
- ReadWriteMany # Multiple agents can share this volume
resources:
requests:
storage: 5Gi
# storageClassName: your-storage-class # Uncomment and specify if needed
---
# Sling Platform Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: sling-platform
namespace: sling-platform
labels:
app: sling-platform
spec:
replicas: 1
selector:
matchLabels:
app: sling-platform
template:
metadata:
labels:
app: sling-platform
spec:
containers:
- name: sling-platform
image: slingdata/sling-platform:latest
ports:
- containerPort: 7878
name: http
protocol: TCP
- containerPort: 4443
name: nats
protocol: TCP
env:
- name: SLING_PLATFORM_HOST
valueFrom:
configMapKeyRef:
name: sling-platform-config
key: SLING_PLATFORM_HOST
- name: SLING_PLATFORM_LICENSE
valueFrom:
secretKeyRef:
name: sling-platform-secrets
key: SLING_PLATFORM_LICENSE
- name: SLING_PLATFORM_ENCRYPTION_KEY
valueFrom:
secretKeyRef:
name: sling-platform-secrets
key: SLING_PLATFORM_ENCRYPTION_KEY
- name: SLING_PLATFORM_ADMIN_CREDENTIALS
valueFrom:
secretKeyRef:
name: sling-platform-secrets
key: SLING_PLATFORM_ADMIN_CREDENTIALS
- name: SLING_PLATFORM_SMTP_CREDENTIALS
valueFrom:
secretKeyRef:
name: sling-platform-secrets
key: SLING_PLATFORM_SMTP_CREDENTIALS
optional: true
volumeMounts:
- name: platform-data
mountPath: /home/sling
resources:
requests:
memory: "512Mi"
cpu: "250m"
limits:
memory: "4Gi"
cpu: "2"
volumes:
- name: platform-data
persistentVolumeClaim:
claimName: sling-platform-data
restartPolicy: Always
---
# Sling Platform Service
apiVersion: v1
kind: Service
metadata:
name: sling-platform
namespace: sling-platform
labels:
app: sling-platform
spec:
type: ClusterIP
ports:
- port: 7878
targetPort: 7878
protocol: TCP
name: http
- port: 4443
targetPort: 4443
protocol: TCP
name: nats
selector:
app: sling-platform
---
# Sling Agent Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: sling-agent
namespace: sling-platform
labels:
app: sling-agent
spec:
replicas: 1 # Scale as needed
selector:
matchLabels:
app: sling-agent
template:
metadata:
labels:
app: sling-agent
spec:
containers:
- name: sling-agent
image: slingdata/sling:latest
args: ["agent", "run"]
env:
- name: SLING_PLATFORM_HOST
value: "http://sling-platform:7878"
- name: SLING_AGENT_KEY
valueFrom:
secretKeyRef:
name: sling-platform-secrets
key: SLING_AGENT_KEY
volumeMounts:
- name: agent-data
mountPath: /home/sling
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "8Gi"
cpu: "4"
volumes:
- name: agent-data
persistentVolumeClaim:
claimName: sling-agent-data
restartPolicy: Always
Content type
Image
Digest
sha256:f9da2374d…
Size
381.7 MB
Last updated
4 days ago
docker pull slingdata/sling-platform