diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile
new file mode 100644
index 0000000..f010fa0
--- /dev/null
+++ b/.gitpod.Dockerfile
@@ -0,0 +1,24 @@
+FROM gitpod/workspace-base:latest
+
+# ------------------------------------
+# Install Go
+# ------------------------------------
+ENV GO_VERSION=1.20
+
+ENV GOPATH=$HOME/go-packages
+ENV GOROOT=$HOME/go
+ENV PATH=$GOROOT/bin:$GOPATH/bin:$PATH
+RUN curl -fsSL https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz | tar xzs \
+ && printf '%s\n' 'export GOPATH=/workspace/go' \
+ 'export PATH=$GOPATH/bin:$PATH' > $HOME/.bashrc.d/300-go
+
+# ------------------------------------
+# Install TinyGo
+# ------------------------------------
+ARG TINYGO_VERSION="0.27.0"
+RUN wget https://github.com/tinygo-org/tinygo/releases/download/v${TINYGO_VERSION}/tinygo_${TINYGO_VERSION}_amd64.deb
+RUN sudo dpkg -i tinygo_${TINYGO_VERSION}_amd64.deb
+RUN rm tinygo_${TINYGO_VERSION}_amd64.deb
+
+RUN go install github.com/go-task/task/v3/cmd/task@latest
+RUN go install -v golang.org/x/tools/gopls@latest
diff --git a/.gitpod.yml b/.gitpod.yml
new file mode 100644
index 0000000..527c76d
--- /dev/null
+++ b/.gitpod.yml
@@ -0,0 +1,2 @@
+image:
+ file: .gitpod.Dockerfile
diff --git a/Taskfile.yml b/Taskfile.yml
index 48d8d48..a55b2d1 100644
--- a/Taskfile.yml
+++ b/Taskfile.yml
@@ -25,7 +25,9 @@ tasks:
#TAG: "v0.3.5"
#TAG: "v0.3.6" # next release
#TAG: "v0.3.7" # next release (this is a pre-release)
- TAG: "v0.3.8"
+ #TAG: "v0.3.8"
+ TAG: "v0.3.9"
+ #TAG: "v0.4.0"
cmds:
- echo "📦 Generating release..."
@@ -36,13 +38,13 @@ tasks:
remove-tag:
env:
- TAG: "v0.3.8"
+ TAG: "v0.3.9"
cmds:
- git tag -d ${TAG}
build-releases:
env:
- TAG: "v0.3.8"
+ TAG: "v0.3.9"
cmds:
- |
cd capsule-cli
@@ -75,7 +77,7 @@ tasks:
build-push-docker-image:
vars:
IMAGE_BASE_NAME: "capsule-http"
- IMAGE_TAG: "0.3.8"
+ IMAGE_TAG: "0.3.9"
cmds:
- echo "👋 {{.IMAGE_BASE_NAME}}-{{.GOOS}}-{{.GOARCH}}:{{.IMAGE_TAG}}"
- |
diff --git a/capsule-http/Taskfile.yml b/capsule-http/Taskfile.yml
index ad79cd5..0ecc0bf 100644
--- a/capsule-http/Taskfile.yml
+++ b/capsule-http/Taskfile.yml
@@ -63,7 +63,7 @@ tasks:
GOOS: "linux"
GOARCH: "arm64"
IMAGE_BASE_NAME: "capsule-http"
- IMAGE_TAG: "0.3.8"
+ IMAGE_TAG: "0.3.9"
cmds:
- |
IMAGE_NAME="${IMAGE_BASE_NAME}-${GOOS}-${GOARCH}"
@@ -365,6 +365,17 @@ tasks:
-target wasi ./main.go
ls -lh *.wasm
+ start-index-html:
+ env:
+ HTTP_PORT: '7777'
+ WASM_FILE: './functions/index-html/index.wasm'
+ cmds:
+ - |
+ echo "🚀 Testing hey..."
+ ./capsule-http --wasm=${WASM_FILE} --httpPort=${HTTP_PORT}
+
+
+
test-index-html:
env:
DATA: 'Bob Morane'
diff --git a/capsule-http/functions/hello-world/Dockerfile b/capsule-http/functions/hello-world/Dockerfile
index 5b8af31..2ff050c 100644
--- a/capsule-http/functions/hello-world/Dockerfile
+++ b/capsule-http/functions/hello-world/Dockerfile
@@ -1,4 +1,4 @@
-FROM botsgarden/capsule-http-linux-arm64:0.3.8
+FROM botsgarden/capsule-http-linux-arm64:0.3.9
COPY hello-world.wasm .
EXPOSE 8080
CMD ["/capsule-http", "--wasm=./hello-world.wasm", "--httpPort=8080"]
diff --git a/capsule-http/functions/index-html/README.md b/capsule-http/functions/index-html/README.md
new file mode 100644
index 0000000..7f1b9d1
--- /dev/null
+++ b/capsule-http/functions/index-html/README.md
@@ -0,0 +1,10 @@
+# Serving HTML with Capsule HTTP server
+
+```bash
+# build and install capsule-http
+task install
+# build the wasm module
+task build
+# serve the wasm module
+task serve
+```
diff --git a/capsule-http/functions/index-html/Taskfile.yml b/capsule-http/functions/index-html/Taskfile.yml
new file mode 100644
index 0000000..9be943d
--- /dev/null
+++ b/capsule-http/functions/index-html/Taskfile.yml
@@ -0,0 +1,35 @@
+version: '3'
+
+# capsctl usages
+tasks:
+
+ # build capsule-http and deploy on OVH
+ install:
+ cmds:
+ - |
+ echo "📦 Building capsule-http..."
+ cd ../..
+ pwd
+ env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o capsule-http
+ ls -lh capsule-http
+ sudo cp capsule-http /usr/local/bin/capsule-http
+ capsule-http --version
+
+ build:
+ cmds:
+ - |
+ echo "📦 Building index.wasm module..."
+ tinygo build -o index.wasm \
+ -scheduler=none \
+ --no-debug \
+ -target wasi ./main.go
+ ls -lh *.wasm
+
+ serve:
+ env:
+ HTTP_PORT: '7070'
+ WASM_FILE: './index.wasm'
+ cmds:
+ - |
+ capsule-http --wasm=${WASM_FILE} --httpPort=${HTTP_PORT}
+
diff --git a/capsule-http/functions/index-html/index.html b/capsule-http/functions/index-html/index.html
new file mode 100644
index 0000000..9951fa9
--- /dev/null
+++ b/capsule-http/functions/index-html/index.html
@@ -0,0 +1,24 @@
+
+
+
+ Capsule 💜 Wasm & Wazero
+
+
+
+
+
+
+
+
👋 Hello World 🌍
+ Served with 💜 by Capsule [HTTP] v0.3.9 🥒 [cucumber] 💊
+ 🎉 Happily built thanks to Wazero
+
+
+
+
+
diff --git a/capsule-http/functions/index-html/main.go b/capsule-http/functions/index-html/main.go
index f42eaa1..25e47f4 100644
--- a/capsule-http/functions/index-html/main.go
+++ b/capsule-http/functions/index-html/main.go
@@ -1,24 +1,28 @@
-// Package main
+// Package main, this module is serving HTML
package main
import (
+ _ "embed"
capsule "github.com/bots-garden/capsule-module-sdk"
)
+var (
+ //go:embed index.html
+ html []byte
+)
+
func main() {
- capsule.SetHandleHTTP(Handle)
+ capsule.SetHandleHTTP(func (param capsule.HTTPRequest) (capsule.HTTPResponse, error) {
+ return capsule.HTTPResponse{
+ TextBody: string(html),
+ Headers: `{
+ "Content-Type": "text/html; charset=utf-8",
+ "Cache-Control": "no-cache",
+ "X-Powered-By": "capsule-module-sdk"
+ }`,
+ StatusCode: 200,
+ }, nil
+ })
}
-// Handle function
-func Handle(param capsule.HTTPRequest) (capsule.HTTPResponse, error) {
-
- return capsule.HTTPResponse{
- TextBody: "👋 Hello World! 🌍
",
- Headers: `{
- "Content-Type": "text/html; charset=utf-8",
- "Cache-Control": "no-cache",
- "X-Powered-By": "capsule-module-sdk"
- }`,
- StatusCode: 200,
- }, nil
-}
+
diff --git a/docs/capsule-http-faas-mode.md b/docs/capsule-http-faas-mode.md
index 282ed49..4a2fd11 100644
--- a/docs/capsule-http-faas-mode.md
+++ b/docs/capsule-http-faas-mode.md
@@ -10,7 +10,7 @@ A Capsule HTTP server can start/spawn other Capsule HTTP server processes.
### Install the last version of Capsule HTTP
```bash
-VERSION="v0.3.8" OS="linux" ARCH="arm64"
+VERSION="v0.3.9" OS="linux" ARCH="arm64"
wget -O capsule-http https://github.com/bots-garden/capsule/releases/download/${VERSION}/capsule-http-${VERSION}-${OS}-${ARCH}
chmod +x capsule-http
sudo cp capsule-http /usr/local/bin/capsule-http
@@ -24,7 +24,7 @@ capsule-http --version
**CapsCtl** is a CLI to send commands to the Capsule HTTP server when it is unning in **FaaS** mode.
```bash
-VERSION="v0.3.8" OS="linux" ARCH="arm64"
+VERSION="v0.3.9" OS="linux" ARCH="arm64"
wget -O capsctl https://github.com/bots-garden/capsule/releases/download/${VERSION}/capsctl-${VERSION}-${OS}-${ARCH}
chmod +x capsctl
sudo cp capsctl /usr/local/bin/capsctl
@@ -35,7 +35,6 @@ capsctl --version
## Start Capsule HTTP FaaS mode
```bash
-CAPSULE_DOMAIN="http://localhost" \
CAPSULE_FAAS_TOKEN="ILOVEPANDAS" \
capsule-http \
--wasm=./functions/index-page/index-page.wasm \
@@ -43,17 +42,26 @@ capsule-http \
--faas=true
```
+> **Remarks:**: if you use SSL certificates, use these options:
+> - `--crt=faas.capsule.foundation.crt`
+> - `--key=faas.capsule.foundation.key`
+
+
You should get an output like this:
```
2023/05/29 15:12:18 🚀 faas mode activated!
2023/05/29 15:12:18 📦 wasm module loaded: ./functions/index-page/index-page.wasm
-2023/05/29 15:12:18 💊 Capsule [HTTP] v0.3.8 🥬 [leafy greens]
+2023/05/29 15:12:18 💊 Capsule [HTTP] v0.3.9 🥒 [cucumber]
http server is listening on: 8080 🌍
```
-> In a future version, the wasm file won't be mandatory anymore.
+> **Remarks:**
+> - the wasm file (`--wasm`) is optional (a default message is served if not specified)
+> - `CAPSULE_FAAS_TOKEN` is used to authenticate the `capsctl` CLI
+
+## Start a function
-## Launch another Capsule HTTP server
+With the FaaS mode activated, you can start functions. It' like running another **Capsule HTTP** processes (one wasm function == one Capsule HTTP process).
```bash
export CAPSULE_FAAS_TOKEN="ILOVEPANDAS"
@@ -67,13 +75,14 @@ capsctl \
--revision=green \
--description="this the hello module, green revision" \
--env='["MESSAGE=🟢","GREETING=🤗"]' \
- --path="/usr/local/bin/capsule-http" \
--wasm=./functions/hello-green/hello-green.wasm
```
-> - `--stopAfter=10` this will stop the Capsule HTTP server process after 10 seconds
+> - `--stopAfter=10` this will stop the Capsule HTTP server process after 10 seconds ()optional
> - `--stopAfter` is not mandatory (then the Capsule HTTP server process will never stop)
-> - if the process is stopped, the Capsule HTTP server will be restarted at every call
-> - `--path` means you can use various version of Capsule HTTP
+> - if the process is stopped, the Capsule HTTP server will be restarted at next call
+> - `--description=` is optional
+> - `--env='["MESSAGE=🟢","GREETING=🤗"]'` allows to pass environment variables to the function (optional)
+> - `--wasm`: where to find the wasm file
**Now you can use this URL `http://localhost:8080/functions/hello/green` to call the hello green function**
@@ -85,20 +94,36 @@ curl -X POST http://localhost:8080/functions/hello/green \
-d "Bob Morane"
```
-## Launch another Capsule HTTP server process
+### Default revision
+
+If you don't specify a revision, the default revision is called **default**, then you can call the function like this:
+
+```bash
+curl -X POST http://localhost:8080/functions/hello \
+-H 'Content-Type: text/plain; charset=utf-8' \
+-d "Bob Morane"
+```
+
+Or like this:
+
+```bash
+curl -X POST http://localhost:8080/functions/hello/default \
+-H 'Content-Type: text/plain; charset=utf-8' \
+-d "Bob Morane"
+```
+
+> 👋 the revision concept is useful to handle several version of a wasm module/function.
+
+## Launch another function
```bash
export CAPSULE_FAAS_TOKEN="ILOVEPANDAS"
-export CAPSULE_INSTALL_PATH="/usr/local/bin/capsule-http"
+export CAPSULE_MAIN_PROCESS_URL="http://localhost:8080"
capsctl \
--cmd=start \
- --stopAfter=10 \
--name=hello \
--revision=blue \
- --description="this the hello module, blue revision" \
- --env='["MESSAGE=🔵","GREETING=🎉"]'\
- --path="/usr/local/bin/capsule-http" \
--wasm=./functions/hello-blue/hello-blue.wasm
```
@@ -112,7 +137,7 @@ curl -X POST http://localhost:8080/functions/hello/blue \
-d "Bob Morane"
```
-## Stop and remove a running Capsule HTTP server process
+## Drop: stop and remove a running function
```bash
export CAPSULE_FAAS_TOKEN="ILOVEPANDAS"
@@ -149,3 +174,29 @@ curl -X POST http://localhost:8080/functions/hello/green \
-H 'Content-Type: text/plain; charset=utf-8' \
-d "Bob Morane"
```
+
+## Download the wasm module before starting the function
+
+You can specify to the Capsule HTTP process with the `--url` option, where to download the wasm file and where to save it before starting with the `--wasm` option:
+
+```bash
+export CAPSULE_FAAS_TOKEN="ILOVEPANDAS"
+export CAPSULE_MAIN_PROCESS_URL="http://localhost:8080"
+
+capsctl \
+ --cmd=start \
+ --name=hello \
+ --revision=0.0.1 \
+ --wasm= ./store/hello.0.0.1.wasm \
+ --url=http://wasm.files.com/hello/0.0.1/hello.0.0.1.wasm
+```
+
+### Authentication of the downlad
+
+If you need to provide an authentication token, you can use these options:
+
+```bash
+--authHeaderName="PRIVATE-TOKEN" \
+--authHeaderValue="${GITLAB_WASM_TOKEN}" \
+```
+
diff --git a/docs/capsule-http-install-pi.md b/docs/capsule-http-install-pi.md
new file mode 100644
index 0000000..94c45bf
--- /dev/null
+++ b/docs/capsule-http-install-pi.md
@@ -0,0 +1,68 @@
+# Run a FaaS on a Raspberry PI
+
+> I did this on a Pi3A+ with the Raspberry PI OS Lite 64-bit
+
+## Install Capsule HTTP
+
+```bash
+# connect to the PI
+ssh k33g@capsulezero.local
+
+## Install Capsule HTTP
+VERSION="v0.3.9" OS="linux" ARCH="arm64"
+wget -O capsule-http https://github.com/bots-garden/capsule/releases/download/${VERSION}/capsule-http-${VERSION}-${OS}-${ARCH}
+chmod +x capsule-http
+sudo cp capsule-http /usr/local/bin/capsule-http
+rm capsule-http
+capsule-http --version
+```
+
+Or you can copy the appropriate Capsule HTTP binary from your computer to the RPI:
+
+```bash
+scp capsule-http-v0.3.9-linux-arm64 k33g@capsulezero.local:./
+```
+
+## Start Capsule HTTP FaaS mode
+
+```bash
+ssh k33g@capsulezero.local -f "capsule-http --httpPort=8080 --faas=true"
+```
+
+Try: `curl http://capsulezero.local:8080`, you should get `Capsule [HTTP] v0.3.9 🥒 [cucumber][faas]`
+
+
+## Deploy some functions
+
+```bash
+# copy the functions to the RPI
+cd capsule-http/tests/faas
+scp -r ./functions k33g@capsulezero.local:./
+```
+
+> requirement, install **CapsCtl**: [capsule-http-faas-mode](capsule-http-faas-mode.md)
+
+```bash
+# start a function using capsctl
+export CAPSULE_MAIN_PROCESS_URL="http://capsulezero.local:8080"
+capsctl \
+ --cmd=start \
+ --stopAfter=10 \
+ --name=hello \
+ --revision=green \
+ --env='["MESSAGE=🟢","GREETING=🤗"]' \
+ --wasm=./functions/hello-green/hello-green.wasm
+```
+
+```bash
+# Call the function
+curl -X POST http://capsulezero.local:8080/functions/hello/green \
+-H 'Content-Type: text/plain; charset=utf-8' \
+-d "Bob Morane"
+```
+
+## Stop Capsule HTTP FaaS mode
+
+```bash
+ssh k33g@capsulezero.local -f "pkill capsule-http"
+```
\ No newline at end of file
diff --git a/docs/capsule-http-serve-html.md b/docs/capsule-http-serve-html.md
new file mode 100644
index 0000000..09e46de
--- /dev/null
+++ b/docs/capsule-http-serve-html.md
@@ -0,0 +1,83 @@
+# Serve HTML with Capsule HTTP, step by step
+
+## Create an HTML file: `index.html`
+
+```html
+
+
+
+ Capsule 💜 Wasm & Wazero
+
+
+
+
+
+
+
+
👋 Hello World 🌍
+ Served with 💜 by Capsule [HTTP] v0.3.9 🥒 [cucumber] 💊
+ 🎉 Happily built thanks to Wazero
+
+
+
+
+
+```
+
+## Create a new WASM module
+
+```bash
+go mod init index
+touch main.go
+```
+
+> `main.go`
+```golang
+package main
+
+import (
+ _ "embed"
+ capsule "github.com/bots-garden/capsule-module-sdk"
+)
+
+var (
+ //go:embed index.html
+ html []byte
+)
+
+func main() {
+ capsule.SetHandleHTTP(func (param capsule.HTTPRequest) (capsule.HTTPResponse, error) {
+ return capsule.HTTPResponse{
+ TextBody: string(html),
+ Headers: `{
+ "Content-Type": "text/html; charset=utf-8",
+ "Cache-Control": "no-cache",
+ "X-Powered-By": "capsule-module-sdk"
+ }`,
+ StatusCode: 200,
+ }, nil
+ })
+}
+```
+
+## Build the module
+
+```bash
+tinygo build -o index.wasm \
+ -scheduler=none \
+ --no-debug \
+ -target wasi ./main.go
+```
+
+## Serve the module
+
+```bash
+capsule-http --wasm=./index.wasm --httpPort=7070
+```
+
+Go to [http://localhost:7070](http://localhost:7070) with your favorite browser.
diff --git a/docs/docker-capsule-http.md b/docs/docker-capsule-http.md
index 9b1e9a9..6b54c06 100644
--- a/docs/docker-capsule-http.md
+++ b/docs/docker-capsule-http.md
@@ -1,8 +1,8 @@
# 🐳 Capsule HTTP Docker image
-!!! info "Capsule HTTP Docker images v0.3.8 🥬 [leafy greens]"
- - `botsgarden/capsule-http-linux-arm64:0.3.8`
- - `botsgarden/capsule-http-linux-amd64:0.3.8`
+!!! info "Capsule HTTP Docker images v0.3.9 🥒 [cucumber]"
+ - `botsgarden/capsule-http-linux-arm64:0.3.9`
+ - `botsgarden/capsule-http-linux-amd64:0.3.9`
> https://hub.docker.com/repositories/botsgarden
@@ -13,7 +13,7 @@
```bash
GOOS="linux"
GOARCH="arm64"
-IMAGE_TAG="0.3.8"
+IMAGE_TAG="0.3.9"
IMAGE_NAME="botsgarden/capsule-http-${GOOS}-${GOARCH}"
docker run \
@@ -29,7 +29,7 @@ docker run \
Create a new `Dockerfile`:
```dockerfile
-FROM botsgarden/capsule-http-linux-arm64:0.3.8
+FROM botsgarden/capsule-http-linux-arm64:0.3.9
COPY hello-world.wasm .
EXPOSE 8080
CMD ["/capsule-http", "--wasm=./hello-world.wasm", "--httpPort=8080"]
diff --git a/docs/getting-started-cli.md b/docs/getting-started-cli.md
index 81d3e23..3be2e3e 100644
--- a/docs/getting-started-cli.md
+++ b/docs/getting-started-cli.md
@@ -5,7 +5,7 @@
First, download the last version of the Capsule CLI for the appropriate OS & ARCH (and release version):
```bash
-VERSION="v0.3.8" OS="linux" ARCH="arm64"
+VERSION="v0.3.9" OS="linux" ARCH="arm64"
wget -O capsule https://github.com/bots-garden/capsule/releases/download/${VERSION}/capsule-${VERSION}-${OS}-${ARCH}
chmod +x capsule
```
diff --git a/docs/getting-started-http-ngrok.md b/docs/getting-started-http-ngrok.md
index 310f727..1a09655 100644
--- a/docs/getting-started-http-ngrok.md
+++ b/docs/getting-started-http-ngrok.md
@@ -15,7 +15,7 @@ NGROK_AUTHTOKEN="${YOUR_NGROK_AUTHTOKEN}" \
The ouput will be like this:
```bash
-2023/05/18 11:25:36 💊 Capsule v0.3.8 🥬 [leafy greens] http server is listening on: 6666 🌍
+2023/05/18 11:25:36 💊 Capsule v0.3.9 🥒 [cucumber] http server is listening on: 6666 🌍
2023/05/18 11:25:37 👋 Ngrok tunnel created: https://d298-88-173-112-231.ngrok-free.app
2023/05/18 11:25:37 🤚 Ngrok URL: /home/ubuntu/workspaces/capsule/capsule-http/ngrok.url
```
diff --git a/docs/getting-started-http.md b/docs/getting-started-http.md
index 9ae74cf..fac4014 100644
--- a/docs/getting-started-http.md
+++ b/docs/getting-started-http.md
@@ -5,7 +5,7 @@
First, download the last version of the Capsule HTTP server for the appropriate OS & ARCH (and release version):
```bash
-VERSION="v0.3.8" OS="linux" ARCH="arm64"
+VERSION="v0.3.9" OS="linux" ARCH="arm64"
wget -O capsule-http https://github.com/bots-garden/capsule/releases/download/${VERSION}/capsule-http-${VERSION}-${OS}-${ARCH}
chmod +x capsule-http
```
diff --git a/docs/index.md b/docs/index.md
index edf89e9..a663a76 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,6 +1,7 @@
# Capsule Project: the nano wasm runners
!!! info "What's new?"
+ - `v0.3.9 🥒 [cucumber]`: update of [HDK 0.0.3](https://github.com/bots-garden/capsule-host-sdk) with [Wazero 1.2.0](https://github.com/tetratelabs/wazero/releases/tag/v1.2.0) and [MDK 0.0.2](https://github.com/bots-garden/capsule-module-sdk) (encoding of the HTML string into JSON string, then it's easier to serve HTML)
- `v0.3.8 🥬 [leafy greens]`: 🐛 fixes of the **FaaS** mode
- `v0.3.7 🥦 [broccoli]`: 🚀 **FaaS** mode (documentation in progress) + **NGrok** integration
- `v0.3.6 🫐 [blueberries]`: Prometheus metrics + 🐳 Docker images
@@ -26,7 +27,10 @@ Capsule is a set of **WASM runners**. Right now, the Capsule project is composed
**🎉 That means, since now, it's possible to develop various runners thanks to the Capsule Host SDK**
-> Tutorials are coming soon!
+#### Tutorials
+> More tutorials are coming soon!
+
+- [Capsule: the WASM runners project](https://k33g.hashnode.dev/capsule-the-wasm-runners-project): with this blog post I explain how to create WASM modules (with the **MDK**) for the Capsule CLI and the Capsule HTTP server, but too, how to create your Capsule application (with the **HDK**).
## What does a **WASM Capsule module** look like?
diff --git a/go.work b/go.work
index d9b2f45..12ed34d 100644
--- a/go.work
+++ b/go.work
@@ -1,20 +1,20 @@
go 1.20
use (
- ./capsule-http/functions/hello-world
- ./capsule-http/functions/hey
- ./capsule-http/functions/index-html
- ./capsule-http/tests/faas/functions/index-page
- ./capsule-http/tests/faas/functions/hello-default
- ./capsule-http/tests/faas/functions/hello-green
- ./capsule-http/tests/faas/functions/hello-blue
- ./capsule-http/tests/faas/functions/hello-orange
- ./capsule-http
- ./capsule-cli
- ./capsule-cli/functions/hello
- ./capsule-cli/functions/hey-people
- ./capsule-cli/functions/mem-db
- ./capsule-cli/functions/redis-db
- ./capsctl
+ ./capsctl
+ ./capsule-cli
+ ./capsule-cli/functions/hello
+ ./capsule-cli/functions/hey-people
+ ./capsule-cli/functions/mem-db
+ ./capsule-cli/functions/redis-db
+ ./capsule-http
+ ./capsule-http/functions/hello-world
+ ./capsule-http/functions/hey
+ ./capsule-http/functions/index-html
+ ./capsule-http/tests/faas/functions/hello-blue
+ ./capsule-http/tests/faas/functions/hello-default
+ ./capsule-http/tests/faas/functions/hello-green
+ ./capsule-http/tests/faas/functions/hello-orange
+ ./capsule-http/tests/faas/functions/index-page
)
diff --git a/mkdocs.yml b/mkdocs.yml
index b101fe2..077bd9d 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -21,6 +21,9 @@ nav:
- 🛠️ Host functions: host-functions-intro.md
- 🐳 Capsule HTTP Docker image: docker-capsule-http.md
- 🚀 Capsule HTTP FaaS mode: capsule-http-faas-mode.md
+ - 🥘 Recipes:
+ - Serve HTML: capsule-http-serve-html.md
+ - Install Capsule on a Pi: capsule-http-install-pi.md
- 🏭 Capsule HTTP Enterprise: capsule-http-enterprise.md
theme:
diff --git a/release/README.md b/release/README.md
index b5570da..4c80425 100644
--- a/release/README.md
+++ b/release/README.md
@@ -6,16 +6,14 @@
👋 **be on the main branch**
+Last release: `v0.3.9 🥒 [cucumber]`
Last release: `v0.3.8 🥬 [leafy greens]`
Last release: `v0.3.7 🥦 [broccoli]`
### Update documentation content with the new tag
-- `docs/getting-started-cli.md`
-- `docs/getting-started-http.md`
-- `docs/index.md`
-- `docs/docker-capsule-http.md`
-- `docks/capsule-http-faas-mode.md`
+Check every documents:
+- `docs/*.md`
### Update version number in Go source
diff --git a/things.todo b/things.todo
index 5c09edc..5083193 100644
--- a/things.todo
+++ b/things.todo
@@ -1,17 +1,11 @@
# TODO
-- documentation: capsule is a set of runners
- guide for the host functions
- guide for the SDK / PDK
-- first release of the SDK and PDK (or MDK==module development kit)
## Capsule http & CLI
- How to use STDIN/STDOUT/STDERR
-- Create the Docker images for every runner
-- 🧩 finalize the first version of capsule builder (ide like)
-- Create a mod file for local build https://stackoverflow.com/questions/68764637/how-to-use-an-alternate-go-mod-file-for-local-development
-- Load wasm plugin from url +with token
- Load wasm plugin from S3 +with token
- https://min.io/docs/minio/linux/developers/go/API.html
- https://hub.docker.com/r/bitnami/minio/
@@ -23,13 +17,10 @@
## Capsule http
- monitoring features
-- protect the routes
- hot reload of the wasm module
## Host functions
-- Redis
-- Prometheus?
- CouchBase?
- PostGreSQL?
- MQTT?