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 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 the additional instances.
Then run the following command:
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 rollback by just changing the alias.
But if you still want to remove it, it is possible using 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 either
Send us an email at email@example.com
with your desired email address. We will reply with validation codes similar to
Sparkling Red-handed Tamarin
to both your old and new email addresses. Upon receiving a response with the codes, we will then proceed with the change.
Deployments belonging to the OSS plan have half the resources of a paid plan.
At the moment there is no way to change this. We do have this on the roadmap though!
Deployments are immutable. This means they cannot be 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 enables 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, share it with co-workers or clients and then after it is confirmed it works you can upgrade it to production with a single command,
- 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 in the deployment process.
Now deployments must
expose a single port
running an HTTP or WebSocket server. However, using Docker it is possible to run a database in the same container of the HTTP API consuming it.
Note that due the immutability of deployments there are many cases where you will lose the data of your database.
- A new deployment will have a newly created, fresh database.
- Each instance of the same deployment will have it's own data.
- If the deployment freezes (has zero running instances), when it unfreezes the database will be cleared.
We are working on a domain transfer tool to make this process easy. In the meantime you can contact us at firstname.lastname@example.org
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:
- From the current owner of the domain:
now domain rm domain.com
- From the desired owner of the domain:
now domain add domain.com
After you have done this, the desired owner will be in possession of the domain and 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 the Now deployments are HTTPS by default.
As a workaround you can setup a secret with a value starting with
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 behaviour can be completely avoided using the
command as described in 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 our guide on how to setup a redirect:
Yes, you can! Remember to expose a single port running an HTTP server.
If your bot is working in the background; before removing it, it is recommended that you manually scale your current bot deployment down to zero instances then deploy a new version. This avoids having your bot running multiple times.
now scale my-bot-hjnfyyugps.now.sh 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 email@example.com
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.
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 firstname.lastname@example.org
with the following information:
- Company name
- Billing address
- Postal Code
- 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 define up to 10 levels of subdomains for a custom domain you own. For
.now.sh 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 zeit.co
, you can still access the source when going to
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.
doesn't provide you with an email server for your custom domains. You can use
to setup MX records pointing to any external service.
Any HTTP authentication should be implemented inside the deployment code
For static sites you can use zeit/serve
You can read how to use private npm modules on our guide:
For private GitHub repositories you can follow the GitHub guide:
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.
No, there is no way to release a domain after it was purchased until the next renewal date, because of that 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:
At the moment this is not possible.
It is not possible to download files of a deployment from the CLI nor the web, contact us at email@example.com
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.
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.
Yes, it is possible under the
/tmp folder. Note that each instance has it's own temporary directory, this mean 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 it's own temporary folder.
- If the deployment freeze (has zero running instances) when it unfreeze 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
ZEIT's login is serverless. You just need your email address and don't need to remember yet another password.
We do not currently offer support for IPv6.
Now does not block any incoming or outgoing requests.
We do not currently offer support for the 3-D Secure protocol.