The app platform you own.

noite.now · 2026-10-02 · by Long Nguyen ·generic
The app platform you own. A tiny self-hostable PaaS: one command installs it, git push deploys.

The app platform you own.

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.now/run.sh | bash -s install`Copy

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

Read the quickstart →View on GitHub

curl -fsSL https://noite.now/run.sh | bash -s install
Checking the system     Ubuntu 24.04 LTS
Installing Docker
Writing /opt/noite      fresh secrets
Starting Noite          ready
Noite is running. https://app.example.com
git push -u origin main
remote: build ✓  release ✓  deploy ✓
https://hello.example.com

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.now/run.sh | bash -s install`Copy

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`Copy

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`Copy

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

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

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.

Your next app is one push away.

`$curl -fsSL https://noite.now/run.sh | bash -s install`Copy

Quickstart →DocsGitHub

noite.now · 13 links

Comments (0)

No comments yet