Install Observe
2 min read
Install Observe
Homebrew (macOS, Linux)
brew install useteploy/tap/observeDocker
git clone https://github.com/useteploy/teploy-observe.git
cd teploy-observe
docker compose upThe Compose file runs the published image. Open http://localhost:3000 —
the first visit lands on the setup wizard. There is no default password to
change later, because none is set until you choose one there.
Install script (Linux)
Downloads the installer from the latest release and verifies its SHA-256
against the release's checksums.txt before executing it:
(
set -e
curl -fsSLO https://github.com/useteploy/teploy-observe/releases/latest/download/install.sh
curl -fsSLO https://github.com/useteploy/teploy-observe/releases/latest/download/checksums.txt
grep " install.sh\$" checksums.txt > checksum.txt
if command -v sha256sum >/dev/null 2>&1; then sha256sum -c checksum.txt || exit 1; else shasum -a 256 -c checksum.txt || exit 1; fi
sh install.sh
)The script generates a random admin password and prints it on completion;
it is also stored in /etc/observe/observe.env and rotatable from
Settings → Users. The installer verifies the release through an
Ed25519-signed checksums.txt and fails closed if the signature or
archive hash is invalid.
Build from source
git clone https://github.com/useteploy/teploy-observe.git
cd teploy-observe
go build ./cmd/observe # neutron-go is vendored; no network setupYou also need a Nucleus database binary — see the Docker compose file for the exact image and version.
Upgrade
Use the manager that installed Observe:
# Direct Linux/systemd install
sudo observe upgrade
sudo observe upgrade --version v1.2.3
# Homebrew
brew upgrade useteploy/tap/observe
# Docker Compose
docker compose pull && docker compose up -d
# Pin a release with OBSERVE_VERSION=1.2.3The direct updater stages the release while the current server stays online, stops Observe gracefully, atomically replaces the binary, and requires three healthy responses from the exact new version. A failed start or readiness check restores and restarts the previous version automatically. There is a brief restart window; telemetry senders should keep their normal retry policy.