Documentation
How to deploy. How to operate. How to leave.
The complete docs — every endpoint, every supported image, every error code. No marketing, no condescension.
Create an account
Email and password. No phone, no ID. Persistent 30-day sessions, revocable from settings.
Top up your balance
Send any supported coin to a one-time address. We credit USD-reference at the rate when funds confirm.
Deploy your first server
Pick a plan, a region, an OS image, paste an SSH key. Provisioning takes 30–90 seconds.
Connect via SSH
Key-based only by default. Log in as root with the IPv4 from the dashboard.
Billing & balance
Balance, top-up and the billing-cycle model.
| Coin | Network | Min deposit |
|---|---|---|
| Monero | Monero | $10 |
| Bitcoin | Bitcoin | $10 |
| Litecoin | Litecoin | $10 |
| Ethereum | Ethereum | $10 |
| Tether | ERC-20 | $10 |
| Tether | Polygon | $10 |
| USDC | Base | $10 |
| Tether | Solana | $10 |
| Solana | Solana | $10 |
| Tron | Tron | $10 |
Top-up flow: pick a coin and amount, we generate a one-time address and lock the rate for 30 minutes. Once confirmed, your balance is credited at the locked rate.
Billing cycle: each server is paid for a 4-week (28-day) cycle. The cycle price is debited from your balance when the server is deployed. When the cycle ends, the next one is debited automatically if your balance covers it — there is no card on file, so nothing is ever charged beyond the balance you topped up yourself. If the balance is short, the server expires until you top up; it renews as soon as the balance covers the cycle, or you can press Renew.
Server lifecycle
Deploy, reboot, rebuild, rescue, destroy.
provisioningWe are allocating the VM. 30–90 seconds.
installingOS image is being written and cloud-init is running.
runningServer is up; SSH is reachable.
stoppedGracefully shut down. Disk and IP still allocated and billed.
suspendedPaid cycle ended and not renewed. Off and not reachable until you renew.
Operating systems
Image catalogue.
Returned live from GET /api/os. Use the osId when creating a server.
| OS | osId |
|---|---|
| AlmaLinux 9 | 6 |
| Alpine Linux | 54 |
| Arch Linux | 42 |
| CachyOS | 45 |
| CentOS 7 (legacy) | 51 |
| Debian 11 (legacy) | 27 |
| Debian 12 | 5 |
| Debian 13 | 28 |
| Fedora 41 | 57 |
| openSUSE Leap 15.6 | 60 |
| Rocky Linux 9 | 48 |
| Ubuntu 20.04 (legacy) | 26 |
| Ubuntu 22.04 | 8 |
| Ubuntu 24.04 | 4 |
How to pay
Paying for a server, end to end.
No card, no processor, no recurring billing relationship. You deposit crypto, it credits to a balance, and the balance pays for your servers.
Pick a coin
Ten coins are supported. Monero (XMR) hides sender, recipient and amount by protocol design, which is the strongest payment privacy. Stablecoins confirm in seconds. Bitcoin and Litecoin are public but simple. Every option credits the same USD balance.
Generate a deposit address
Choose the coin and amount in the dashboard. We generate a one-time address for that deposit and lock the exchange rate for 30 minutes. Never reuse an address from an earlier deposit.
Send from a wallet you control
Withdraw from your exchange to your own wallet first, let it confirm, then send the exact amount to the deposit address. Paying straight from an exchange is slow and ties the payment to your verified account timing.
Wait for confirmation
Credit is automatic — there is nothing to submit. Stablecoins on Base, Polygon and Solana usually confirm in seconds. Monero, Litecoin and Tron take a few minutes. Bitcoin and Ethereum take longest. You can watch the deposit move from awaiting_payment to confirmed.
Same coin, different network The coin you choose affects privacy, speed and fees — not what you get. USDT on Ethereum can cost several dollars to send, while USDT on Polygon or Solana costs a fraction of a cent. Pick the network your exchange withdraws to cheapest.
Wrong network? Sending USDT on Ethereum when you selected Polygon means the funds never reach the deposit address. Recovery then depends entirely on the sending exchange's policy — contact support with the transaction hash.
Why the rail matters Card payments tie a provider directly to a verified identity through the processor. Bitcoin, Ethereum and stablecoins are public and analysable, and stablecoin issuers can freeze funds. Monero hides the sender, the recipient and the amount at the protocol layer, with no mixer and no opt-in.
Under the hood
How NoctisNode works.
Signup
An email and a password. No name, no phone, no ID, no selfie — at signup or ever after. Sessions last 30 days and are revocable from settings.
Deploy
Choose a plan, region, OS image and SSH key. Provisioning takes 30–90 seconds: the VM is allocated, the image is written and cloud-init runs. You get an IPv4 address.
What we log
We keep no traffic logs and no DNS logs. Account and billing records exist because they must, and a signed warrant canary means a gag order against us would be publicly detectable.
Regions and networks
Servers run in EU and other international regions, all on 1 Gbps or better with unmetered bandwidth on every VPS tier. Query live availability via GET /api/regions.
Doing it programmatically
Everything in the dashboard is available over a REST API with bearer-token auth. Mint scoped tokens (read, write, billing) and drive deploys, renewals, metrics and top-ups from your own scripts.
API reference
REST over HTTPS, JSON in, JSON out.
Base URL https://noctisnode.com/api · Bearer token auth via Authorization: Bearer <token> · Machine-readable spec: openapi.json
| Method | Path | Description |
|---|---|---|
POST | /api/auth/register | Create a new account (email + password). |
POST | /api/auth/login | Start a session. Returns session cookie. |
POST | /api/auth/logout | Destroy the current session. |
GET | /api/me | Current account: email, balance, referrals. |
GET | /api/plans | List available plans with pricing. |
GET | /api/regions | List regions and availability. |
GET | /api/os | List available OS images (osId + name). |
GET | /api/servers | List your servers. |
POST | /api/servers | Deploy a new server. |
DELETE | /api/servers/{id} | Destroy a server. Irreversible. |
POST | /api/servers/{id}/reboot | Soft reboot (?hard=true to power-cycle). |
POST | /api/servers/{id}/rebuild | Reinstall OS. Destroys disk data. |
POST | /api/servers/{id}/rescue | Boot into rescue ISO. |
POST | /api/servers/{id}/rdns | Set reverse DNS. |
GET | /api/servers/{id}/metrics | CPU / RAM / disk / bandwidth usage. |
POST | /api/servers/{id}/renew | Extend server lease. Accepts an optional (promoCode=NN-…) in the body. |
POST | /api/servers/{id}/reset-password | Generate a new root password. |
POST | /api/servers/{id}/change-plan | Upgrade / downgrade a server. |
GET | /api/account/tokens | List bearer tokens. |
POST | /api/account/tokens | Mint a new bearer token (scopes: read, write, billing). |
POST | /api/topup | Generate a one-time deposit address. |
GET | /api/tickets | List support tickets. |
POST | /api/tickets | Open a new support ticket. |
GET | /api/mcp | MCP manifest (JSON). |