dics: website documentation

This commit is contained in:
Alexis Couvreur
2023-06-17 17:01:00 -04:00
parent 5bc713822e
commit 4fd8a24e4c
8 changed files with 48 additions and 18 deletions

3
.gitignore vendored
View File

@@ -1,3 +1,4 @@
sablier.yaml
./plugins/traefik/e2e/kubeconfig.yaml
node_modules
node_modules
.DS_Store

View File

@@ -30,3 +30,6 @@ update-doc-version-middleware:
find . -type f \( -name "*.md" -o -name "*.yml" \) -exec sed -i 's/version=v$(LAST)/version=v$(NEXT)/g' {} +
sed -i 's/SABLIER_VERSION=v$(LAST)/SABLIER_VERSION=v$(NEXT)/g' plugins/caddy/Dockerfile.remote
sed -i 's/v$(LAST)/v$(NEXT)/g' plugins/caddy/README.md
docs:
docsify serve docs

View File

@@ -1,31 +1,43 @@
# Sablier
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-8-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->
[![GitHub license](https://img.shields.io/github/license/acouvreur/sablier.svg)](https://github.com/acouvreur/sablier/blob/master/LICENSE)
[![GitHub contributors](https://img.shields.io/github/contributors/acouvreur/sablier.svg)](https://GitHub.com/acouvreur/sablier/graphs/contributors/)
[![GitHub issues](https://img.shields.io/github/issues/acouvreur/sablier.svg)](https://GitHub.com/acouvreur/sablier/issues/)
[![GitHub pull-requests](https://img.shields.io/github/issues-pr/acouvreur/sablier.svg)](https://GitHub.com/acouvreur/sablier/pulls/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![GoDoc](https://godoc.org/github.com/acouvreur/sablier?status.svg)](http://godoc.org/github.com/acouvreur/sablier)
![Latest Build](https://img.shields.io/github/actions/workflow/status/acouvreur/sablier/build.yml?style=flat-square&branch=main)
![Go Report](https://goreportcard.com/badge/github.com/acouvreur/sablier?style=flat-square)
![Go Version](https://img.shields.io/github/go-mod/go-version/acouvreur/sablier?style=flat-square)
![Latest Release](https://img.shields.io/github/release/acouvreur/sablier/all.svg?style=flat-square)
![Latest Release](https://img.shields.io/github/v/release/acouvreur/sablier?style=flat-square&sort=semver)
![Latest PreRelease](https://img.shields.io/github/v/release/acouvreur/sablier?style=flat-square&include_prereleases&sort=semver)
Sablier is an API that start containers for a given duration.
An free and open-source software to bring workloads on demand to your infrastructure.
It provides an integrations with multiple reverse proxies and different loading strategies.
Either because you don't want to overload your raspberry pi or because your QA environment gets used only once a week and wastes resources by keeping your workloads up and running, Sablier is a project that might interest you.
Which allows you to start your containers on demand and shut them down automatically as soon as there's no activity.
## 🎯 Features
![Hourglass](https://raw.githubusercontent.com/acouvreur/sablier/main/docs/img/hourglass.png)
- [Supports the following providers](https://acouvreur.github.io/sablier/#/providers/overview)
- Docker
- Docker Swarm
- Kubernetes
- [Supports multiple reverse proxies](https://acouvreur.github.io/sablier/#/plugins/overview)
- Nginx
- Traefik
- Caddy
- Scale up your workload automatically upon the first request
- [with a themable waiting page]()
- [with a hanging request (hang until service is up)]()
- Scale your workload to zero automatically after a period of inactivity
## Getting started
## 📝 Documentation
## Documentation
## Development
[See the documentation here](https://acouvreur.github.io/sablier/#/)
## Contributors
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->

View File

@@ -2,14 +2,19 @@
# Sablier - Scale to Zero
Sablier is a **free** and **open-source** software that can scale your workloads on demand.
![Demo](assets/img/demo.gif)
Your workloads can be a docker container, a kubernetes deployment and more (see [providers](/providers/overview) for the full list).
Sablier is an API that start containers for a given duration.
It provides an integrations with multiple reverse proxies and different loading strategies.
Which allows you to start your containers on demand and shut them down automatically as soon as there's no activity.
![Hourglass](https://raw.githubusercontent.com/acouvreur/sablier/main/docs/img/hourglass.png)
## Glossary
I'll use these terms in order to be provider agnostic.

BIN
docs/assets/img/demo.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

View File

@@ -18,6 +18,8 @@ It leverages the API calls to plugin integration to catch in-flight requests to
| [Nginx](/plugins/nginx) | ✅ | ✅ | ❌ |
| [Caddy](/plugins/caddy) | ✅ | ✅ | ❌ |
*Your Reverse Proxy is not on the list? [Open an issue to request the missing reverse proxy integration here!](https://github.com/acouvreur/sablier/issues/new?assignees=&labels=enhancement%2C+reverse-proxy&projects=&template=reverse-proxy-integration-request.md&title=Add+%60%5BREVERSE+PROXY%5D%60+reverse+proxy+integration)*
## Runtime and Compiled plugins
Some reverse proxies have the capability to evaluate the plugins at runtime (Traefik with Yaegi, NGINX with Lua and JS plugins) which means the reverse proxy provides a way to consume the plugin directly.

View File

@@ -21,4 +21,4 @@ A Provider typically have the following capabilities:
| | [EC2](/providers/ec2) | `ec2` | Work in progress |
| | [Systemd](/providers/systemd) | `systemd` | Work in progress |
*Your Provider is not on the list? Open an issue or a pull request to add this functionnality here!*
*Your Provider is not on the list? [Open an issue to request the missing provider here!](https://github.com/acouvreur/sablier/issues/new?assignees=&labels=enhancement%2C+provider&projects=&template=instance-provider-request.md&title=Add+%60%5BPROVIDER%5D%60+provider)*

View File

@@ -6,6 +6,8 @@ When configuring
The **Dynamic Strategy** provides a waiting page for your session.
![Demo](assets/img/demo.gif)
?> This strategy is well suited for a user that would access a frontend directly and expects to see a loading page.
```plantuml
@@ -13,6 +15,8 @@ The **Dynamic Strategy** provides a waiting page for your session.
User -> Proxy: Website Request
Proxy -> Sablier: Reverse Proxy Plugin Request Session Status
Sablier -> Provider: Request Instance Status
Sablier <-- Provider: Response Instance Status
Proxy <-- Sablier: Returns the X-Sablier-Status Header
alt `X-Sablier-Status` value is `not-ready`
@@ -47,7 +51,10 @@ Proxy -> Sablier: Reverse Proxy Plugin Request Session Status
Sablier -> Provider: Request Instance Status
alt `Instance` status is `not-ready`
Proxy -> Sablier: Reverse Proxy Plugin Request Session Status
Sablier -> Provider: Request Instance Status
Sablier <-- Provider: Response Instance Status
Proxy <-- Sablier: Returns the waiting page
end
Sablier <-- Provider: Response Instance Status