# Karabo SCADA Framework - Services










This package provides the service commands required in a Karabo environment.
Please check https://pypi.org/project/Karabo/ for an overview of Karabo's components
and ways to install the full system.
# Installation
To install run
```bash
pip install karabo.services
```
or use the `full` or `services` options when installing the `karabo` package:
```bash
pip install karabo[full]
pip install karabo[services]
```
This package itself is pure Python but depends on `karabo.daemontools` which requires compiled code.
You can add the option `with_cpp` to also install `karabo.cpp` and the associated services
```bash
pip install karabo.services[with_cpp]
```
# List of commands
## karabo-activate
Initially activates a Karabo environment by initializing structures into a user
defined directory. You will need to execute this command first, before most
other commands succeed (you'll get a message that Karabo was not found if you didn't).
Execute
```bash
karabo-activate --init-to $PATH --help
```
to see the options for creating a Karabo environment in `PATH`.
You can use the the `--broker-host` and `--broker-topic` modifiers
to configure the default broker settings Karabo servers added to this environment will use. Run `karabo-activate`
again (you can omit `--init-to` now) to reconfigure these settings. The `--backbone` option will only take effect
when an environment is first created, and will install the Karabo backbone services into this environment.
## Starting a Karabo standalone system
If you wish to run Karabo standalone you can do this if you have `podman` or `docker` installed on the system.
First, run
```bash
karabo-activate --init-to PATH --standalone
```
Then run
```bash
podman-compose -f $PATH/var/containers/compose.yaml up
```
or (`docker-compose ...`). This will start containerized version of the services a full
Karabo installation requires:
- A RabbitMQ broker (user: xfel, pw: karabo)
- An Influx database instance for logging (user: infadm, pw: admpwd)
- An ExistDB database as project database (user: admin, pw: change_me_please)
- A Grafana installation with the Influx database as a pre-provisioned source (user: admin, pw: admin)
Note that the Grafana provisioning assumes `karabo` as the broker topic in use. If you've
used `karabo-activate --broker-topic TOPIC` you'll need to edit the data source to refer to
a database of `TOPIC` from inside Grafana.
Finally, run
```bash
$PATH/activate
```
followed by
```bash
karabo-start
```
## ikarabo
The interactive Karabo Python shell. Includes device orchistration and scripting using Karathon.
## karabo-start, karabo-stop, karabo-kill
Scripts that start, stop, or kill a Karabo device server managed by karabo.daemontools or all such servers.
## karabo-check
Outputs the current status of Karabo services managed by karabo.daemontools
## karabo-add-deviceserver, karabo-remove-deviceserver
Adds or removes a Karabo device server to the services managed by karabo.daemontools.
## Additional commands.
This package exposes additional (internal) commands as entrypoints which are not further described here.
Raw data
{
"_id": null,
"home_page": null,
"name": "karabo.services",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": "\"S. Hauf\" <steffen.hauf@xfel.eu>, \"D. Goeries\" <dennis.goeries@xfel.eu>",
"keywords": "Karabo, SCADA, async, control system",
"author": null,
"author_email": "European XFEL GmbH <opensource@xfel.eu>",
"download_url": "https://files.pythonhosted.org/packages/03/ee/9e37b79889e0f97f7b21cae0a94e988fac83c0fe0003bd9d6c5123c46ca4/karabo_services-3.0.0.tar.gz",
"platform": null,
"description": "# Karabo SCADA Framework - Services\n\n\n\n\n\n\n\n\n\n\n\n\nThis package provides the service commands required in a Karabo environment.\n\nPlease check https://pypi.org/project/Karabo/ for an overview of Karabo's components\nand ways to install the full system.\n\n# Installation\n\nTo install run \n\n```bash\npip install karabo.services\n```\n\nor use the `full` or `services` options when installing the `karabo` package:\n\n```bash\npip install karabo[full]\npip install karabo[services]\n```\n\nThis package itself is pure Python but depends on `karabo.daemontools` which requires compiled code.\n\nYou can add the option `with_cpp` to also install `karabo.cpp` and the associated services\n\n```bash\npip install karabo.services[with_cpp]\n```\n\n\n\n# List of commands\n\n## karabo-activate\n\nInitially activates a Karabo environment by initializing structures into a user\ndefined directory. You will need to execute this command first, before most \nother commands succeed (you'll get a message that Karabo was not found if you didn't).\n\nExecute \n\n```bash\nkarabo-activate --init-to $PATH --help\n```\n\nto see the options for creating a Karabo environment in `PATH`. \nYou can use the the `--broker-host` and `--broker-topic` modifiers\nto configure the default broker settings Karabo servers added to this environment will use. Run `karabo-activate`\nagain (you can omit `--init-to` now) to reconfigure these settings. The `--backbone` option will only take effect\nwhen an environment is first created, and will install the Karabo backbone services into this environment.\n\n\n## Starting a Karabo standalone system\n\nIf you wish to run Karabo standalone you can do this if you have `podman` or `docker` installed on the system.\n\nFirst, run\n\n```bash\nkarabo-activate --init-to PATH --standalone\n```\n\nThen run \n\n```bash\npodman-compose -f $PATH/var/containers/compose.yaml up\n```\n\nor (`docker-compose ...`). This will start containerized version of the services a full \nKarabo installation requires:\n\n- A RabbitMQ broker (user: xfel, pw: karabo)\n- An Influx database instance for logging (user: infadm, pw: admpwd)\n- An ExistDB database as project database (user: admin, pw: change_me_please)\n- A Grafana installation with the Influx database as a pre-provisioned source (user: admin, pw: admin)\n\nNote that the Grafana provisioning assumes `karabo` as the broker topic in use. If you've\nused `karabo-activate --broker-topic TOPIC` you'll need to edit the data source to refer to\na database of `TOPIC` from inside Grafana.\n\nFinally, run\n\n```bash\n$PATH/activate\n```\n\nfollowed by \n\n```bash\nkarabo-start\n```\n\n## ikarabo\n\nThe interactive Karabo Python shell. Includes device orchistration and scripting using Karathon.\n\n## karabo-start, karabo-stop, karabo-kill\n\nScripts that start, stop, or kill a Karabo device server managed by karabo.daemontools or all such servers.\n\n## karabo-check\n\nOutputs the current status of Karabo services managed by karabo.daemontools\n\n## karabo-add-deviceserver, karabo-remove-deviceserver\n\nAdds or removes a Karabo device server to the services managed by karabo.daemontools.\n\n## Additional commands.\n\nThis package exposes additional (internal) commands as entrypoints which are not further described here.\n",
"bugtrack_url": null,
"license": null,
"summary": "Services required to run Karabo",
"version": "3.0.0",
"project_urls": {
"Bug Reports": "https://github.com/European-XFEL/Karabo/issues",
"Homepage": "https://github.com/European-XFEL/Karabo",
"Source": "https://github.com/European-XFEL/Karabo"
},
"split_keywords": [
"karabo",
" scada",
" async",
" control system"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "aac73c8f802525cb767ed44165e38f0e735009adfc7c243723d1b63066906dbe",
"md5": "f0ebbc6f31da37e6389704074856f44a",
"sha256": "22de25d8d05002910026e4b2d6673c3dafe966b4be48be3bc8610da9511fe5e6"
},
"downloads": -1,
"filename": "karabo_services-3.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f0ebbc6f31da37e6389704074856f44a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 36879,
"upload_time": "2025-08-01T11:52:57",
"upload_time_iso_8601": "2025-08-01T11:52:57.471110Z",
"url": "https://files.pythonhosted.org/packages/aa/c7/3c8f802525cb767ed44165e38f0e735009adfc7c243723d1b63066906dbe/karabo_services-3.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "03ee9e37b79889e0f97f7b21cae0a94e988fac83c0fe0003bd9d6c5123c46ca4",
"md5": "22538f2f52daf8af963e908b28e74db7",
"sha256": "3053990f79f3c55efa783875d188e73de2768587d624111a685833bfa6b154e5"
},
"downloads": -1,
"filename": "karabo_services-3.0.0.tar.gz",
"has_sig": false,
"md5_digest": "22538f2f52daf8af963e908b28e74db7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 20492,
"upload_time": "2025-08-01T11:52:58",
"upload_time_iso_8601": "2025-08-01T11:52:58.554612Z",
"url": "https://files.pythonhosted.org/packages/03/ee/9e37b79889e0f97f7b21cae0a94e988fac83c0fe0003bd9d6c5123c46ca4/karabo_services-3.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-01 11:52:58",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "European-XFEL",
"github_project": "Karabo",
"travis_ci": false,
"coveralls": true,
"github_actions": false,
"lcname": "karabo.services"
}