The first release candidate just dropped! see our blog post for the release & vision
AlcedoCoreAlcedoCore

Building a Plugin

Scaffold, develop, and deploy a Python plugin for AlcedoCore.

1

Install the CLI

The alcedo CLI is used for scaffolding and development.

npm install -g alcedo
2

Scaffold the Plugin

Run alcedo init to create a new plugin project. This generates a complete project with a Dockerfile, manifest.json, migrations, and a main entrypoint.

alcedo init my-plugin# Creates ./my-plugin with:# Dockerfile# manifest.json# main.py# migrations/# pages/
3

Add a Route

Edit main.py to add an API endpoint. The plugin uses FastAPI and the Alcedo SDK to interact with the core.

from alcedo_sdk import AlcedoClientfrom fastapi import FastAPIapp = FastAPI()client = AlcedoClient()@app.get("/api/hello")async def hello():return {"message": "Hello from my plugin!"}
4

Run in Development Mode

Use alcedo dev to hot-reload your plugin against the running core. No Docker build needed. Changes take effect immediately.

alcedo dev --port 3000

This registers a dev session with the core. All requests to/p/my-plugin/... are forwarded to your local server atlocalhost:3000. Test it:

curl http://localhost:8080/p/my-plugin/api/hello
5

Deploy

Build the Docker image and push it to your registry, then deploy via the API.

docker build -t localhost:5000/my-plugin:1.0.0 .docker push localhost:5000/my-plugin:1.0.0# Deploy via APIcurl -X POST http://localhost:8080/api/plugins/deploy \-H "Content-Type: application/json" \-d '{"slug": "my-plugin", "version": "1.0.0","env": {}'

Your plugin is now live at http://localhost:8080/p/my-plugin. It runs as its own Docker container with its own database schema.

Get notified about new features and release announcements.