Skip to content
Noite
Esc
↑↓navigate↵open⌘Jpreview

Open source · Apache-2.0 · Powered by celld

The app platform you own.

Noite is a tiny, self-hostable platform for your apps, with durable objects, SQL databases and object storage included. One command installs it, one image runs it, and your data lives in a bucket you own.

curl -fsSL https://noite.run/run.sh | bash -s install

Ubuntu or Debian · amd64 or arm64 · 2 GB of RAM · no domain needed to try it

01 · Product tour

From empty VPS to live app

  • 0:00Install on a fresh VPS with one command
  • 0:30Register the admin account with a passkey
  • 0:55Create an app and an API key
  • 1:15git push, watch the build log
  • 1:40Logs, metrics and the storage browser
  • 2:10Add a custom domain, roll back a deploy

Product tour · 2:30

Recording soon.

02 · How it works

git push. It's live.

  1. 01

    Install

    Run one command on any fresh VPS. Noite installs Docker, generates its secrets, and gets its own TLS certificates.

  2. 02

    Push

    Create an app, add the remote, and push to main. Noite installs, builds, runs your release command, and deploys.

  3. 03

    Open

    Every app gets https://<slug>.<your-domain> automatically. Add your own domains in one click.

git remote add origin https://git:$KEY@git.example.com/hello
git push -u origin main
→ https://hello.example.com

03 · Features

Everything a small platform needs. Nothing it doesn't.

  • Bring your Workers app

    Many Cloudflare Workers apps move over as they are: deploy with the wrangler.jsonc you already have, or a cloudflare.config.ts. Durable Objects, D1, R2 and static assets run on celld, and its docs list every supported API.

  • Scale to zero, for real

    Apps idle for a day go to sleep and free their memory. The next request wakes them and is served normally: no splash page, no dropped request.

  • Observability built in

    Live logs, 24 h metrics (requests, errors, latency, CPU) and slow-request spans for every app. No collector to run.

  • Look inside your data

    Browse each app's D1 tables, R2 objects and Durable Objects from the dashboard.

  • Instant rollback

    Every successful deploy is kept as an immutable bundle. Roll back to any of them in one click.

  • Deploy from CI

    bunx @noitenow/cli deploy ships a prebuilt dist/ from GitHub Actions and comments the URL on your pull request.

  • Domains and TLS, handled

    Automatic subdomains, custom domains with on-demand certificates, and no wildcard certificate or DNS API needed.

  • Passkeys, not passwords

    Sign-in is passkey-first. Registration is invite-only, and every member has codes to invite others.

  • Share it safely

    Teammates get view, push or admin on each app. In multi-tenant mode, builds and apps run sandboxed, away from the platform's secrets.

04 · Ownership

Your server. Your bucket. Your bill.

Noite keeps everything in one S3 bucket: your Git history, your apps' storage and its own state. Use the bundled store to get started, or point it at R2, S3 or Tigris. Lose the server and nothing is lost: a fresh install restores itself from the bucket.

1
command to install
1
container to run
1
bucket to back up

Powered by celld: ~4 ms to wake a sleeping cell, ~0.5 MB of memory per resident cell (celld's own benchmarks).

05 · Security

Built to let other people push code.

In multi-tenant mode, builds and release commands run as unprivileged users with a cleared environment, and a firewall blocks tenants from localhost, private networks and cloud metadata. A dedicated hostile test app tries to read platform secrets and reach every internal API, and the isolation test suite checks that every attempt fails.

How tenant isolation works →

06 · Install

Install it your way.

curl -fsSL https://noite.run/run.sh | bash -s install

Ubuntu or Debian, amd64 or arm64. Re-run it to upgrade.

curl -fsSLO https://raw.githubusercontent.com/ryuzcorp/noite/main/docker/compose.yaml docker compose up -d

Boots a local trial on http://localhost:9080 with no .env at all.

Docker Compose resource → repo ryuzcorp/noite Compose file: docker/compose.yaml · branch main

Set the domain and secrets as environment variables, then deploy.

Service: ghcr.io/ryuzcorp/noite:alpha Volume: /data · Domain: *.<your-domain> → port 80

One service, one volume, and R2, Tigris or a RustFS service as the bucket.

Full install guide →

07 · FAQ

Questions, answered.

Can I migrate an app from Cloudflare Workers?

Often, yes, with some limits. Noite runs apps on celld, which supports fetch handlers, Durable Objects, D1, R2, KV, Queues, Workflows, Cron and static assets, and reads your existing wrangler.jsonc. Bindings outside that list won't work, and Wrangler config keys celld doesn't accept have to be removed. celld's docs list the supported APIs in detail.

How big a server do I need?

2 GB of RAM is enough to start. Idle apps sleep and give their memory back, so many small apps fit on one box.

Do I need a domain?

Not to try it. The installer falls back to <your-ip>.sslip.io, which works with no DNS setup. For real use, point *.yourdomain at the server.

How do updates work?

Re-run the install command. It keeps your configuration and secrets, pulls the newest release on your channel and restarts.

What does it cost?

Noite is open source under Apache-2.0. You pay for your server and your bucket, nothing else.

Can my team use it?

Yes. Invite people with codes and give them view, push or admin on each app. Multi-tenant mode sandboxes everyone's code from the platform.

08 · Token · Solana · pre-launch

The platform is yours. So is the coin.

Noite runs on a server someone rents, in a bucket they own. $NOITE is that same idea at the money layer: one coin that pays for the compute, the memory and the storage your apps sit on, wallet to wallet, with no invoice and no vendor between you and the machine. It launches on Solana. Coming soon.

What $NOITE is for

  • 01Rent a cell, not a plan. Self-hosting stays Apache-2.0 and free, exactly as it is today. When you would rather not run the box yourself, $NOITE rents you a cell on somebody else's Noite install.
  • 02Pay the operator directly. Any install can price its spare CPU, memory and storage in $NOITE, so the coin reaches the person who runs the hardware instead of a cloud account department.
  • 03Keep a cell warm. Hold $NOITE and a rented cell stays awake, so the app you actually use never pays the cold-start tax.
  • 04Pay for storage wherever the bucket lives. R2, S3, Tigris or the bundled store: $NOITE settles the bytes it holds.
  • 05Build on the shared runners. Prebuilt deploys and CI minutes on the network's runners, paid per build in $NOITE.
  • 06Steer the runner. Holders vote on what the runner ships next: quotas, defaults, and which platforms get support.

Where it goes live

The contract address is published on this page first, then on @runNoite. Nothing else speaks for $NOITE, and nobody will DM you about it. Check the mint against this page before you buy anything.

NETWORK
Solana
STANDARD
SPL
STATUS
Pre-launch
SOURCE
@runNoite

$NOITE is how you pay for other people's servers, not how self-hosting is measured. Install Noite yourself and you still pay nobody.

Contract address

Coming soon · minted at launch

Not an investment. $NOITE exists to pay for compute and storage, nothing else.

Your next app is one push away.

curl -fsSL https://noite.run/run.sh | bash -s install