Skip to content

ɳCloud

ɳCloud is the managed hosting service for ɳSelf. Instead of setting up your own server, you pay a monthly fee and get a dedicated Hetzner VPS with the full ɳSelf stack pre-installed, monitored, and maintained.

Status: Pricing page and provisioning flow implemented. Full managed service planned. Console: cloud.nself.org Architecture doc: .claude/docs/ncloud-architecture.md


  1. Sign up at cloud.nself.org.
  2. Pick a server tier.
  3. Pay via Stripe.
  4. A dedicated Hetzner VPS is provisioned automatically (under 3 minutes).
  5. You receive root SSH access, a Hasura console URL, a GraphQL endpoint, and an admin panel.
  6. ɳSelf monitors the server. You build your app.

Every ɳCloud customer gets a dedicated server. There is no shared hosting, no noisy neighbors, no resource contention. Your data stays on your server.


Pricing follows a transparent model: Hetzner’s cost plus a $2/month management fee. All servers are in Falkenstein, Germany (fsn1).

TierHetzner TypevCPURAMDiskHetzner CostɳCloud Price
StarterCX2324 GB40 GB~$4/mo~$6/mo
StandardCX3348 GB80 GB~$7/mo~$9/mo
PerformanceCX43816 GB160 GB~$14/mo~$16/mo
ARM StarterCAX1124 GB40 GB~$4.50/mo~$6.50/mo

Upgrades and downgrades happen any time via the Hetzner API. Resize takes under 5 minutes.

Plugin licenses are billed separately through the existing ɳSelf licensing system.


Every ɳCloud server comes with:

  • Full ɳSelf stack. PostgreSQL, Hasura GraphQL, Auth, Nginx with SSL.
  • Your plugin tier. Plugins matching your license key are pre-installed.
  • Server hardening. fail2ban, UFW, SSH key-only access, security headers.
  • Monitoring. Prometheus, Grafana, Loki, and the full monitoring bundle.
  • Automatic SSL. Let’s Encrypt certificates configured on provisioning.
  • Root SSH access. Full control over your server.
  • DNS subdomain. {username}.ncloud.nself.org configured automatically.

The web console is a Next.js app in the web/ monorepo (web/cloud). It provides:

FeatureDescription
DashboardServer status, resource usage (CPU, RAM, disk), uptime
Server managementStart, stop, restart, resize, rebuild
Plugin managementInstall and remove plugins (delegates to ɳSelf CLI via SSH)
LogsReal-time log streaming from your server
BackupsSchedule and restore from Hetzner snapshots
DNSAdd custom domains, auto-configure SSL
BillingCurrent plan, usage history, invoices, upgrade/downgrade
LicenseKey display (masked), tier badge, Stripe customer portal

All management actions execute via SSH to your server. The console queues actions through a job system that connects to your VPS and runs ɳSelf CLI commands. No management agent runs on your server.


When a new server is ordered, a cloud-init script runs on first boot:

  1. System updates and hardening (fail2ban, UFW, SSH key-only)
  2. Install ɳSelf CLI (curl -fsSL install.nself.org | bash)
  3. nself init --full with pre-configured environment
  4. Install plugins matching the user’s license tier
  5. nself build && nself start
  6. Configure Nginx with SSL (Let’s Encrypt)
  7. Report ready status to ping_api

Target: under 3 minutes from payment confirmation to a running stack.


ncloud_servers table:
user_id → auth user
hetzner_id → Hetzner server ID
ipv4 → server IP
tier → current Hetzner server type
status → provisioning | active | suspended | deleted
plugins → installed plugin list
custom_domains → configured domains
  • Failed payment: 3-day grace period, then server suspended (not deleted).
  • Cancellation: 7-day grace period with data export option, then server deleted.
  • Disaster recovery: Server rebuild via POST /servers/{id}/actions/rebuild.

Each ɳCloud server runs the ɳSelf monitoring bundle. A lightweight relay pushes key metrics to the central ɳSelf monitoring system:

  • Server health (CPU, RAM, disk, network)
  • Docker container status for all services
  • SSL certificate expiry warnings
  • Disk usage alerts

Alerts route to the ɳSelf ops channel and to the customer’s configured notification channels (email, Telegram, webhook).


Users can map their own domains to their ɳCloud server:

  1. Add domain in the cloud console.
  2. Follow DNS instructions (A record pointing to server IP).
  3. ɳSelf verifies DNS propagation.
  4. The CLI on the server runs nself domain add {domain} to configure Nginx and Let’s Encrypt.

The default {username}.ncloud.nself.org subdomain is always available, managed via Cloudflare API.


A future lower-cost tier for users who do not need a dedicated server:

ɳCloudCloud Light
Price$6-16/mo$1-2/mo
ServerDedicated Hetzner VPSShared Docker host
IsolationFull server isolationPer-user schema + Docker namespace
SSHRoot accessNo SSH
PluginsAll supportedLimited set
Best forProduction appsPrototyping, small projects

Cloud Light uses per-user schema isolation in a shared PostgreSQL instance and subdomain routing to per-user Docker containers.


  • Servers are hardened on provisioning: SSH key-only, fail2ban, UFW.
  • Root access is the customer’s responsibility after provisioning.
  • ɳSelf does not store customer SSH private keys.
  • Management SSH uses a deploy key pair (public key injected at provisioning).
  • All management actions are logged and auditable.
  • Each customer gets a dedicated VPS with no shared resources.

All server lifecycle operations use the Hetzner Cloud API:

OperationAPIWhen
CreatePOST /serversNew customer signup
DeleteDELETE /servers/{id}Account cancellation (after grace period)
ResizePOST /servers/{id}/actions/change_typeTier change
RebuildPOST /servers/{id}/actions/rebuildDisaster recovery
SnapshotPOST /servers/{id}/actions/create_imageBackup

A single ɳCloud Hetzner API token manages all customer servers. All servers live in the ɳSelf Hetzner project.



Features | _Sidebar