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.
Before running Syncloop on Docker, ensure the following
Syncloop provides two Docker image variants:
| Version | Docker Repository | Description |
| Enterprise Edition | nature9/syncloop | Full-featured enterprise version with advanced capabilities. |
Execute the following command in your terminal or command prompt:
docker run -d -p 8080:8080 -p 80:80 nature9/syncloop
| -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 |
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 WEB_PORT=8080 \
-e SECURE_SERVER_PORT=8443 \
-p 80:80 -p 443:443 -p 8080:8080 \
nature9/syncloop
After running the command, verify that the container is active:
docker ps
You should see a running container with the image name **nature9/syncloop**
Once the container is up and running:
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
docker ps
docker stop
docker start
docker rm
http://localhost:8080/api/
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
WEB_PORT=80
SERVER_PORT=8080
SECURE_SERVER_PORT=8443
ports:
"8080:8080"
"8443:8443"
"80:80"
volumes:
eka_vol:/eka
volumes:
eka_vol:api/
**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
The default username and password for the workspace are:
Username: admin \ Password: admin| 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 |