Overview
The Gantt Sync server is a high-performance, standalone binary that facilitates real-time synchronization between clients. It uses a Hybrid Logical Clock (HLC) and Conflict-free Replicated Data Types (CRDTs) to ensure strong eventual consistency across unreliable networks.
Unlike SaaS-based Gantt solutions, Gantt Sync never "phones home." Your data stays within your perimeter, satisfying strict data sovereignty requirements.
Accessing the Software
We offer two editions of the Gantt Sync server to meet different needs.
Community Edition (Free Tier)
For evaluation, development, and non-critical workloads, we provide a Reference Server implementation.
- Open Source: A minimal server written in Go/Rust that implements the core sync protocol.
- Ideal for Evaluation: Spin it up in minutes to prove the concept works with your app.
- Limitless Clients: Connect as many clients as you want—limitations are purely performance-based.
- One-Line Upgrade: When you're ready for production, simply swap the Docker image for the Enterprise version. The client code is identical.
Access the Reference Server on GitHub
Enterprise Edition (Commercial)
The Enterprise Edition is a high-performance, hardened binary designed for mission-critical deployments. It includes:
- Merkle Tree Optimizations: For efficient, bandwidth-saving syncs.
- High-Performance JSON Isolates: Processes massive datasets without blocking.
- Active Security: built-in role-based access control and audit logging.
- Support: Direct access to our engineering team.
Enterprise License Required
The Gantt Sync Enterprise server is proprietary software.
You must have a valid Enterprise License to access the Docker image.
Installation via Secure Delivery
Because our software is designed for critical, often air-gapped environments, we distribute the server image directly as a secure archive bundle.
- Download the provided
.tar.gzarchive from your secure delivery link. - Load the image directly into your Docker daemon:
docker load -i gantt_server_5.0.0.tar.gz
- Verify the image is available:
docker images | grep gantt_server
Not ready for Enterprise?
You can still use our popular legacy_gantt_chart Flutter package completely free with your own backend!
Check out the Quickstart Guide on pub.dev to get integration instructions.
Running the Server
To run the server, you need to provide the necessary configuration via environment variables.
docker run -d \
-p 8080:8080 \
-e JWT_SECRET="your-256-bit-secret" \
-e SOLVER_API_KEY="your-solver-key" \
-e DB_HOST="postgres" \
-e DB_USER="gantt_user" \
-e DB_PASS="secure_password" \
-e REDIS_HOST="redis" \
registry.gantt-sync.com/gantt-sync:latest
Configuration
The server is configured entirely through environment variables.
| Variable | Required | Default | Description |
|---|---|---|---|
JWT_SECRET | ✅ | - | Secret key used for signing and verifying JWT tokens. |
SOLVER_API_KEY | ✅ | - | API key for the linear programming solver service. |
DB_HOST | - | localhost | Hostname of the PostgreSQL database. |
DB_PORT | - | 5432 | Port of the PostgreSQL database. |
DB_NAME | - | legacy_gantt | Name of the database to connect to. |
DB_USER | ✅ | - | Database username. |
DB_PASS | ✅ | - | Database password. |
REDIS_HOST | - | localhost | Hostname of the Redis message bus. |
REDIS_PORT | - | 6379 | Port of the Redis message bus. |
LEGACY_GANTT_SYNC_PORT | - | 8080 | Port the server will listen on. |
SUPERUSER_USERNAME | ✅ | - | Username for the initial superuser account. |
SUPERUSER_PASSWORD | ✅ | - | Password for the initial superuser account. |
Note: Initial superuser credentials are recommended for bootstrap only. We suggest migrating to an external OIDC/SAML provider for production environments.
Health Check
The server exposes a health check endpoint at /health which returns 200 OK if the server is running.
curl http://localhost:8080/health