Skip to content

Repositories

GreenThumb's code lives in the GreenThumbProject GitHub organization. Two superprojects pull the individual repositories in as git submodules: rasp5 for the Raspberry Pi node and greenthumb-cloud for the cloud backend. All repositories are private except docs (this site) and .github (the organization profile).

Repository Structure

graph TB
    RASP5[rasp5]
    CLOUD[greenthumb-cloud]
    MODELS[greenthumb-models]
    DB[database]

    RASP5 --> API[microcontroller-api]
    RASP5 --> CLIENT[microcontroller-api-client]
    RASP5 --> RPI5[greenthumb-rpi5]
    RASP5 --> LDASH[local-dashboard]
    RASP5 --> MODELS

    CLOUD --> GAPI[greenthumb-api]
    CLOUD --> GW[gateway]
    CLOUD --> AUTH[auth]
    CLOUD --> AUTHS[auth-service]
    CLOUD --> ACC[account]
    CLOUD --> ACCS[account-service]
    CLOUD --> ADM[admin-dashboard]
    CLOUD --> LAND[landing-page]
    CLOUD --> MODELS

    DB -.->|"schema-sync copies"| RASP5
    DB -.->|"schema-sync copies"| CLOUD

Solid arrows are submodules. greenthumb-models is a submodule of both superprojects. The database repository is not a submodule: its schema is copied into each superproject.

Edge (Raspberry Pi node)

Repository Role
rasp5 Superproject for the Pi node: Docker Compose stack and its 5 submodules
microcontroller-api FastAPI service on the Pi (:8080): hardware control, local data, settings
microcontroller-api-client The controller: Sense-Think-Act loop over the Pi API
greenthumb-rpi5 Hardware drivers and the DeviceManager
local-dashboard React dashboard served on the node

Cloud

Repository Role
greenthumb-cloud Superproject for the cloud backend: Docker Compose stack and its 9 submodules
greenthumb-api FastAPI service: admin API and Pi sync endpoints
gateway Spring Cloud Gateway, the backend's single entry point
auth + auth-service JWT login and validation (library + Spring Boot service)
account + account-service User accounts (library + Spring Boot service)
admin-dashboard React admin dashboard
landing-page React landing site

Shared

Repository Role
greenthumb-models Python package greenthumb: SQLModel tables, sync schemas, shared helpers; used by the Pi API and the cloud API
database SQL source of truth: schemas, seeds and dated SQL migrations

Other

Repository Role
peripheral-drivers-dev Notebooks for testing peripheral drivers on real hardware
research Research materials (private)
docs This documentation site (public)
.github Organization profile (public)

Archived

greenthumb-core (the former shared library, no longer used) and legacy.