Sovereign apps. Local-first. Native on macOS. Connected by consent.
← Back to MyOwnLifeOS 📃 Architecture History
%%{init: {"theme": "dark", "themeVariables": {"primaryColor": "#1a1a2e", "primaryTextColor": "#e0e0e0", "primaryBorderColor": "#e8a020", "lineColor": "#555570", "secondaryColor": "#16213e", "tertiaryColor": "#0f0f0f"}, "flowchart": {"useMaxWidth": true, "curve": "basis"}}}%%
graph TB
subgraph Landing[" "]
L["MyOwnLifeOS Landing
myownlifeos.example.com"]
end
subgraph Apps["MyOwnLifeOS App Suite - 11 Web Apps"]
G["Gopher
gopher.example.net
Concierge + Identity Resolution"]
I["inbox0
inbox0.example.net
Email Triage"]
C["Code Reviewer
codereviewer.example.net
AI Code Review"]
S["Scribe
ownscribe.example.net
Transcription"]
D["DrawmaticAI
diagrams.example.net
Diagram Generation"]
R["Summarizer
summarizer.example.net
Meeting Summaries"]
W["Weekly
weekly.example.net
Weekly Synthesis"]
T["TShirtize
tshirtize.example.net
Effort Sizing
Monday + GitHub + Text"]
Cal["Almanac
almanac.example.net
Calendar Aggregator
Google Calendar + CalDAV"]
Ch["Chatty
chatty.example.net
Document + Drive RAG
pgvector or ChromaDB"]
end
subgraph Desktop["Native Desktop - macOS"]
IDesk["inbox0 Desktop
Mac App Store · Pending Review
Email Triage + MailMind"]
end
subgraph Identity["Identity and Auth"]
O["Google OAuth 2.0
per-app user login"]
JWT["Server-to-Server JWT
the shared signing key
suite-shared signing key"]
SA["Superadmin
[email protected]"]
CONSENT["Consent Router
opt-in per-user connections"]
IDRES["Identity Resolver
groups accounts by shared
email / phone value
not login provider or app user ID"]
end
subgraph Intelligence["Local Intelligence"]
LLM["Ollama
remote Mac Studio
qwen3.6 / gemma4"]
RTX["Ollama
RTX A4500
qwen3.6 / gemma4"]
end
subgraph External["External Systems"]
Immich["Immich
Photo Library"]
NVR["UniFi Protect NVR
Cameras + LPR + Face ID"]
end
subgraph Persistence["Data Layer"]
SQLite[("SQLite
Per-App Local DBs
default for most apps")]
PG[("PostgreSQL
Gopher (mandatory)
optional backend elsewhere")]
AuditAGG[("Singleton Audit Aggregator
Cross-App Timeline")]
end
subgraph Infrastructure["Infrastructure"]
CF["Cloudflare Tunnels
one per public subdomain"]
DOCKER["Docker Compose
per-app containers"]
end
L --> G
L --> I
L --> C
L --> S
L --> D
L --> R
L --> W
L --> T
L --> Cal
L --> Ch
L --> IDesk
O -.->|OAuth callback| G
O -.->|OAuth callback| I
O -.->|OAuth callback| C
O -.->|OAuth callback| S
O -.->|OAuth callback| D
O -.->|OAuth callback| R
O -.->|OAuth callback| W
O -.->|OAuth callback| T
O -.->|OAuth callback| Cal
O -.->|OAuth callback| Ch
G -->|chat, tools, vision| LLM
I -->|triage| LLM
C -->|review| LLM
S -->|whisper + summarize| LLM
D -->|generate diagram| LLM
R -->|summarize| LLM
W -->|synthesize| LLM
T -->|size work| LLM
Ch -->|answer over retrieved chunks| LLM
G <-->|inference, fuzzy account match| RTX
I <-->|inference| RTX
C <-->|inference| RTX
S <-->|inference| RTX
D <-->|inference| RTX
R <-->|inference| RTX
W <-->|inference| RTX
T <-->|inference| RTX
Ch <-->|embeddings + inference| RTX
G -->|PostgreSQL| PG
I --> SQLite
C --> SQLite
S --> SQLite
D --> SQLite
R --> SQLite
W --> SQLite
T --> SQLite
Cal --> SQLite
Ch -->|pgvector, or local ChromaDB| PG
G -.->|identity / accounts| IDRES
I -.->|identity / accounts| IDRES
R -.->|identity / accounts| IDRES
S -.->|identity / accounts| IDRES
Cal -.->|identity / accounts| IDRES
W -.->|identity / accounts| IDRES
T -.->|identity / accounts| IDRES
IDRES -->|identity contexts| G
G -.->|signs / verifies| JWT
I -.->|verifies incoming JWT| JWT
R -.->|verifies incoming JWT| JWT
S -.->|verifies incoming JWT| JWT
Cal -.->|verifies incoming JWT| JWT
W -.->|signs outgoing JWT| JWT
T -.->|verifies incoming JWT
signs outbound link JWT| JWT
C -.->|own JWT, not the shared signing key| JWT
D -.->|own JWT, not the shared signing key| JWT
Ch -.->|own signed session cookie, not the shared signing key| JWT
W -->|"weekly context\noutstanding items\nidentity contexts\n(JWT, never calls other apps directly)"| G
G -->|"OwnLifeOS tasks\nfocus context"| I
G -->|"OwnLifeOS tasks"| R
G -->|"weekly insights"| Cal
G -->|"sizing stats + recent sizings\n(JWT)"| T
T -->|"SSO launch\nlink callback\nOwnLifeOS app-token"| OwnOS
I -->|"calendar context (JWT)"| Cal
G <-->|tool calls, fuzzy account match| I
G <-->|tool calls| R
G <-->|tool calls| T
G <-->|photo tools| Immich
G <-->|"face + LPR + vehicle detections (stored in PG; sidecar decommissioned)"| NVR
AuditEach["Per-App Audit Logs\nSQLite default,\nPostgreSQL optional via env"] -.->|poll audit stream| AuditAGG
G -.-> AuditEach
I -.-> AuditEach
C -.-> AuditEach
S -.-> AuditEach
R -.-> AuditEach
D -.-> AuditEach
W -.-> AuditEach
T -.-> AuditEach
Cal -.-> AuditEach
Ch -.-> AuditEach
CF -->|tunnel| G
CF -->|tunnel| I
CF -->|tunnel| C
CF -->|tunnel| S
CF -->|tunnel| D
CF -->|tunnel| R
CF -->|tunnel| W
CF -->|tunnel| T
CF -->|tunnel| Cal
CF -->|tunnel| Ch
DOCKER -->|host| G
DOCKER -->|host| I
DOCKER -->|host| C
DOCKER -->|host| S
DOCKER -->|host| D
DOCKER -->|host| R
DOCKER -->|host| W
DOCKER -->|host| T
DOCKER -->|host| Cal
DOCKER -->|host| Ch
SA -.->|admin role| G
SA -.->|admin role| I
SA -.->|admin role| C
SA -.->|admin role| S
SA -.->|admin role| D
SA -.->|admin role| R
SA -.->|admin role| W
SA -.->|admin role| T
SA -.->|admin role| Cal
SA -.->|admin role| Ch
classDef landing fill:#1a1a2e,stroke:#e8a020,stroke-width:3px,color:#fff
classDef app fill:#16213e,stroke:#e8a020,stroke-width:2px,color:#e0e0e0
classDef desktop fill:#1a1a2e,stroke:#3ecf6e,stroke-width:2px,color:#e0e0e0
classDef identity fill:#1a1a2e,stroke:#3ecf6e,stroke-width:2px,color:#e0e0e0
classDef llm fill:#16213e,stroke:#64b5f6,stroke-width:2px,color:#e0e0e0
classDef data fill:#1a1a2e,stroke:#e8a020,stroke-width:2px,color:#e0e0e0
classDef audit fill:#16213e,stroke:#ff6b9d,stroke-width:2px,color:#e0e0e0
classDef infra fill:#0f0f0f,stroke:#8888a8,stroke-width:1px,color:#8888a8
classDef user fill:#1a1a2e,stroke:#e85555,stroke-width:2px,color:#e0e0e0
classDef ext fill:#1a1a2e,stroke:#64b5f6,stroke-width:2px,color:#e0e0e0
class L landing
class G,I,C,S,D,R,W,T,Cal,Ch app
class IDesk desktop
class O,JWT,CONSENT,IDRES identity
class LLM,RTX llm
class PG,SQLite,AuditAGG data
class AuditEach,AuditAGG audit
class CF,DOCKER infra
class SA user
class Immich,NVR ext
Scroll to zoom · drag to pan · Fit to reset