Self-host Verdyn

Verdyn is open source. The whole product — the agronomy engine, the web app, the automated executor, and the MCP server — runs from one repo you control. Your controller credentials never touch anyone else's infrastructure.

Quick start

git clone https://github.com/jasonbdiaz/verdyn
cd verdyn && npm install
cp web/.env.example web/.env.local   # fill in what you need
npm run dev -w @verdyn/web           # http://localhost:3000

No database? Everything still works in-browser with a local profile — persistence, accounts, unattended execution and the MCP endpoint activate when you add one.

Environment

DATABASE_URLPostgres (Neon works great). Optional — the engine runs without it; persistence, auth and automation need it.
VERDYN_SESSION_SECRET32+ chars. Seals session cookies (AES-256-GCM).
CRON_SECRETBearer token protecting the /api/cron/run executor.
RESEND_API_KEY / EMAIL_FROMOptional — magic-link sign-in emails (console-logged without it).
NEXT_PUBLIC_BASE_URLPublic origin, used in agent-connector URLs.

Apply the schema with DATABASE_URL=… node web/scripts/migrate.mjs. For unattended watering, schedule /api/cron/run every 15 minutes (Vercel crons, GitHub Actions, or any scheduler) with the CRON_SECRET bearer header.

Safety model

The executor enforces defense-in-depth server-side: watering windows are hard-gated at the moment a valve would open, live weather is re-checked (wind + observed rain), every run is idempotently ledgered, and controller credentials are used once to mint a session token — never stored. Read SECURITY.md before pointing it at a real controller.

The other tiers

Don't want to run servers? The hosted Expert tier is the same code with the ops handled — sign up, connect your controller, optionally wire your AI agent via MCP.