Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/snowjs/cli
CLI tool for dead-simple serverless Docker deployments on managed Kubernetes services. A self-hosted PaaS. ⚡️
https://github.com/snowjs/cli
cli docker kubernetes now paas serverless snowjs
Last synced: 3 months ago
JSON representation
CLI tool for dead-simple serverless Docker deployments on managed Kubernetes services. A self-hosted PaaS. ⚡️
- Host: GitHub
- URL: https://github.com/snowjs/cli
- Owner: snowjs
- License: mit
- Created: 2018-11-09T23:02:15.000Z (almost 6 years ago)
- Default Branch: secrets
- Last Pushed: 2022-12-04T03:11:14.000Z (almost 2 years ago)
- Last Synced: 2024-06-10T04:35:09.558Z (5 months ago)
- Topics: cli, docker, kubernetes, now, paas, serverless, snowjs
- Language: TypeScript
- Homepage: https://github.com/snowjs/cli/tree/secrets
- Size: 394 KB
- Stars: 410
- Watchers: 3
- Forks: 10
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
> :snowflake: **S**elf-hosted **now** deployments
Enjoy effortless deployments with a clone of [now] on a cloud of your choosing.
### Features
- ⚡️ Deploy docker images via `snow` (or `snow 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
```sh
> 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](docs/commands.md).
| Support | Command | Description |
| ------------------ | ------------------------------------ | ----------------------------- |
| :white_check_mark: | \ | Deploy |
| :white_check_mark: | `alias [ls]` | List aliases |
| :white_check_mark: | `alias set ` | Create alias |
| :white_check_mark: | `alias rm ` | Remove alias |
| :white_check_mark: | `certs [ls]` | List SSL Certificates |
| :white_check_mark: | `certs issue []` | Issue certificate |
| :white_check_mark: | `certs rm ` | Remove a certificate |
| :new: | `create` | Create Kubernetes cluster |
| :white_check_mark: | `deploy` | Deploy |
| :white_check_mark: | `domains [ls]` | List domains |
| :white_check_mark: | `domains add ` | Add domain |
| :no_entry: | `domains buy ` | Buy domain |
| :white_check_mark: | `domains rm ` | Remove domain |
| :white_check_mark: | `login` | Login |
| :white_check_mark: | `logout` | Logout |
| :white_check_mark: | `ls` | List deployments |
| :new: | `install` | Install CLI tools (via brew) |
| :new: | `ip` | Get IP Address of deployments |
| :white_check_mark: | `rm ` | Remove deployment |
| :white_check_mark: | `scale []` | Scale deployment |
| :white_check_mark: | `secrets [ls]` | List secrets |
| :white_check_mark: | `secrets add ` | Create secret |
| :white_check_mark: | `secrets rename ` | Rename secret |
| :white_check_mark: | `secrets rm ` | 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)[cert-manager]: https://github.com/jetstack/cert-manager
[docker registry]: https://github.com/helm/charts/tree/master/stable/docker-registry
[now]: https://github.com/zeit/now-cli
[ingress-nginx]: https://github.com/kubernetes/ingress-nginx
[kaniko]: https://github.com/GoogleContainerTools/kaniko
[kubernetes]: https://kubernetes.io/