Join the Timebase Public Beta

Be among the first to bring Historian, Atlas, and Bridge together in your own environment. Explore the platform, build your first knowledge model, and help shape Timebase with your feedback.

STEP 1

Create Your Timebase Portal Account

Register to access your software and manage your Timebase licenses.

STEP 2

Choose Your Desired Platform

imebase runs on Windows or Linux/Docker, on your own infrastructure.

Download Windows Installer

Pull the Docker Image

STEP 3

Link Your Timebase Pulse Instance

Return to Timebase Portal and follow the instructions to link your running Timebase Pulse instance and register your Forever Free license.

System requirements

Hardware and software recommendations

Before setting up your Timebase instance, it’s important to ensure your system meets the necessary requirements for optimal performance.

DOCKER IMAGES

Have your AI agent deploy and configure

Point your AI agent at the Docker Setup Guide and Agent Runbook below.

With access to your Docker environment, your AI agent can check prerequisites, pull the latest Timebase images, start the platform, and work through security configuration, verifying each stage as it goes.

You stay involved where it matters. The Runbook tells your agent when to pause for credentials, account setup, and steps requiring administrator access.

PROMPT

Help me deploy Timebase on Docker. Read Timebase's documentation for Docker Setup at https://flow-software.github.io/Timebase-Docs/#40-timebase-2-0-docker-agent-runbook then follow and execute the documentation. Check my environment, select the current release supported across all components, and verify each phase. Pause wherever the Runbook requires my input.

Manually pull your images

Copy and paste the two Bash commands below into your terminal, in order.

The first checks Docker Hub for the newest Timebase 2.0 Beta release available across all seven components and saves that version in a .env file.

Run this version check each time you deploy.

If you prefer to pull the images manually, you may do so at https://hub.docker.com/u/timebase but ensure that you are pulling the lastest RC (tagged 2.0-rc##) for each of the 7 Timebase components; Atlas, Bridge, Collector, Connect (formally Connector), Explorer, Historian, and Pulse.

BASH

cd ./timebase && python3 - <<'PY'
import json, re, urllib.request
REPOS = ["pulse", "historian", "explorer", "atlas", "connector", "bridge", "collector"]
rc = re.compile(r"^2\.0-rc(\d+)$")def rc_tags(repo):
   url = "https://hub.docker.com/v2/repositories/timebase/%s/tags/?page_size=100" % repo
   with urllib.request.urlopen(url, timeout=20) as f:
       return {t["name"] for t in json.load(f).get("results", []) if rc.match(t["name"])}found = {r: rc_tags(r) for r in REPOS}
for r in REPOS:
   if not found[r]:
       raise SystemExit("no 2.0-rc tag found for timebase/%s - stop and report this" % r)
common = set.intersection(*found.values())
if not common:
   raise SystemExit("no 2.0-rc tag is common to all seven images - stop and report this")
newest = max(common, key=lambda t: int(rc.match(t).group(1)))
open(".env", "w").write("TIMEBASE_TAG=%s\n" % newest)
print("newest release candidate common to all seven:", newest)
for r in REPOS:
   behind = sorted(found[r], key=lambda t: int(rc.match(t).group(1)))[-1]
   if behind != newest:
       print("  note: timebase/%s newest is %s" % (r, behind))
PY

This second command creates your Docker Compose YAML file, using the version result from the previous command to keep every component on the same release.

BASH

cd ./timebase && python3 - <<'PY'
import json, re, urllib.request
REPOS = ["pulse", "historian", "explorer", "atlas", "connector", "bridge", "collector"]
rc = re.compile(r"^2\.0-rc(\d+)$")def rc_tags(repo):
   url = "https://hub.docker.com/v2/repositories/timebase/%s/tags/?page_size=100" % repo
   with urllib.request.urlopen(url, timeout=20) as f:
       return {t["name"] for t in json.load(f).get("results", []) if rc.match(t["name"])}found = {r: rc_tags(r) for r in REPOS}
for r in REPOS:
   if not found[r]:
       raise SystemExit("no 2.0-rc tag found for timebase/%s - stop and report this" % r)
common = set.intersection(*found.values())
if not common:
   raise SystemExit("no 2.0-rc tag is common to all seven images - stop and report this")
newest = max(common, key=lambda t: int(rc.match(t).group(1)))
open(".env", "w").write("TIMEBASE_TAG=%s\n" % newest)
print("newest release candidate common to all seven:", newest)
for r in REPOS:
   behind = sorted(found[r], key=lambda t: int(rc.match(t).group(1)))[-1]
   if behind != newest:
       print("  note: timebase/%s newest is %s" % (r, behind))
PY