This guide walks you through setting up Ryva’s development environment on your local machine.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/egeuysall/ryva-archive/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before you begin, ensure you have the following installed:- Node.js 25.1.0 or higher
- pnpm 10.20.0 or higher
- Go 1.25.3 or higher
- Air (Go hot reload tool)
- Docker and Docker Compose
- pre-commit framework
- Git
Installing Prerequisites
Install Node.js and pnpm
Install Node.js and pnpm
Install Go
Install Go
Install Air (Go Hot Reload)
Install Air (Go Hot Reload)
Install Docker
Install Docker
Install pre-commit
Install pre-commit
Setup Methods
Ryva offers two setup methods: automated (recommended) and manual.Automated Setup (Recommended)
Run automated setup
The
--auto flag runs setup without prompts, which is useful for CI/CD environments.What the setup script does
The automated setup will:
- ✅ Verify all prerequisites (Node.js, Go, pnpm, Docker, etc.)
- ✅ Check project structure integrity
- ✅ Create
.envfiles from examples - ✅ Install dependencies (frontend + backend)
- ✅ Set up git hooks (pre-commit, pre-push, commit-msg)
- ✅ Optionally run build verification tests
- ✅ Provide a summary and quick reference guide
Configure environment variables
Edit the generated See Environment Variables for detailed configuration.
.env files with your credentials:Manual Setup
Install dependencies
- Frontend dependencies via
pnpm installinapps/web - Go modules via
go mod downloadinapps/api
Set up git hooks
pre-commithook for code quality checkspre-pushhook for validation before pushingcommit-msghook for Conventional Commits enforcement
Configure environment variables
Edit each Web Configuration (See Environment Variables for complete reference.
.env file with your credentials:API Configuration (apps/api/.env):apps/web/.env):Starting Development
Access the application
Once the servers are running, you can access:
- Frontend: http://localhost:3000
- API: http://localhost:8080
- API Health Check: http://localhost:8080/health
Development Commands
Root Makefile Commands
The rootMakefile provides orchestration across both frontend and backend:
Frontend Commands
In theapps/web directory:
Backend Commands
In theapps/api directory:
Pre-commit Commands
Hot Reload Configuration
Ryva uses different hot reload mechanisms for frontend and backend:Frontend (Next.js)
Next.js includes built-in Fast Refresh:- Automatically reloads on file changes
- Preserves component state when possible
- Shows errors in browser overlay
Backend (Air)
Air provides Go hot reloading with configuration inapps/api/.air.toml:
- Rebuilds on
.go,.sql, and template file changes - 1-second delay to batch rapid changes
- Excludes test files and vendor directories
- Logs build errors to
build-errors.log
Troubleshooting
Port already in use
Port already in use
If you see errors about ports 3000 or 8080 being in use:
Database connection errors
Database connection errors
Ensure your If migrations fail, verify:
DATABASE_URL in apps/api/.env is correct:- Supabase project is active
- Database URL includes connection pooling parameters
- Service role key has necessary permissions
Air not found
Air not found
If
make dev-api fails with “air: command not found”:Pre-commit hooks failing
Pre-commit hooks failing
If pre-commit hooks are blocking commits:
pnpm install fails
pnpm install fails
If frontend dependencies fail to install:
Next Steps
Database Migrations
Learn how to create and manage database migrations
Environment Variables
Complete reference for all configuration options
Deployment Guide
Deploy Ryva to production with Docker
Testing
Run and write tests for your code