Manual install
Run VyManager from source without Docker. You need Python 3.11+, Node.js 24 and PostgreSQL 16 on the host.
PostgreSQL
Create a database and user:
CREATE USER vymanager WITH PASSWORD 'your-db-password';
CREATE DATABASE vymanager OWNER vymanager;
Backend
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Create backend/.env (the backend loads it automatically on startup):
DATABASE_URL=postgresql://vymanager:your-db-password@localhost:5432/vymanager
FRONTEND_URL=http://localhost:3000
BETTER_AUTH_SECRET=same-secret-as-frontend
SSH_ENCRYPTION_KEY=64-hex-chars-from-openssl-rand-hex-32
TRUSTED_ORIGINS=http://localhost:3000
BETTER_AUTH_SECRET must be the same value as in the frontend environment — the backend uses it to verify the session cookies the frontend issues. When backend and frontend run on separate hosts, also set FRONTEND_INTERNAL_URL to a URL the backend can reach the frontend on (defaults to http://frontend:3000, which only works inside Docker).
Start the backend:
uvicorn app:app --host 0.0.0.0 --port 8000 --proxy-headers
Interactive API documentation is served at http://localhost:8000/docs.
Frontend
cd frontend
npm install
Create frontend/.env:
NODE_ENV=production
BETTER_AUTH_SECRET=same-secret-as-backend
BETTER_AUTH_URL=http://localhost:3000
NEXT_PUBLIC_APP_URL=http://localhost:3000
BACKEND_URL=http://localhost:8000
TRUSTED_ORIGINS=http://localhost:3000
DATABASE_URL=postgresql://vymanager:your-db-password@localhost:5432/vymanager
Generate the Prisma client, apply the migrations, build and start:
npx prisma generate
npx prisma migrate deploy
npm run build
npm start
For development, use npm run dev instead of build/start to get hot reload.
Open http://localhost:3000 and continue with First run.