GraphQL API backend for Infinibay, a virtualization management platform designed for simplicity.
This repository contains the backend API server for Infinibay. It provides a GraphQL interface for managing virtual machines, networks, storage, and user authentication through libvirt.
Important: This is a component of the Infinibay system and is not intended to be installed standalone. The backend runs as part of a containerized infrastructure orchestrated by LXD.
- Runtime: Node.js 18+
- API: Apollo Server 4 (GraphQL)
- Database: PostgreSQL (via Prisma 6)
- Virtualization: Native libvirt bindings (Rust/NAPI-RS via
@infinibay/libvirt-node) - Real-time: Socket.io for WebSocket events
Infinibay backend is deployed automatically as part of the complete system. Choose your installation method:
Use the automated installer for Ubuntu 22.04+ systems:
git clone https://github.com/Infinibay/installer
cd installer
./setup.shSee the installer repository for full documentation.
For simplified deployment using LXD containers:
git clone https://github.com/Infinibay/lxd
cd lxd
sudo ./setup.sh
./run.shSee the lxd repository for LXD-based deployment and usage.
For developers contributing to the backend:
- Node.js 18+
- PostgreSQL 14+
- libvirt with qemu/kvm
npm install
cp .env.example .env
# Edit .env with your database credentials
# Run migrations
npm run db:migrate
# Seed database
npm run db:seed
# Start development server
npm run devnpm run dev- Start development server with hot reloadnpm run db:migrate- Run Prisma migrationsnpm run db:seed- Seed database with initial datanpm test- Run test suitenpm run cleanup:nwfilters- Clean orphaned network filters
See backend/CLAUDE.md for architecture details and development patterns.
The API is available at http://localhost:4000/graphql when running.
- Schema: app/schema.graphql
- Resolvers: app/graphql/resolvers/
- Services: app/services/
[Your License]