shannonjlove.cloud

Infrastructure Control

⌕

LoveCloud

Inventory · schema 1.0.0

Seed
88
resources
11
pending
0
failed
updated
seed data

3D System View

Drag to orbit · scroll to zoom · click a node
Loading 3D scene…

System Architecture

Click any node to open actions
ComputeServiceNetworkStorageSecurityExternal

Nodes

[4]
4 primary hosts across the fleet
nexusonline
Hostinger VPS · x86_64
Edge / Reverse proxy
↑ 42d 6h
services
CPU34%
MEM58%
DISK41%
oracleonline
Oracle Cloud · ARM64 / aarch64
Compute / Desktop host
↑ 31d 12h
services
  • NFS mount (nexus:/srv):2049
  • claude-memory MCP:7200
  • WebTop XFCE:3000/3001
CPU47%
MEM71%
DISK52%
gcpwarning
Google Cloud Platform · x86_64
Auxiliary / TBD
↑ —
services
  • not yet configured
CPU8%
MEM22%
DISK15%
WebTopSJLonline
runs on oracle · container / XFCE
Remote desktop environment
↑ 12d 4h
services
CPU22%
MEM44%
DISK30%

Quick Access

one-click into common workflows

Tailscale Mesh

tailnet.shannonjlove.cloud
NEX
nexus
ORA
oracle
GCP
gcp
WEB
webtop
LAP
laptop

Subdomains

[8]
*.shannonjlove.cloud

MCP Servers

[6]
model context protocol
ServerNodeTransportToolsStatus
claude-memory
Persistent memory graph for Claude
oraclehttp8online
memory-agent
Long-term recall + KV store
nexushttp6online
local-agent
Local tool router / dispatcher
nexushttp12online
filesystem
NFS-scoped filesystem access
nexusstdio11online
tailscale
Mesh device + ACL management
nexushttp8online
github
Issues, PRs, code search
nexushttp24online

GitHub Repos

[6]
shannonjlove

Containers

[8]
docker across the fleet
NameImageNodePortsUptimeStatus
npmjc21/nginx-proxy-manager:latestnexus80,443,8142donline
memory-agentsjl/memory-agent:v0.4.2nexus710018donline
local-agentsjl/local-agent:v0.7.1nexus710118donline
nfs-servererichough/nfs-server:latestnexus204942donline
claude-memorysjl/claude-memory:arm64oracle720031donline
webtoplscr.io/linuxserver/webtop:ubuntu-xfceoracle3000,300112donline
openwebuighcr.io/open-webui/open-webuioracle80803hwarning
bookstacklscr.io/linuxserver/bookstack:latestnexus687521donline

Live Inventory

All LoveCloud resource kinds · shared contract with the Scriptable widgets

host:
NameKindHostDetailStatusLink
LoveCloud Hostinger
100.115.66.75
serverhostinger-sjlx86_64 · primary ingressverified active—
Oracle sOS
100.67.229.94
serveroracle-sosARM64 · workloadsverified active—
hostinger-sjl
100.115.66.75
nodehostinger-sjl—verified active—
oracle-sos
100.67.229.94
nodeoracle-sos—verified active—
localhostnodelocalhost—verified active—
apple-tvnodeapple-tv—external—
ai-lovecloudnodeai-lovecloud—verified active—
iPhonenodeiphone—external—
MacBook Airnodemacbook-air—external—
bookstack.shannonjlove.cloud
https://bookstack.shannonjlove.cloud
subdomainhostinger-sjl—verified activeOpen ↗
docs.shannonjlove.cloud
https://docs.shannonjlove.cloud
subdomainhostinger-sjl—verified activeOpen ↗
jellyfin.shannonjlove.cloud
https://jellyfin.shannonjlove.cloud
subdomainhostinger-sjl—verified activeOpen ↗
n8n.shannonjlove.cloud
https://n8n.shannonjlove.cloud
subdomainhostinger-sjl—verified activeOpen ↗
mcp.shannonjlove.cloud
https://mcp.shannonjlove.cloud
subdomainhostinger-sjl—verified activeOpen ↗
memory.shannonjlove.cloud
https://memory.shannonjlove.cloud
subdomainhostinger-sjl—verified activeOpen ↗
dashboard.shannonjlove.cloud
https://dashboard.shannonjlove.cloud
subdomainhostinger-sjl—verified activeOpen ↗
webtop.shannonjlove.cloud
https://webtop.shannonjlove.cloud
subdomainoracle-sos—verified activeOpen ↗
push.shannonjlove.cloud
https://push.shannonjlove.cloud
subdomainhostinger-sjl—verified activeOpen ↗
oracle-mcp.shannonjlove.cloud
https://oracle-mcp.shannonjlove.cloud
subdomainoracle-sos—verified activeOpen ↗
sjl-mcp.shannonjlove.cloud
https://sjl-mcp.shannonjlove.cloud
subdomainhostinger-sjl—verified activeOpen ↗
ticktick-mcp.shannonjlove.cloud
https://ticktick-mcp.shannonjlove.cloud
subdomainhostinger-sjl—verified activeOpen ↗
agent.shannonjlove.cloud
https://agent.shannonjlove.cloud
subdomainhostinger-sjl—configured pendingOpen ↗
claudedashboard.shannonjlove.cloud
https://claudedashboard.shannonjlove.cloud
subdomainhostinger-sjl—configured pendingOpen ↗
filebrowser.shannonjlove.cloud
https://filebrowser.shannonjlove.cloud
subdomainhostinger-sjl—configured pendingOpen ↗
github-mcp.shannonjlove.cloud
https://github-mcp.shannonjlove.cloud
subdomainhostinger-sjl—configured pendingOpen ↗
hostinger-mcp.shannonjlove.cloud
https://hostinger-mcp.shannonjlove.cloud
subdomainhostinger-sjl—configured pendingOpen ↗
rclonegui.shannonjlove.cloud
https://rclonegui.shannonjlove.cloud
subdomainoracle-sos—configured pendingOpen ↗
bookstackcontainerhostinger-sjl—verified active—
bookstack-dbcontainerhostinger-sjl—verified active—
paperless-webservercontainerhostinger-sjl—verified active—
paperless-brokercontainerhostinger-sjl—verified active—
paperless-dbcontainerhostinger-sjl—verified active—
nginx-proxy-managercontainerhostinger-sjl—verified active—
n8ncontainerhostinger-sjl—verified active—
jellyfincontainerhostinger-sjl—verified active—
photoprismcontainerhostinger-sjl—verified active—
portainercontainerhostinger-sjl—verified active—
memory-agentcontainerhostinger-sjl—verified active—
hermes-gatewaycontainerhostinger-sjl—verified active—
mcp-ticktickcontainerhostinger-sjl—verified active—
mcp-githubcontainerhostinger-sjl—configured pending—
mcp-hostingercontainerhostinger-sjl—configured pending—
registry-apicontaineroracle-sos—verified active—
registry-dbcontaineroracle-sos—verified active—
stashcontaineroracle-sos—verified active—
webtopcontaineroracle-sos—verified active—
rclone-koofrcontaineroracle-sos—verified active—
rclone-e2containeroracle-sos—verified active—
rcloneguicontaineroracle-sos—configured pending—
hermes-gateway.containerquadlethostinger-sjlgit_managedverified active—
lovecloud-local-agents.containerquadlethostinger-sjlgit_managedverified active—
bookstack.containerquadlethostinger-sjlhost_onlyverified active—
n8n.containerquadlethostinger-sjlhost_onlyverified active—
jellyfin.containerquadlethostinger-sjlhost_onlyverified active—
paperless.containerquadlethostinger-sjlhost_onlyverified active—
registry-api.containerquadletoracle-soshost_onlyverified active—
stash.containerquadletoracle-soshost_onlyverified active—
webtop.containerquadletoracle-soshost_onlyverified active—
tailscaledservicehostinger-sjl—verified active—
tailscaledserviceoracle-sos—verified active—
rclone-koofr.serviceserviceoracle-sos—verified active—
rclone-e2.serviceserviceoracle-sos—verified active—
resilio-syncservicehostinger-sjl—verified active—
sjl-worker-canaryservicehostinger-sjl—configured pending—
/mnt/koofr/docsfilesystemoracle-sosread-onlyverified active—
/mnt/koofr/mediafilesystemoracle-sosread-onlyverified active—
/mnt/koofrfilesystemoracle-sosread-onlyverified active—
/mnt/e2filesystemoracle-sosidrive-e2verified active—
nexus-backupscloud_storage—IDrive E2 · 18,420 objects · 384 GBverified active—
nexus-mediacloud_storage—IDrive E2 · 96,110 objects · 1.9 TBverified active—
nexus-docscloud_storage—IDrive E2 · 7,340 objects · 22 GBverified active—
nexus-archivecloud_storage—IDrive E2 · 0 objectsconfigured pending—
shannonjlove/SJL-SYSTEM-REGISTRYrepository——verified activeOpen ↗
shannonjlove/lovecloud-infrarepository——verified activeOpen ↗
shannonjlove/hermes-gatewayrepository——verified activeOpen ↗
shannonjlove/lovecloud-local-agentsrepository——verified activeOpen ↗
SSH keys (1Password)1Password authorityssh_key—6 items · values never exposedauthority—
API tokens (1Password)1Password authorityapi_token—11 items · values never exposedauthority—
Secret items (1Password)1Password authoritysecret_item—34 items · values never exposedauthority—
BookStackapplicationhostinger-sjl—verified activeOpen ↗
n8napplicationhostinger-sjl—verified activeOpen ↗
Jellyfinapplicationhostinger-sjl—verified activeOpen ↗
WebTop desktopapplicationoracle-sos—verified activeOpen ↗
Nginx Proxy Managerapplicationhostinger-sjl—verified active—
1Passwordauthority—secrets authorityauthority—
Tailscaleauthority—identity + mesh (100.64.0.0/10)authority—
Cloudflare DNSauthority—*.shannonjlove.cloudauthority—
GitHubauthority—source of truth for git_managed unitsexternal—

Documentation · BookStack

[6 shelves]
books.shannonjlove.cloud
online

BookStack

Self-hosted knowledge base · v24.10.1

on nexus

Login
op://Infra/BookStack/admin
Local + OIDC (planned)
Recent updates
  • updated
    Added Tailscale exit-node section
    Tailscale ACLs & tags·4h ago
  • created
    New page: Cloudflare API token scope
    1Password rotation policy·1d ago
  • updated
    Revised NPM ACL examples
    Nginx Proxy Manager cheatsheet·6h ago
  • commented
    Comment on: NFS stale handle
    NFS mount recovery·2d ago
  • created
    New runbook: origin cert rotate
    TLS cert renewal·5d ago

Configuration

DNS, secrets, env, backups
Provider
CloudflareDNSSEC
Zone
shannonjlove.cloud
Nameservers
  • kate.ns.cloudflare.com
  • sean.ns.cloudflare.com
TypeNameValueTTLAccess
A*.shannonjlove.cloud72.61.74.250
wildcard → nexus
300s public
Ashannonjlove.cloud72.61.74.250
apex
300s public
AAAAshannonjlove.cloud2a02:4780:1e:1337::1300s
Amemory.shannonjlove.cloud72.61.74.250
NPM ACL: tailscale only
300s tailnet
Anpm.shannonjlove.cloud72.61.74.250
Nginx Proxy Manager admin
300s public
Awebtop.shannonjlove.cloud72.61.74.250
proxied → oracle:3001
300s tailnet
Aclaude.shannonjlove.cloud72.61.74.250
claude-memory MCP
300s tailnet
Aagent.shannonjlove.cloud72.61.74.250
local-agent
300s tailnet
Astatus.shannonjlove.cloud72.61.74.250300s public
TXT_dmarc.shannonjlove.cloudv=DMARC1; p=reject; rua=mailto:dmarc@shannonjlove.cloud3600s
MXshannonjlove.cloud10 mail.shannonjlove.cloud3600s
Never commit secrets. All values shown here are references only. Real secrets live in 1Password and are injected at runtime via op run or systemd EnvironmentFile. Config files with real values are gitignored.

Scriptable Integration

iOS home-screen widgets synced from this dashboard

Sync onupdated never
Sync endpoint
…
not testedFallback: cached JSON in Scriptable FileManager
Widgets
Small widget
Node count + service health at a glance
Medium widget
2×2 grid of Nexus, Oracle, GCP, WebTopSJL
Large widget
Full node list with services + counters

In Scriptable: import the .js file, add a widget to your home screen, long-press → Edit Widget → choose the script. Tap opens the dashboard.