One program runs your sites, their runtimes and the database.
Nextweb brings its own web server, runtimes, and database. You install an application by name and deploy it with two commands.
curl -fsSL https://get.nextwebjs.com | bash
Linux x64. About 45 MB, free to try. On first start it asks for an email address to issue your license. If the license server can't be reached later, Nextweb starts on its last check for up to 7 days and live sites keep serving; new sites wait until it's back.
The installer checks the program's SHA-256 and size against our published
manifest before it keeps it. It doesn't use sudo. Leave off
| bash and curl prints the script,
so you can read it first.
curl -fsSL https://get.nextwebjs.com | bash
./nextweb
...
pkg install wordpress
...
Installation order: php8.3.36-linux-x64 → mariadb-11.4.5-linux-x64 → wordpress
...
wordpress 7.1.3 installed successfully
deploy company-site to www.example.com using wordpress
Site "company-site" deployed for www.example.com (template: wordpress).
...
apply -y
...
Site: company-site (www.example.com)
Allocated site listen port 4001 for company-site
Provisioning database for site company-site...
MariaDB running (socket /tmp/nw-maria-4b18b6219aa4.sock)
Database wp_company_site and user wp_companysite ready
Starting PHP runtime for site...
php-cgi listening on 19100 (2 processes, opcache off)
...
Visit: http://127.0.1.10:4001/
...
┌──────────────────────────────────────────────────────────┐
│ company-site is live → http://127.0.1.10:4001/ │
│ verify: passed · applied in 2.3 s │
└──────────────────────────────────────────────────────────┘
From a run of the first lesson, on one machine: the site answers on that machine's own address.
For a public domain with HTTPS, nginx goes in front, for now.
Each ... marks lines we cut.
Deploy
Deploy, then apply. Nothing starts until you apply.
-
01
deployNames the site, sets its domain, copies in a WordPress of its own, and saves it.
-
02
applySwitches it on. Picks a port, starts MariaDB and PHP, hands the site to the web server, and checks it before saying it's live.
-
03
verifyRuns the same checks again whenever you want: the files, the database settings, the web server, and a page from the site.
-
04
setOptional. Changes a setting, such as another domain.
commitsaves it, and the next apply uses it.
One folder
Everything it installs stays in one folder.
PHP, MariaDB, the configuration, and every site live inside the folder you run Nextweb from. Each site gets its own copy of the application, its own database, its own PHP, and its own port. Node.js is shared in ~/.cache/nextweb.
nextweb the program
nextweb_server/
config/nextweb-services.json the saved configuration
runtime/ PHP and MariaDB, installed once
sites/company-site/
wordpress/ the site's own copy of WordPress
.nextweb/state.json what Nextweb knows about the site
Where it's going
We want Nextweb to be where web software gets published.
You write an application, build it into one package, and the machines you choose install it by name.
Works today
Running applications. On Linux x64, WordPress installs by name and deploys with the two commands above.
Works today
Packaging your own applications. You describe one in a small file, build it into a package, publish it, and install it by name. The second lesson does it start to finish. The package is encrypted; package DRM explains who can open it.
When you get stuck
Nextweb is in beta. If your screen doesn't match the lesson or something breaks, open an issue on GitHub, ask in Discord, or write to support@nextwebjs.com. All three reach the person who builds it. Read a note from Bryan.