Control Center
Overview
Total Apps
-
Last 30 Days
Vault Files
-
Last 30 Days
Total Activity
-
Last 30 Days
| Time | Action | User |
|---|
The Nexus Philosophy
The "Apartment Complex" Model
Launchpad builds standalone houses (Isolated VPS environments). Nexus builds an apartment complex. It runs one systemd service and one FastAPI process that hosts dozens of lightweight "Mini-Apps".
- Efficiency: 20 apps share 100MB of RAM.
- Speed: Install a tool in 5 seconds via CLI.
- Simplicity: One domain, one SSL cert.
When to use what?
Calculators, Downloaders, Webhook Handlers, Dashboards, Simple Scripts.
SaaS Products, High-Traffic Sites, Heavy Background Workers (Celery/Redis), Complex DBs.
Building Mini-Apps
The Zip Structure
Every app must follow this strict contract to work with the Nexus TUI autoloader.
my-tool.zip
├── metadata.json // REQUIRED: Defines name, version, slug
├── router.py // OPTIONAL: Backend logic (FastAPI APIRouter)
├── static/ // OPTIONAL: Frontend files (index.html, css)
├── requirements.txt // OPTIONAL: Pip packages
└── apt-requirements.txt // OPTIONAL: System binaries (ffmpeg, etc)
metadata.json
{
"name": "Spotify Downloader",
"slug": "spotify-dl", // URL path: nexus.com/spotify-dl
"version": "1.0",
"description": "Download playlists via yt-dlp",
"author": "Kelvin",
"category": "Tools",
"icon": "assets/logo.svg",
"has_router": true, // Does router.py exist?
"has_static": true, // Does static/ folder exist?
"is_private": false // Require Author Key to install?
}
Backend Rules (router.py)
- Must expose variable:
router = APIRouter() - Do not use
app = FastAPI(). - Use Relative Paths for file I/O:
Path(__file__).parent / "data" - For heavy tasks, use
await asyncio.create_subprocess_exec. Do not block the thread!
Frontend Rules (static/)
- Relative Paths Only!
- ❌
<img src="/logo.png">(Breaks) - ✅
<img src="./logo.png">(Works) - API calls must be relative:
fetch('./api/do-thing')maps to/api/{slug}/do-thing.
The Unique Vault
A secure file locker for assets that don't fit into the Nexus runtime logic (e.g. Binaries, Configs, Paid Tools).
Open Mode (Tracked)
Files are accessible to anyone with the link. Usage is tracked via the optional ?ref=CLIENT_ID parameter.
Use Case: Internal tools, public betas, helper scripts.
Strict Mode (Protected)
Files require a generated Key linked specifically to that file.
You can set max download limits (e.g., "5 downloads").
Use Case: Sold software, client deliverables, sensitive configs.