CetaDash is an extensible Docker orchestration system focused on multi-step workflows, component reusability, and dynamic environment layering. Built for simplicity and flexibility, CetaDash allows you to spin up containerized services and scripts through a clean, templated workflow engine.
CetaDash is very early in development. Use at your own risk and make sure to follow best practices with backups.
CetaDash structures orchestration into modular, reusable building blocks. Workflows are composed of Tasks, which in turn can run Docker Compose templates or containerized Scripts. The system supports layered variable injection for easy configuration and overrides.
- ✅ Designed for automation, CI/CD pipelines, homelabs, and data processing flows
- ✅ Rich templating and environment layering
- ✅ Seamless Docker Compose & Script execution
- ✅ Easy integration with triggers, schedules, and (soon) event listeners
- ✅ Customizable UI with independently configurable UI and Code Editor.
- ✅ Manage your Docker stack (without the Portainer pay-me-for-features hassl)
- ✅ Written in Python and WTFScript easily extended through Flask blueprinting.
- ✅ Built in internal database viewer.
- ✅ Uses proxy-authentication through a trusted proxy to handle user access / management.
Each orchestration component supports an associated Environment, providing an extensible way to pass environment variables through the stack. Variable precedence follows a top-down model:
Trigger / Schedule → Workflow → Task → Script
- The lowest-level executable component in CetaDash.
- Can be containerized and run inside a workflow.
- Ideal for lightweight jobs such as API calls, notifications, data munging, etc.
- Currently supports Python, with future plans for Bash, JavaScript, PowerShell, and Lua.
-
A task is a reusable unit within a workflow.
-
Can either:
- Use a templated Docker Compose file, or
- Run a selected Script.
-
Tasks support templating and are designed for modular use across workflows.
- A collection of ordered Tasks.
- Reusable across different Triggers or Schedules.
- Executes each task in sequence with inherited and overridden environment variables.
- Automatically start a Workflow when a POST request hits a defined Endpoint.
- Triggers can extract HTTP headers and translate them into environment variables.
- Each trigger is tied to a route at:
HOST/endpoints/<endpoint_name>
- Managed via Triggers.
- Accessible over HTTP at the
/endpoints/path. - On
POST, executes the associated workflow and streams back execution logs. GETsupport for interactive form input is planned.
- Powered by APScheduler.
- Offers both interval and Cron-style scheduling for workflows.
- Easily manage time-based automation via a simple UI.
-
Watch for events in the database and run workflows automatically.
-
Useful for cases like:
- Running onboarding scripts when a user logs in for the first time.
- Automating stateful backend logic based on real-time activity.
-
Traefik Proxy
-
Authelia
-
Docker + Compose
-
Python
- Flask
- SQLAlchemy
- APScheduler
- Jinja2
- WebTemplateForms / WTFScript (custom templating & workflow DSL)
- Bootstrap (with Bootswatch themes)
- CodeMirror (Code editor)
- SimpleMDE (Markdown editor)
- JSDataTables (for tabular data)
- Dragabbles.js
- Database Event Listeners to power reactive workflows.
- Built-in Documentation Module (Docu Plugin) to attach help, API usage, and maintenance notes directly to orchestration components — perfect for homelab and team use.
Let us know if you'd like to contribute, extend, or customize CetaDash for your own needs!
