MCPcopy Index your code
hub / github.com/QC-Labs/orange-lab

github.com/QC-Labs/orange-lab @v0.5.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.5.0 ↗ · + Follow
317 symbols 782 edges 52 files 10 documented · 3%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

OrangeLab

Ask DeepWiki

Private infrastructure for cloud natives.

OrangeLab logo

Core components

  • Pulumi (https://www.pulumi.com/) - configuration management, deployments and infrastructure as code
  • Tailscale (https://tailscale.com/) - end-to-end encrypted communication between nodes
  • K3s (https://k3s.io/) - lightweight Kubernetes cluster
  • Longhorn (https://longhorn.io/) - distributed storage

Principles and goals

  • decentralized - uses your physical machines potentially spread out over geographical locations, minimise dependency on external services and cloud providers
  • private by default - uses Tailscale/WireGuard for end to end encrypted communication, making services public has to be explicitly defined
  • OSS - only open source components that can be run locally
  • automation - use Pulumi and Helm to automate most tasks and configuration
  • easy to use - no deep Kubernetes knowledge required, sensible defaults
  • offline mode - continue working (with some limitations) over local network when internet connection lost
  • lightweight - can be run on a single laptop using default configuration, focus on consumer hardware
  • scalable - distribute workloads across multiple machines as they become available, optional use of cloud instances
  • self-healing - in case of problems, the system should recover with minimal user intervention
  • immutable - no snowflakes, as long as there is at least one Longhorn replica available, components can be destroyed and easily recreated
  • simple disaster recovery - all you need to recreate the system from scratch is Longhorn backups and Pulumi config

Applications

System module:

Data module:

Monitoring module:

  • beszel - Beszel lightweight monitoring
  • prometheus - Prometheus/Grafana monitoring

IoT module:

AI module:

  • automatic1111 - Automatic1111 Stable Diffusion WebUI
  • kubeai - Ollama and vLLM models over OpenAI-compatible API
  • invokeai - generative AI plaform, community edition
  • n8n - AI workflow automation
  • ollama - local large language models
  • open-webui - Open WebUI frontend
  • sdnext - SD.Next Stable Diffusion WebUI

Bitcoin module:

Office module:

  • nextcloud - File sharing and collaboration suite

Platforms and limitations

Installation instructions assume your machines are running Bluefin (Developer edition, https://projectbluefin.io/) based on Fedora Silverblue unless otherwise noted. It should run on any modern Linux distribution with Linux kernel 6.11.6+, even including Raspberry Pi.

Windows and MacOS support is limited, specifically they cannot be used as storage nodes.

See Disabling Longhorn Guide with instructions on using local-path-provisioner instead of Longhorn.

Both NVIDIA and AMD GPUs are supported. See AMD GPU support for more information.

Installation

After system components have been deployed, you can add any of the optional #Applications. Details in each module documentation.

For general application configuration and deployment instructions, see Configuration Guide.

Documentation

Extension points exported contracts — how you extend this code

MempoolArgs (Interface)
(no doc)
components/bitcoin/mempool/mempool.ts
OpenWebUIArgs (Interface)
(no doc)
components/ai/open-webui/open-webui.ts
LonghornArgs (Interface)
(no doc)
components/system/longhorn/longhorn.ts
HomeAssistantArgs (Interface)
(no doc)
components/iot/home-assistant/home-assistant.ts
IngressInfo (Interface)
(no doc)
src/network.ts
S3ProvisionerArgs (Interface)
(no doc)
src/s3-provisioner.ts
NodesArgs (Interface)
(no doc)
src/nodes.ts
LonghornVolumeArgs (Interface)
(no doc)
src/longhorn-volume.ts

Core symbols most depended-on inside this repo

get
called by 75
src/config.ts
require
called by 43
src/config.ts
isEnabled
called by 28
src/config.ts
getBoolean
called by 25
src/config.ts
getAffinity
called by 19
src/nodes.ts
addHelmChart
called by 17
src/application.ts
addStorage
called by 16
src/application.ts
getIngressInfo
called by 15
src/network.ts

Shape

Method 192
Class 96
Interface 26
Function 2
Enum 1

Languages

TypeScript100%

Modules by API surface

src/config.ts20 symbols
src/containers.ts17 symbols
src/storage.ts16 symbols
src/application.ts16 symbols
src/network.ts14 symbols
src/types.ts10 symbols
components/system/longhorn/longhorn.ts10 symbols
src/services.ts8 symbols
src/postgres.ts8 symbols
src/nodes.ts8 symbols
src/metadata.ts8 symbols
src/mariadb.ts8 symbols

For agents

$ claude mcp add orange-lab \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page