Building a Plugin
Scaffold, develop, and deploy a Python plugin for AlcedoCore.
Install the CLI
The alcedo CLI is used for scaffolding and development.
npm install -g alcedoScaffold 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/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!"}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 3000This 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/helloDeploy
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.
