Run Syncloop on Docker (Locally or Private Cloud)
Overview
Using Docker, developers can easily run the Syncloop AI Platform in a containerized environment. This ensures a consistent setup, simplifies deployment, and enables faster development workflows — all without manual configuration.
Prerequisites
Before running Syncloop on Docker, ensure the following
Docker Installation
- Install Docker CLI on your system.
- Network Access
- Docker images are pulled from a centralized public repository.
- Ensure that your system allows outbound network access to Docker Hub.
Docker Images
Syncloop provides two Docker image variants:
| Version | Docker Repository | Description |
| Enterprise Edition | nature9/syncloop | Full-featured enterprise version with advanced capabilities. |
Run on Docker CLI
Run the Enterprise Version
Execute the following command in your terminal or command prompt:
docker run -d -p 8080:8080 nature9/syncloop
Explanation:
| -d | runs the container in detached mode (in the background) |
| -p 8080:8080 | maps port 8080 from the container to port 8080 on your host system |
| nature9/syncloop | specifies the image name to run |
Run on custom ports
Syncloop supports configuring server ports via environment variables inside the container:
| SERVER_PORT | HTTP port used by the Syncloop app inside the container |
| SECURE_SERVER_PORT | HTTPS port used by the Syncloop app inside the container |
When you change these container-side ports, you must map a host port to the same container port using -p.
Example: Map host ports 80 and 443 to the container (HTTP + HTTPS)
docker run -d \
-e SERVER_PORT=80 \
-e SECURE_SERVER_PORT=443 \
-p 80:80 -p 443:443 \
nature9/syncloop
Verify Syncloop is Running
After running the command, verify that the container is active:
docker ps
You should see a running container with the image name **nature9/syncloop**
Run Syncloop Using the Browser
Once the container is up and running:
- Open a web browser on your local machine.
- Navigate to the following URL:
- You will be greeted with the Syncloop Web Interface (login or setup screen).
From here, you can:
- Log in to the Syncloop dashboard.
- Create and manage APIs.
- Configure agents and workflows.
- Access system health and runtime metrics.
http://localhost:8080
If you are running Syncloop on a remote server, replace localhost with the server’s IP address or domain name, for example:
http://<your-server-ip>:8080
Container Management Commands
-
View Running Containers
docker ps -
Stop Syncloop
docker stop -
Restart Syncloop
docker start -
Remove the Container
docker rm
Next Steps
- To configure your environment, users, and API endpoints, visit the Syncloop Configuration Guide.
- For persistent storage, environment variable setup, or connecting external databases, refer to the Advanced Docker Setup Guide.
- To access Syncloop’s API endpoints directly, you can use any REST client (e.g., Postman) with base URL:
http://localhost:8080/api/
Run Docker Compose
You can deploy and manage multi-container applications defined in the compose file. Create a file called docker-compose.YAML and add the following content:
version: '2.1'
services:
syncloop:
image: nature9/syncloop
environment:
- LOGGING_FILE=/logs/server.log
ports:
- "8080:8080"
volumes:
- eka_vol:/eka
volumes:
eka_vol:api/
Environmental variables:
**LOGGING_FILE:** This sets the path where Syncloop will save its log file. By default, it's set to /logs/server.log.
Use the following command to run docker.
docker compose up
Workspace default credentials
The default username and password for the workspace are:
Username: admin \ Password: adminTroubleshooting Syncloop on Docker
Common Errors and Fixes
| Category | Error Message / Symptom | Possible Cause | Resolution / Fix |
|---|---|---|---|
| Image & Pull | pull access denied | Wrong image name or private image | Check image name (nature9/syncloop); run docker login if private |
| manifest not found | Image tag or architecture not available | Use correct tag (latest); specify --platform linux/amd64 if needed |
|
| rate limit exceeded | Docker Hub anonymous pull limits | Run docker login or wait until limit resets |
|
| Network/DNS timeout | Proxy/firewall restrictions | Configure Docker proxy; test with docker pull hello-world |
|
| Daemon / Runtime | Cannot connect to the Docker daemon | Docker not running or insufficient permissions | Start Docker; ensure user is in docker group |
| Container exits immediately | Missing configs or OOM | Check logs: docker logs <id>; adjust memory or env vars |
|
| Healthcheck fails repeatedly | App not ready or wrong port | Extend startup timeout; verify port mapping | |
| Ports / Networking | bind: address already in use | Port 8080 already occupied | Use alternate port: -p 9090:8080 |
| Site not reachable at http://localhost:8080 | Port mapping/firewall issue | Check docker ps; ensure 0.0.0.0:8080->8080 mapping |
|
| Browser 502 / 504 errors | Proxy misconfiguration | Confirm backend container listens on 8080 |
|
| Volumes / Filesystem | Permission denied on mounted volume | UID/GID mismatch or SELinux restriction | Chown host dir; use :Z for SELinux-enabled systems |
| no space left on device | Disk full | Run docker system prune -af; clear unused images/volumes |
|
| Read-only file system | Rootless mode or mount flags | Remove :ro flag; check Docker permissions |
|
| Environment / Config | Startup crash | Missing environment variables | Add vars via -e or in docker-compose.yml |
| CORS or auth error in browser | API origin not allowed | Update allowed origins in Syncloop config | |
| Locale/timezone mismatch | Missing timezone variable | Add -e TZ=Asia/Kolkata (or your timezone) |
|
| CPU / Architecture | exec format error | Mismatched CPU architecture | Use --platform linux/amd64 on ARM machines |
| WSL2 network unreachable | Port not exposed correctly | Update Docker Desktop; use 127.0.0.1 instead of localhost |
|
| Networking Inside Container | No internet access from container | DNS/proxy misconfig | Add --dns flag or configure proxy env vars |
| Security / Policy | permission denied or blocked downloads | Corporate firewall / endpoint security | Whitelist Docker; ensure outbound access to Docker Hub |
| SELinux/AppArmor denial | OS security constraints | Relax profile; use :Z on volume mount |
|
| Compose / YAML | version is unsupported | Old Docker Compose version | Update to Compose v3.8+ |
| mapping values not allowed | YAML syntax error | Validate file with yamllint |