diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml new file mode 100644 index 0000000..b6d9a7f --- /dev/null +++ b/.github/workflows/linter.yml @@ -0,0 +1,28 @@ +name: Linter + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + ci: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: latest + + - name: Install markdownlint-cli + run: npm install -g markdownlint-cli + + - name: run markdownlint + run: markdownlint --disable MD013 -- docs/ diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..256a821 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,23 @@ +name: Publish docs via GitHub Pages + +on: + push: + branches: + - main + workflow_dispatch: + +permissions: + contents: write + +jobs: + deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Deploy docs + uses: mhausenblas/mkdocs-deploy-gh-pages@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8535f83 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..2c07333 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.11 diff --git a/README.md b/README.md index e291266..3e54356 100644 --- a/README.md +++ b/README.md @@ -1 +1,53 @@ -# propeller-docs \ No newline at end of file +# Propeller Documentation + +This repo collects the collaborative work on Propeller documentation. + +Documentation is auto-generated from Markdown files in this repo. + +[MkDocs](https://www.mkdocs.org/) is used to serve the docs locally with different theming. + +## Install + +Doc repo can be fetched from GitHub: + +```bash +git clone https://github.com/absmach/propeller-docs.git +``` + +## Prerequisites + +[Python](https://www.python.org/downloads/) 3.7 or higher is required to run MkDocs. + +1. Create a virtual environment: + + ```bash + python -m venv venv + ``` + +2. Activate the virtual environment: + + ```bash + source venv/bin/activate + ``` + +3. Install [MkDocs](https://www.mkdocs.org/#installation) + + ```bash + pip install mkdocs + ``` + +4. Additionally, install [Material theme](https://squidfunk.github.io/mkdocs-material/): + + ```bash + pip install mkdocs-material + ``` + +## Usage + +Use MkDocs to serve documentation: + +```bash +mkdocs serve +``` + +Then just point the browser to [http://127.0.0.1:8000](http://127.0.0.1:8000). diff --git a/docs/architecture.md b/docs/architecture.md new file mode 100644 index 0000000..c79bec1 --- /dev/null +++ b/docs/architecture.md @@ -0,0 +1 @@ +# Architecture diff --git a/docs/developer-guide.md b/docs/developer-guide.md new file mode 100644 index 0000000..8b5d88d --- /dev/null +++ b/docs/developer-guide.md @@ -0,0 +1 @@ +# Developer's Guide diff --git a/docs/getting-started.md b/docs/getting-started.md new file mode 100644 index 0000000..bad5562 --- /dev/null +++ b/docs/getting-started.md @@ -0,0 +1 @@ +# Getting Started diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..5ae3265 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,22 @@ +# Propeller + +**Propeller** is a cutting-edge orchestrator for **WebAssembly (Wasm)** workloads across the **Cloud-Edge continuum**. It enables seamless deployment of Wasm applications from powerful cloud servers to constrained microcontrollers, combining flexibility, security, and performance. + +## 🌟 Features + +- 🌐 **Cloud-Edge Orchestration**: Deploy Wasm workloads effortlessly across diverse environments, from robust cloud servers to lightweight microcontrollers. +- ⚡ **Fast Boot Times**: Take advantage of Wasm's near-instant startup for efficient workload execution. +- 📦 **FaaS Deployment**: Enable Function-as-a-Service (FaaS) capabilities for scalable and event-driven applications. +- 🖥️ **OCI Registry Support**: Push and pull Wasm workloads from OCI-compliant registries for streamlined workflow integration. +- 🔧 **WAMR on Zephyr RTOS**: Deploy lightweight Wasm workloads on constrained devices running Zephyr RTOS via the WebAssembly Micro Runtime (WAMR). +- 🛠️ **Powerful Service Mesh**: Integrates with **[SuperMQ](https://github.com/absmach)** for secure, efficient IoT device communication. +- 🔒 **Security at the Core**: Propeller ensures secure workload execution and communication for IoT environments. + +--- + +## 🛠️ How It Works + +1. **Develop in WebAssembly**: Write portable, lightweight Wasm workloads for your application. +2. **Register Workloads**: Push your workloads to an OCI-compliant registry for easy deployment. +3. **Deploy Anywhere**: Use Propeller to orchestrate and manage workload deployment across the cloud, edge, and IoT devices. +4. **Monitor & Scale**: Leverage real-time monitoring and dynamic scaling to optimize your system's performance. diff --git a/docs/manager.md b/docs/manager.md new file mode 100644 index 0000000..d92a585 --- /dev/null +++ b/docs/manager.md @@ -0,0 +1 @@ +# Manager diff --git a/docs/proplet.md b/docs/proplet.md new file mode 100644 index 0000000..1c7c796 --- /dev/null +++ b/docs/proplet.md @@ -0,0 +1 @@ +# Proplet diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..81bf3c4 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,25 @@ +copyright: Copyright (c) Abstract Machines +repo_url: https://github.com/absmach/propeller-docs.git +site_description: Propeller Documentation +site_name: Propeller +site_url: "" +edit_uri: "" + +theme: + name: material + icon: + repo: fontawesome/brands/github + +markdown_extensions: + - admonition + - attr_list + - toc: + permalink: "#" + +nav: + - Overview: index.md + - Getting Started: getting-started.md + - Architecture: architecture.md + - Manager: manager.md + - Proplet: proplet.md + - Developer's Guide: developer-guide.md