Skip to content

doftmoon/opendbaas

Repository files navigation

OpenDBaaS

Opensource DataBase as a Service solution.

Architecture

  • Frontend: Flutter Web (Responsive, Role-based UI)
  • Backend: FastAPI (Async, SQLite, SQLAlchemy)
  • Infrastructure: Ansible, Docker, Vagrant (Debian 13 nodes)
  • Monitoring: Prometheus (Centralized, Dynamic Service Discovery)

Hardware Requirements & Constraints

This project is designed to run on machines with limited resources (e.g., laptops with 6GB RAM).

  • Vagrant Nodes: Reduced to 2 nodes (2GB and 1GB RAM) to stay within local memory limits.
  • Scheduling: The API automatically schedules database requests to the host with sufficient available RAM.

Components

Production-Like Stack (/client + /api + /prometheus)

Runs the API, Web client, and Monitoring stack.

  • Ports: 8080 (Web), 8000 (API), 9090 (Prometheus)
  • Setup:
    make prod

Development Workflow

Startup & Shutdown

  • Dev Mode: make dev (Both API & Web with hot-reload).
  • Individual: make dev-api or make dev-web.
  • Shutdown: make down (Gracefully stops Vagrant VMs and Docker containers).

Testing & Quality

Run the full suite or individual component checks:

  • Full Suite: make test
  • API Only: make test-api
  • Web Only: make test-client
  • Ansible Only: make test-ansible

State Management

  • Soft Reset: make reset (Clears database and re-seeds without destroying infrastructure).
  • Hard Reset: make reset-full (Nukes everything—VMs, Venvs, DBs—and rebuilds from scratch).

Components

API Server (/api)

The brain of OpenDBaaS, built with FastAPI.

  • Docs: http://localhost:8000/docs
  • Setup: Requires uv.
    cd api
    uv sync
    make seed
    make dev-api

Flutter Web Client (/client)

A responsive, role-based dashboard.

  • Setup: Requires Flutter SDK.
    cd client
    flutter pub get
    make dev-web

About

Opensource DataBase as a Service solution

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors