❄️ Self-hosted now deployments
Enjoy effortless deployments with a clone of now on a cloud of your choosing.
Features
⚡️ Deploy docker images viasnow
(orsnow deploy
)🔒 Auto-configured SSL🔃 Auto-scaling
🔮
This is Magic No, it isn't. This CLI abstracts away the complexities of using Kubernetes, cert-manager, Kaniko, and a private Docker Registry together, replicating the functionality provided by now
.
Getting started
> npm i -g @snowjs/cli
# Install CLI tools
> snow install
# Create your kubernetes cluster (GCP)
> snow create
# Get your deployment's IP address
# And create a DNS 'A' record (e.g., myapp.com A 1.2.3.4)
> snow ip
# Deploy
> snow
Supported commands
Detailed descriptions of supported commands at docs/commands.md.
Support | Command | Description |
---|---|---|
<none> | Deploy | |
alias [ls] |
List aliases | |
alias set <deployment> <alias> |
Create alias | |
alias rm <alias> |
Remove alias | |
certs [ls] |
List SSL Certificates | |
certs issue <cn> [<cn>] |
Issue certificate | |
certs rm <cn> |
Remove a certificate | |
create |
Create Kubernetes cluster | |
deploy |
Deploy | |
domains [ls] |
List domains | |
domains add <domain> |
Add domain | |
domains buy <domain> |
Buy domain | |
domains rm <domain> |
Remove domain | |
login |
Login | |
logout |
Logout | |
ls |
List deployments | |
install |
Install CLI tools (via brew) | |
ip |
Get IP Address of deployments | |
rm <name> |
Remove deployment | |
scale <deployment> <min> [<max>] |
Scale deployment | |
secrets [ls] |
List secrets | |
secrets add <key> <value> |
Create secret | |
secrets rename <old-key> <new-key> |
Rename secret | |
secrets rm <key> |
Remove secret |
Tell me more
The essential CLI commands to understand are snow create
and snow deploy
.
Dependencies
The following CLI tools (installable via snow install
) are necessary to orchestrate the entire end-to-end process, from Kubernetes cluster creation to managing your deployments:
kubectl
(for managing deployments, secrets)helm
(for installing [tiller], cert-manager, and ingress-nginx on your cluster)- CLI tool for your cloud provider (e.g.,
gcloud
).
If running Kubernetes locally on Minikube, you will additionally need these cli tools:
docker
(for running local registry)minikube
(for running Kubernetes locally)virtualbox
(for creating docker images)