Launching Caterva2 services#
To do anything useful with Caterva2, you need at least a running broker, publisher (with some datasets) and subscriber. For the following tutorials we’ll run our own services in the local machine, with the publisher serving some example datasets included in the Caterva2 package (the root-example
directory).
First of all, you need to install Caterva2 with the services
extra:
python -m pip install caterva2[services]
The easiest way to run a set of services with example datasets is to launch the services used by tests:
python -m caterva2.tests.services
This will run a broker, a publisher and a subscriber listening for HTTP requests on localhost:8000
, localhost:8001
and localhost:8002
respectively. They will put their private files under the _caterva2
directory, respectively in broker
, publisher.foo
and subscriber
. The publisher will be serving a root called foo
, whose datasets (copied from root-example
) sit in _caterva2/data.foo
. You may want to browse that directory.
Note: You may provide command-line arguments to caterva2.tests.services
to use a different state directory, root name and dataset source instead of _caterva2
and foo=root-example
. Multiple ROOT_NAME=DATASET_SOURCE
arguments may be given, each to be served by a different publisher (run caterva2.tests.services
with --help
for more information). Moreover, you may customize some service settings (except those set by the previous arguments) via a caterva2.toml
configuration file in the current directory (see The caterva2.toml configuration file and Running independent Caterva2 services for more information).
Note: If you want to test user authentication, you may run the previous command with some secret value in the CATERVA2_SECRET
environment variable, e.g. env CATERVA2_SECRET=c2sikrit python -m caterva2.tests.services
. This will also create a sample user named user@example.com
with password foobar
.
Since this terminal will be used by services to output their logs, you will need to run other commands in other terminals. When you want to stop the services, go back to their terminal and press Ctrl+C (this should work for any service mentioned in other tutorials).