❄️ Self-hosted now deployments
Enjoy effortless deployments with a clone of now on a cloud of your choosing.
- ⚡️ Deploy docker images via
snow
(orsnow deploy
) - 🔒 Auto-configured SSL
- 🔃 Auto-scaling
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
.
> 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
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 |
The essential CLI commands to understand are snow create
and snow deploy
.
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)