Develop apps#
Build, release and publish your own apps on the SEPAL platform
These pages explain how SEPAL decides which app code to run and how that code reaches the platform — useful when you want to add an app, ship a new version of an existing one, or package a reusable environment for a notebook or workflow.
Note
The set of apps SEPAL runs is curated in the
dfguerrerom/sepal-apps-catalog
repository. Getting an app onto SEPAL — or updating one — means opening a
pull request there. For docker apps, the catalog also pins the exact
commit SEPAL will run; for jupyter apps, the catalog records the
branch and SEPAL still runs the tip of that branch. The pages below
walk through both flows.
How an app reaches SEPAL#
![digraph lifecycle {
rankdir=LR;
node [shape=box, fontname="sans-serif"];
repo [label="App source repo\n(your GitHub)"];
rel [label="Release / version", shape=ellipse];
pr [label="Catalog PR\n(apps.test.json)"];
ci [label="CI review\n(validate + risk flags)"];
test [label="test.sepal.io", shape=ellipse];
prod [label="sepal.io", shape=ellipse];
kernel [label="Kernel build\n(sepal_environment.yml)", shape=box, style=dashed];
repo -> rel -> pr -> ci -> test;
test -> prod [label="promote PR"];
repo -> kernel [label="jupyter apps", style=dashed];
kernel -> test [style=dashed];
}](../../_images/graphviz-4e833eae65d665cd3c264baabb616e6507c08fce.png)