Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ Single binary. Production-tested. Agents that orchestrate for you.
<a href="https://go.dev/"><img src="https://img.shields.io/badge/Go_1.26-00ADD8?style=flat-square&logo=go&logoColor=white" alt="Go" /></a>
<a href="https://www.postgresql.org/"><img src="https://img.shields.io/badge/PostgreSQL_18-316192?style=flat-square&logo=postgresql&logoColor=white" alt="PostgreSQL" /></a>
<a href="https://www.docker.com/"><img src="https://img.shields.io/badge/Docker-2496ED?style=flat-square&logo=docker&logoColor=white" alt="Docker" /></a>
<a href="https://render.com/deploy?repo=https://github.com/ojusave/goclaw&branch=dev"><img src="https://img.shields.io/badge/Render-5C31FF?style=flat-square&logo=render&logoColor=white" alt="Render" /></a>
<a href="https://developer.mozilla.org/en-US/docs/Web/API/WebSocket"><img src="https://img.shields.io/badge/WebSocket-010101?style=flat-square&logo=socket.io&logoColor=white" alt="WebSocket" /></a>
<a href="https://opentelemetry.io/"><img src="https://img.shields.io/badge/OpenTelemetry-000000?style=flat-square&logo=opentelemetry&logoColor=white" alt="OpenTelemetry" /></a>
<a href="https://www.anthropic.com/"><img src="https://img.shields.io/badge/Anthropic-191919?style=flat-square&logo=anthropic&logoColor=white" alt="Anthropic" /></a>
Expand Down Expand Up @@ -142,6 +143,10 @@ git tag lite-v0.1.0 && git push origin lite-v0.1.0
<img src="_statics/Mode Prompt System.jpg" alt="4-Mode Prompt System" width="800" />
</p>

## Deploy on Render

[`render.yaml`](render.yaml) deploys GoClaw on Render (Postgres 18 + pgvector, Standard plan, persistent disk). Use the **Render** badge in the badge row (after Docker) or apply the Blueprint from the repo root. No LLM keys required at Apply: add a provider in the dashboard after deploy. Copy `GOCLAW_GATEWAY_TOKEN` from the Render Dashboard to sign in.

## Quick Start

**Prerequisites:** Go 1.26+, PostgreSQL 18 with pgvector, Docker (optional)
Expand Down
70 changes: 70 additions & 0 deletions render.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# yaml-language-server: $schema=https://render.com/schema/render.yaml.json
#
# GoClaw on Render — Blueprint for https://github.com/ojusave/goclaw
# Upstream: https://github.com/nextlevelbuilder/goclaw
# Template docs: https://github.com/ojusave/goclaw/blob/dev/render.yaml
#
# Pattern: image-wrapper (official ghcr.io image with embedded web UI + Python).
#
# Port contract: GoClaw binds GOCLAW_HOST + GOCLAW_PORT (not Render's PORT).
# Render web services default to port 10000 — set GOCLAW_PORT=10000 explicitly.
# Do NOT use dockerCommand shell wrappers here; Render image services pass the
# full string as a single argv and startup fails with exit 127.
#
# Database: migrations run on boot (docker-entrypoint.sh → goclaw upgrade) and
# create pgvector/pgcrypto extensions. Do NOT use initialDeployHook with psql —
# the upstream image does not ship a PostgreSQL client.
#
# LLM provider keys are NOT listed in this Blueprint (avoids empty required fields
# at Apply time). Add GOCLAW_*_API_KEY vars in the Dashboard after deploy.

previews:
generation: off

projects:
- name: goclaw
environments:
- name: production
services:
- type: web
name: goclaw
runtime: image
plan: standard
region: oregon
image:
url: ghcr.io/nextlevelbuilder/goclaw:v3.12.0
healthCheckPath: /health
maxShutdownDelaySeconds: 120
disk:
name: goclaw-data
mountPath: /app/data
sizeGB: 10
envVars:
- key: GOCLAW_HOST
value: "0.0.0.0"
- key: GOCLAW_PORT
value: "10000"
- key: GOCLAW_CONFIG
value: /app/data/config.json
- key: GOCLAW_DATA_DIR
value: /app/data
- key: GOCLAW_WORKSPACE
value: /app/data/workspace
- key: GOCLAW_SKILLS_DIR
value: /app/data/skills
- key: GOCLAW_GATEWAY_TOKEN
generateValue: true
- key: GOCLAW_ENCRYPTION_KEY
generateValue: true
- key: GOCLAW_POSTGRES_DSN
fromDatabase:
name: goclaw-db
property: connectionString

databases:
- name: goclaw-db
plan: basic-256mb
region: oregon
databaseName: goclaw
postgresMajorVersion: "18"
ipAllowList: []