Build interactive dashboards and application mashups from reusable widgets, operators, and data sources.
Get started · User guide · Installation · HTTP API · Contributing
WireCloud builds on cutting-edge end-user development, RIA and semantic technologies to offer a next-generation end-user centred web application mashup platform aimed at leveraging the long tail of the Internet of Services.
WireCloud builds on cutting-edge end-user (software) development, RIA and semantic technologies to offer a next-generation end-user centred web application mashup platform aimed at allowing end users without programming skills to easily create web applications and dashboards/cockpits (e.g. to visualize their data of interest or to control their domotized home or environment). Web application mashups integrate heterogeneous data, application logic, and UI components (widgets) sourced from the Web to create new coherent and value-adding composite applications. They are targeted at leveraging the "long tail" of the Web of Services (a.k.a. the Programmable Web) by exploiting rapid development, DIY, and shareability. They typically serve a specific situational (i.e. immediate, short-lived, customized) need, frequently with high potential for reuse. Is this "situational" character which precludes them to be offered as 'off-the-shelf' functionality by solution providers, and therefore creates the need for a tool like WireCloud.
This project is part of FIWARE. For more information check the FIWARE Catalogue entry for Context Processing, Analysis and Visualization.
The fastest way to run the complete stack is Docker Compose. It builds WireCloud and starts MongoDB and Elasticsearch with persistent volumes:
cp docker/.env.example docker/.env
docker compose -f docker/docker-compose.yml up -d --build
docker compose -f docker/docker-compose.yml exec wirecloud python -m manage populate
docker compose -f docker/docker-compose.yml exec wirecloud python -m manage createsuperuserOpen http://localhost:8000/. Before exposing the service, replace
WIRECLOUD_JWT_KEY and WIRECLOUD_SECRET_KEY in docker/.env with different,
secure random values.
For health checks, updates, persistent-storage guidance, and troubleshooting, follow the complete getting-started guide.
| I want to… | Start here |
|---|---|
| Create workspaces and connect components | User guide |
| Deploy and configure an instance | Installation and configuration |
| Operate, back up, and restore WireCloud | Administration |
| Build widgets, operators, or mashups | Component development |
| Integrate with WireCloud over HTTP | HTTP API |
| Customize the interface or backend | Themes and plugins |
| Migrate an existing deployment | Migration guide |
Release wheels and the forthcoming PyPI package include the compiled frontend, so Node.js is not required on the deployment host. See the installation guide for all supported installation paths and an example project-specific configuration.
WireCloud requires Python 3.9 or newer and Node.js with npm. To prepare a local checkout:
python3 -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e '.[test,migration]'
npm ci
npm run buildRun the Python and JavaScript test suites with coverage:
pytest --cov
npm run test:js:covThe contributor guide covers local services, frontend commands, translations, packaging, continuous integration, and documentation builds.
The documentation is built with MkDocs and published on Read the Docs. Build it locally in strict mode to catch broken links and configuration errors:
python -m pip install -r docs/requirements.txt
mkdocs build --strictWireCloud is distributed under the GNU Affero General Public License, version 3. Widgets, operators, and mashups running on the platform are expressly excluded from the covered work and may use other licenses; see the license file for the complete terms.