, 3 min read
Hosting Static Content with now.sh
now.sh, previously known under zeit.co, which has now rebranded as vercel.com, allows to host static content. There is no PHP, MySQL/MariaDB, Perl, CGI, etc. While surge.sh is super simple to use, in contrast now.sh uses the notion of 'environment', which can be either development, preview, or production.
First install via npm install now
, then cd
to the directory where you have stored your static content. Then, depending on your environment, deployment is as follows:
- Development:
now dev
, no "real" deployment, but rather web-server is started at localhost:3000. Stop with Ctrl-C. - Preview:
now
ornow deploy
- Production:
now deploy --prod
It is not required to step through all the environments in any order. So you can just always deploy to production. Regardless of the environment, now.sh always creates some additional HTML web area with a generated name. This name might look like now-ll1keyjfk.now.sh
.
The now
command has the following options:
$ now -h
> UPDATE AVAILABLE Run `npm i now@latest` to install Now CLI 18.0.0
> Changelog: https://github.com/zeit/now/releases/tag/now@18.0.0
𝚫 now [options] <command | path>
Commands:
Basic
deploy [path] Performs a deployment (default)
dev Start a local development server
init [example] Initialize an example project
ls | list [app] Lists deployments
inspect [id] Displays information related to a deployment
login [email] Logs into your account or creates a new one
logout Logs out of your account
switch [scope] Switches between teams and your personal account
help [cmd] Displays complete help for [cmd]
Advanced
rm | remove [id] Removes a deployment
domains [name] Manages your domain names
dns [name] Manages your DNS records
certs [cmd] Manages your SSL certificates
secrets [name] Manages your secret environment variables
logs [url] Displays the logs for a deployment
teams Manages your teams
whoami Shows the username of the currently logged in user
Options:
-h, --help Output usage information
-v, --version Output the version number
-V, --platform-version Set the platform version to deploy to
-n, --name Set the project name of the deployment
-A FILE, --local-config=FILE Path to the local `now.json` file
-Q DIR, --global-config=DIR Path to the global `.now` directory
-d, --debug Debug mode [off]
-f, --force Force a new deployment even if nothing has changed
-t TOKEN, --token=TOKEN Login token
-p, --public Deployment is public (`/_src` is exposed)
-e, --env Include an env var during run time (e.g.: `-e KEY=value`). Can appear many times.
-b, --build-env Similar to `--env` but for build time only.
-m, --meta Add metadata for the deployment (e.g.: `-m KEY=value`). Can appear many times.
-C, --no-clipboard Do not attempt to copy URL to clipboard
-S, --scope Set a custom scope
--regions Set default regions to enable the deployment on
--prod Create a production deployment
> NOTE: To view the usage information for Now 1.0, run `now help deploy-v1`
Examples:
– Deploy the current directory
$ now
– Deploy a custom path
$ now /usr/src/project
– Deploy with environment variables
$ now -e NODE_ENV=production -e SECRET=@mysql-secret
– Show the usage information for the sub command `list`
$ now help list
now.sh stores your credentials in $HOME/.local/share/now/auth.json
.
Added 24-May-2021: Script now
is no longer maintained. You have to use vercel
instead. Install vercel
as usual: npm install vercel
. Steps for deployment are
vercel login
vercel deploy --prod
My static site on vercel.com is here: klm.vercel.app/blog.
Added 15-Jan-2024: Vercel imposes a limit of at most 5,000 requests per day, when you use the free plan.