Note: This documentation is for version 1 of the Now platform. For the latest features, please see the version 2 documentation. If you have yet to upgrade, see the upgrade guide.

Frequently Asked Questions

Check our status page and Twitter status account to find current and real time updates.

Whenever you upload files using Now CLI or Now Desktop, a new deployment is created. This deployment will only have one instance by default. However, every deployment can be scaled to multiple instances.

Therefore, each "deployment" can consist of multiple "instances".

Both personal and team accounts may own unlimited deployments. However, the number of running instances is limited to your personal or team account's current plan.

If you exceed your paid plan's limit for running instances, you will be charged the On Demand price (check the On Demand plan) for additional instances.

Create a configuration file with the keys alias and name similar to this one:

  "name": "my-app",
  "alias": ""

Then run the following command:

now && now alias

It will deploy your application under the configured name and then alias the latest deployment with the configured alias.

Note that you do not need to remove an old deployment since it will eventually freeze. If you keep it, you can easily roll back by just changing the alias.

But if you still want to remove it, run the following command:

now rm my-app --safe --yes

This command will remove all your non-aliased deployments with the name my-app. This can be run after the now alias command to remove the previous deployment of the project.

now && now alias && now rm my-app --safe --yes

Now will deploy to the nearest region available automatically by default. You can override this behavior by either:

You can change your email address from within your account settings page.

Each instance has up to 1GB of RAM and 1 CPU in any paid plan.

Deployments belonging to the OSS plan have half the resources of a paid plan.

The storage limit of any plan is shown under the plan on the pricing page.

At the moment there is no way to change this. We do have this on the roadmap though!

For enterprise customers, we offer customizations which include more resources for deployments.

Deployments are immutable. This means they cannot be modified after being created. To update your application, you need to deploy the new version using the command now. After that, you will get a new unique deployment URL similar to

This model offers a few interesting benefits:

  • Easy rollback
    You can just move your alias to an older deployment to have immediate rollbacks.
  • Staging and production deployments
    A new deployment gives you a unique URL you can use as staging to share with co-workers or clients. After it is confirmed that it works, you can upgrade it to production with a single command: now alias.
  • Zero-Downtime deployment
    Most services will require you to restart your server (eg. Node.js). Thanks to Now, you get a new deployment. You can wait until the deployment is ready to change the alias and avoid any downtime during the deployment process.

Now deployments must expose a single port running an HTTP or WebSocket server. With Docker, however, it is possible to run a database in the same container of the HTTP API consuming it.

However, due to the stateless nature of our deployments, everything you store will be reset upon the deployment instance getting recycled. The data also won't be shared across instances when scaling and will be reset when unfreezing.

We recommend that you run your database on a database hosting service such as Cosmos DB, Redis Labs, MongoDB Atlas, or Compose. With these services, you will be able to match the regional locations available in Now and scale individually to provide equal service to your database than with your app deployments.

We are working on a domain transfer tool to make this process easier.

For now, it is not possible to transfer a domain into ZEIT Domains, but you can change your domain nameservers to point to to use Now as a DNS.

If you need to tranfer your domain out of ZEIT Domains, you can contact us at with the domain you would like to transfer.

If you would like to move a domain from one ZEIT account to another, you could do so by running the following commands:

  1. From the current owner of the domain: now domain rm
  2. From the desired owner of the domain: now domain add

After you have done this, the desired owner will be in possession of the domain and will be able to utilize it with ZEIT and Now.

At the moment Now does not support docker-compose. Keep an eye on the open issue on GitHub to know when it will be supported.

There is no way to disable SSL. All Now deployments are HTTPS by default.

We will always try to replace any environment variable where the value starts with an @ with a secret. We have an active issue for this on GitHub.

As a workaround, you can set up a secret with a value starting with @.

Deployments have a default scale configuration which sets each deployment to freeze after a while from inactivity.

This lets you have any amount of deployments without worrying about your currently running instances. They will be unfrozen when a new request comes and keeps the instance running for a while (eventually freezing from inactivity with no requests again).

This behavior can be completely avoided using the now scale command as described in the previous link.

You can delete a team by going to the 'Identity' section of the team's settings. Please note that this action is irreversible.

Check out our Setting up a Redirect with Now guide for instructions.

Yes, you can! Remember to expose a single port running an HTTP server.

If your bot is working in the background, it is recommended that you manually scale your current bot deployment down to zero instances then deploy a new version before removing it. This avoids having your bot running multiple times.

now scale 0

This will ensure the bot is no longer running before you remove it or deploy a new version.

This is not currently possible to do via the Now CLI, but you can contact us at with your desired nameservers and, after a security verification of the ownership, we can change them for you.

If you add the --public option when deploying, you will not be asked to confirm if you are aware the deployment's contents will be made public.

now --public

Check "Why does my deployment occasionally have long response times?"

We send a receipt to your email address for every card transaction including a link to download the invoice as a PDF. Your invoice can also be downloaded from the Usage section of your dashboard. For special invoicing requests, please contact us at with the following information:

  • Company name
  • Billing address

    • Country
    • City
    • Postal Code
    • Address
  • Contact phone number
  • VAT number (if applicable)
  • Any additional information you may require

Please note that we can only honor special invoicing requests that come from the personal account's email address or, in the event the request pertains to a team, the team owner's email address.

You can delete your account in your account settings.

You can define up to 10 levels of subdomains for a custom domain you own. For domains you can only use one level.

All the deployments made with a paid account or team are private by default.

If you are logged in to, you can still access the source when going to _src.

Check our WordPress example repository.

Check our Ghost example repository.

The IP addresses of Now deployments are too dynamic and for that reason, we don't provide a list of them.

Our recommendation when connecting to external services (eg. a database) is to use a strong password and SSL.

‚ÄčNow doesn't provide you with an email server for your custom domains. You can use now dns to setup MX records pointing to any external service.

You can read how to use private npm modules on our guide:

Using Private npm Dependencies

For private GitHub repositories you can follow the GitHub guide:

Easier builds and deployments using Git over HTTPS and OAuth

Yes, you can use now alias to move an existing alias from a deployment to another the same way you use it to assign it the first time.

Note that you can not use an alias already used by another user until they remove it.

The actual deletion of a deployment could take around a minute, but sometimes this could take longer. If your deployment is showing side-effects without a request (eg. a process running every N minutes), we recommend that you first scale it to zero instances and then remove it.

We have support for wildcard SSL certificates, but wildcard subdomains are not currently supported.

Since there is no way to release a domain after it was purchased until the next renewal date, we can not give you a refund.

If you do not want to renew a domain purchased with Now Domains, remove it with the following command:

now domain rm

Yes, we do. Let us know if you'd like our help at

This is not currently possible.

It is not possible to download files of a deployment from the CLI nor the web. Contact us at from the personal account's email address or, in the event the request pertains to a team, the team owner's email address, and we can help you.

While we do not have a built-in way to run scheduled tasks, it is possible.

Create a deployment with a basic HTTP service running and initialize a setInterval and a second deployment with the code of your tasks running behind an HTTP server.

Every time you need to run the task the first deployment must send an HTTP request to the second deployment. Using two different deployments will let you change the code of your task without restarting the interval.

Remember to scale the first deployment to always have one running instance.

It depends on your code. Each instance belonging to a paid account or team has 1GB of RAM and 1 CPU (OSS accounts have half of each).

The amount of HTTP requests you can have per instance is based on the previous information and your code.

Your instance limit (based on your plan) is per account not per deployment. For example; if you want to have more than one running deployment you need to share those instances. Using autoscale will let you have N amount of deployments and scale as required.

You can see those metrics on your account or team dashboard.

Yes, it is possible under the /tmp folder. Note that each instance has its own temporary directory, which means you can lose those files under following conditions:

  • A new deployment will have a newly created temporary folder
  • Each instance of the same deployment will have its own temporary folder.
  • If the deployment freeze (has zero running instances) when it unfreezes, the temporary folder will be also cleared.

We recommend that you only do this for temporary files and use now-storage or another storage service for hosting those files indefinitely.

Both our DNS and HTTP(s) load balancing services have sophisticated DDoS protections in place.

Attacks come in very different forms and sizes. Therefore, we offer more advanced protection in the enterprise tiers.

ZEIT's login is serverless. You just need your email address and don't need to remember yet another password.

For custom requirements, you can contact us at

We do not currently offer support for IPv6.

We block ports 25 and 587 on Now deployments to avoid spam. Any other port is available for use.

We do not currently offer support for the 3-D Secure protocol.

We intend to be fully GDPR compliant. Check out our privacy policy for more information.

We do not currently offer support for DNSSEC.

Due to the immutable nature of deployments, each time you run now you will get a new unique URL. To have a custom static URL you need to use the now alias command.

Read more on Aliases and Domains.

You can have a now.staging.json file and a now.json for production and use the parameter --local-config=now.staging.json while deploying (or aliasing) to customize the configuration file to use.