Flow Metrics

ShipCast

Forecast delivery dates with confidence. Make promises you can keep.

ShipCast is a self-hosted forecasting and analytics service that brings Monte Carlo simulations to your delivery pipeline. Stop guessing when work will be done. Start showing stakeholders probabilistic forecasts backed by your team’s actual performance data.


Why ShipCast?


Quick Start

cd shipcast

2. Configure Environment

cp .env.example .env

Edit .env and set:

3. Start Services

Linux/macOS:

./run_shipcast.sh

Windows:

run_shipcast.cmd

The script will authenticate with the container registry, pull the latest images, and start all services.

4. Access the Application

Open your browser to: http://localhost:3456

(Or the port you configured in FRONTEND_PORT)


Commands

Use ./run_shipcast.sh on Linux/macOS or run_shipcast.cmd on Windows.

Command Description
(default) Start all services
up Start all services
down Stop all services
restart Restart all services
status Show service status
logs View logs (follow mode)
pull Pull latest images
clean Stop and remove all data

Architecture

                    +------------------+
    Port 3456 ----> |    Frontend      | (nginx)
                    |  /api/* proxy    |
                    +--------+---------+
                             |
                    +--------v---------+
                    |       API        | (Rust)
                    +--------+---------+
                             |
                    +--------v---------+
                    |    PostgreSQL    |
                    +------------------+

Only the frontend port is exposed to the host. All internal communication happens on an isolated Docker network.


Configuration Reference

Variable Default Description
ACCESS_TOKEN (required) GitLab registry access token
POSTGRES_USER postgres Database username
POSTGRES_PASSWORD (required) Database password
POSTGRES_DB shipcast Database name
FRONTEND_PORT 3456 Port to access the web UI
IMAGE_TAG latest Version tag for container images
RUST_LOG info API log level (error/warn/info/debug/trace)
CONTAINER_RUNTIME auto-detect Force docker or podman

Data Persistence

Database data is stored in a Docker volume named fmb-shipcast-db-data. This persists across container restarts.

To completely reset the database:

./run_shipcast.sh clean

Warning: This permanently deletes all data.


Updating

To update to the latest version:

./run_shipcast.sh restart

Or to update to a specific version, set IMAGE_TAG in .env:

IMAGE_TAG=1.2.0

Then restart the services.


Troubleshooting

Issue Solution
Cannot pull images Verify ACCESS_TOKEN in .env has read_registry scope
Services not starting Check Docker is running with docker info, then view logs with ./run_shipcast.sh logs
Port already in use Change FRONTEND_PORT in .env to an available port
Database connection issues Ensure database container is healthy with ./run_shipcast.sh status

For manual registry login troubleshooting:

docker login registry.gitlab.com