Installation
The deployment includes a Mongo database, a server and different apps for managing forms, 2D graphics, 3D graphics and agentic AI. The components are installed using a single docker compose file.
mkdir spacetime
cd spacetime
curl -O https://raw.githubusercontent.com/axxem/spacetime/main/docker/spacetime/docker-compose.yml
docker compose up -d
Now open a browser and connect to the portal app, exposed at port 3000. Click on Registration to create a new user.
http://localhost:3000
Configuration
By default, the lastest release is installed. If you want to install another release create a .env file in the spacetime directory with a different image tag:
IMAGE_TAG = 1.4.0
If you want to use the agentic capabilities define one of the following variables and set the variable LLM to the model you want to use.
COHERE_API_KEY = <API KEY>
GEMINI_API_KEY = <API KEY>
GROQ_API_KEY = <API KEY>
ANTHROPIC_API_KEY = <API KEY>
LLM=cohere
After making changes to the .env file redeploy the containers.
docker compose up -d
TLS
External access via TLS can be implemented with Traefik. The SSL certificates for the services are automatically created and maintained with Letsencrypt. Create a separate directory traefik next to spacetime and download the docker compose file.
mkdir traefik
cd traefik
curl -O https://raw.githubusercontent.com/axxem/spacetime/main/docker/traefik/docker-compose.yml
Specify your domain name in .env:
EMAIL = info@mydomain.com
DOMAIN = mydomain.com
Deploy the service:
docker compose up -d
The certificates will be created and stored in a letsencrypt subdirectory. This may take some time.
Connect using the domain name without ports.
https://portal.mydomain.com
Troubleshooting
Check that the containers are deployed.
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3bac641d4af7 spacetimehub/server:latest "docker-entrypoint.s…" 51 seconds ago Up 27 seconds 0.0.0.0:8010->80/tcp, :::8010->80/tcp server
ae0b280e8614 spacetimehub/forms:latest "docker-entrypoint.s…" 51 seconds ago Up 30 seconds 0.0.0.0:3002->80/tcp, :::3002->80/tcp forms
c60b655be713 spacetimehub/portal:latest "docker-entrypoint.s…" 51 seconds ago Up 29 seconds 0.0.0.0:3000->80/tcp, :::3000->80/tcp portal
c6ca9215f716 mongo:4.4 "docker-entrypoint.s…" 51 seconds ago Up 29 seconds 27017/tcp mongo
a5f490653b2a spacetimehub/agent:latest "/usr/local/bin/dock…" 51 seconds ago Up 29 seconds 0.0.0.0:8030->8030/tcp, :::8030->8030/tcp agent
67f29d072219 spacetimehub/modeler:latest "docker-entrypoint.s…" 51 seconds ago Up 29 seconds 0.0.0.0:3005->80/tcp, :::3005->80/tcp modeler
a8fdc15723d9 spacetimehub/draw:latest "docker-entrypoint.s…" 51 seconds ago Up 29 seconds 0.0.0.0:3006->80/tcp, :::3006->80/tcp draw
941d76a999a5 qdrant/qdrant:latest "./entrypoint.sh" 51 seconds ago Up 30 seconds 6333-6334/tcp qdrant
Most common issues is that the server can not connect to the mongo database or traefik can not create the letsencrypt certificates. You can check for error messages in the log files.
docker logs server
docker logs traefik