Skip to main content

Docker

Tharsis provides Docker Compose files for running the full platform locally. These are meant for development and testing purposes only.

Have a question?

Check the FAQ to see if there's already an answer.

Docker Compose​

Two Docker Compose configurations are available depending on your needs:

Default (docker-compose.yml)​

A minimal setup with built-in authentication — no external identity provider required. This is the quickest way to get started.

ServiceContainer namePurpose
postgrestharsis-dbDatabase for the Tharsis API
tharsistharsisUnified Tharsis API + UI

Full stack (docker-compose-full-stack.yml)​

Includes all services from the default setup plus additional services for a more complete development environment.

ServiceContainer namePurpose
postgrestharsis-dbDatabase for the Tharsis API
kc_postgreskeycloak-dbDatabase for Keycloak IDP
keycloaktharsis-idpExternal identity provider for authentication
miniotharsis-storeS3-compatible object storage
minioconsoletharsis-mcConfigures the Minio bucket
jaegertharsis-jaegerDistributed tracing UI
tharsistharsisUnified Tharsis API + UI
not for production use!

Tharsis Docker Compose should not be used in production or be exposed to the internet.

Usage guide​

Either clone the Tharsis API repository or download the contents of the docker-compose directory.

Default setup​

Start Tharsis with the default Docker Compose
git clone https://gitlab.com/infor-cloud/martian-cloud/tharsis/tharsis-api.git
cd tharsis-api/docker-compose
docker compose up -d

Once all services have started, visit the UI at http://localhost:6560. A default admin user is created with the credentials configured in the environment variables.

Full stack setup​

Start Tharsis with the full stack Docker Compose
git clone https://gitlab.com/infor-cloud/martian-cloud/tharsis/tharsis-api.git
cd tharsis-api/docker-compose
docker compose -f docker-compose-full-stack.yml up -d

Once all services have started, visit the UI at http://localhost:6560, which will redirect to Keycloak for authentication. A default user is already created with the username and password martian.

Additional services are available at:

  • Jaeger UI: http://localhost:16686
  • Minio Console: http://localhost:9010
note

The Tharsis API may take some time starting up as it waits for other services to be in a functioning state.

All-in-one Docker image​

For an even simpler setup, the Tharsis all-in-one Docker image bundles Tharsis, PostgreSQL, Minio, and Keycloak into a single container managed by Supervisord. This is useful for quick demos, testing, and CI/CD applications.

Run the all-in-one image
docker run -p 8000:8000 -p 8080:8080 registry.gitlab.com/infor-cloud/martian-cloud/tharsis/tharsis-all-in-one-docker

The Tharsis API is available at http://localhost:8000 and Keycloak at http://localhost:8080. A default admin user with username martian and password martian is created automatically.

What about GitHub Actions?

See this example for using the all-in-one image in CI.

Frequently asked questions (FAQ)​

Can I create Terraform runs with a local Docker Compose instance?​

Yes! The Docker Compose includes all the service dependencies for applying Terraform modules and managing states with Tharsis. The database stores all resource information and Minio stores the objects (Terraform modules).