Compose, scripts, and systemd units for self-hosting Grid.
Guides: grid-docs / docs/install
| File | Purpose |
|---|---|
install.sh |
Ubuntu installer — set GRID_REF to the tag you want (Compose by default; GRID_USE_NATIVE=1 for systemd + nginx) |
releases.json |
Published releases index |
docker-compose.yml |
Build core and ui from source |
docker-compose.release.yml |
Run GHCR images (current / lts / exact version) |
verify.sh |
Smoke-check /health and the UI |
check-env.sh |
Hard-fail if install/.env is incomplete (no override) |
compose-up.sh |
Production entry: check-env.sh then Compose up |
.env.example |
Auth, GitOps, module bank v0.1.0, remote state (required) |
systemd/grid-compose.service |
Start Compose on boot |
systemd/grid-core.service |
Native API unit |
systemd/grid-ui.service |
Optional native UI unit |
nginx-host.conf |
Native reverse proxy |
monitoring/ |
systemd Prometheus + Alloy (not Compose) — survives Grid stop/down |
../Dockerfile |
Core image (CLI + Terraform) |
Remote state before apply: remote-state.md.
Channels and tags: releases.md.
git clone https://github.com/gridplatform/grid-core.git
cd grid-core
cp install/.env.example install/.envFill all required fields (auth, GitOps, GRID_MODULE_BANK_REF=v0.1.0, GRID_TF_BACKEND + bucket/lock). Compose is production-only — no dev profile:
bash install/compose-up.sh # check-env + up -d --build
# bash install/compose-up.sh release
bash install/verify.shUse detached mode (-d). For reboot persistence:
sudo systemctl enable --now docker
sudo cp install/systemd/grid-compose.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now grid-composeAdjust WorkingDirectory in the unit if the repo is not under /opt/grid/grid-core.
export GRID_AUTH_ADMIN_PASSWORD='choose-a-strong-password'
curl -fsSL https://raw.githubusercontent.com/gridplatform/grid-core/main/install/install.sh | sudo -E bashNative (no Docker):
export GRID_USE_NATIVE=1 GRID_AUTH_ADMIN_PASSWORD='…'
curl -fsSL https://raw.githubusercontent.com/gridplatform/grid-core/main/install/install.sh | sudo -E bash