From 45a131b66843a5b353dfc21903cb1238304caa5b Mon Sep 17 00:00:00 2001 From: Jonas L Date: Mon, 12 Sep 2022 20:45:37 +0200 Subject: [PATCH] chore: update outdated readmes (#2131) --- analyzer/README.md | 113 +++++++-------------------------------------- playout/README.md | 20 ++++++++ worker/README.md | 64 +++++++------------------ 3 files changed, 53 insertions(+), 144 deletions(-) diff --git a/analyzer/README.md b/analyzer/README.md index a1f7f2054..bae5c3eec 100644 --- a/analyzer/README.md +++ b/analyzer/README.md @@ -1,102 +1,21 @@ -# libretime-analyzer +# LibreTime Analyzer -libretime-analyzer is a daemon that processes LibreTime file uploads as background jobs. +LibreTime Analyzer is a service that analyze file as background jobs and move them into the storage. -It performs metadata extraction using Mutagen and moves uploads into LibreTime's -music library directory (stor/imported). - -libretime-analyzer uses process isolation to make it resilient to crashes and runs in -a multi-tenant environment with no modifications. - -## Installation +## Development ```bash -python setup.py install +# Install dependencies +make install +# Activate the development environment +source .venv/bin/activate + +# Run linters +make lint + +# Run tests +make test + +# See the Makefile for more commands +cat Makefile ``` - -You will need to allow the "airtime" RabbitMQ user to access all exchanges and queues within the /airtime vhost: - -```bash -rabbitmqctl set_permissions -p /airtime airtime .\* .\* .\* -``` - -## Usage - -This program must run as a user with permissions to write to your Airtime music library -directory. For standard Airtime installations, run it as the libretime user: - -```bash -sudo -u libretime libretime-analyzer --daemon -``` - -Or during development, add the --debug flag for more verbose output: - -```bash -sudo -u libretime libretime-analyzer --debug -``` - -To print usage instructions, run: - -```bash -libretime-analyzer --help -``` - -This application can be run as a daemon by running: - -```bash -libretime-analyzer -d -``` - -# Developers - -For development, you want to install libretime-analyzer system-wide but with everything symlinked back to the source -directory for convenience. This is super easy to do, just run: - -```bash -pip install -r requirements-dev.txt -pip install --editable . -``` - -To send an test message to libretime-analyzer, you can use the message_sender.php script in the tools directory. -For example, run: - -```bash -php tools/message_sender.php '{ "tmp_file_path" : "foo.mp3", "final_directory" : ".", "callback_url" : "http://localhost/rest/media/1", "api_key" : "YOUR_API_KEY" }' - -php tools/message_sender.php '{"tmp_file_path":"foo.mp3", "import_directory":"/srv/airtime/stor/imported/1","original_filename":"foo.mp3","callback_url": "http://localhost/rest/media/1", "api_key":"YOUR_API_KEY"}' -``` - -## Logging - -By default, logs are saved to: - -``` -/var/log/airtime/airtime_analyzer.log -``` - -This application takes care of rotating logs for you. - -## Unit Tests - -To run the unit tests, execute: - -```bash -nosetests -``` - -If you care about seeing console output (stdout), like when you're debugging or developing -a test, run: - -```bash -nosetests -s -``` - -To run the unit tests and generate a code coverage report, run: - -```bash -nosetests --with-coverage --cover-package=airtime_analyzer -``` - -## Running in a Multi-Tenant Environment - -## History and Design Motivation diff --git a/playout/README.md b/playout/README.md index 17344e32e..d08997547 100644 --- a/playout/README.md +++ b/playout/README.md @@ -1,5 +1,25 @@ # LibreTime Playout +LibreTime Playout is a service that will ingest a schedule and stream it. + +## Development + +```bash +# Install dependencies +make install +# Activate the development environment +source .venv/bin/activate + +# Run linters +make lint + +# Run tests +make test + +# See the Makefile for more commands +cat Makefile +``` + ## History This tool was born out of a collaboration between Open Broadcast and Sourcefabric. diff --git a/worker/README.md b/worker/README.md index af555c38b..72bf37261 100644 --- a/worker/README.md +++ b/worker/README.md @@ -1,51 +1,21 @@ -# airtime-celery +# LibreTime Worker -airtime-celery is a [Celery](https://docs.celeryq.dev/) daemon for handling backend tasks asynchronously. Communication and the Celery results backend are both handled with amqp (RabbitMQ). +LibreTime Worker is a service that will run background tasks. -# Installation +## Development -```sh -sudo python3 setup.py install +```bash +# Install dependencies +make install +# Activate the development environment +source .venv/bin/activate + +# Run linters +make lint + +# Run tests +make test + +# See the Makefile for more commands +cat Makefile ``` - -Each instance of airtime-celery has its own worker, and multiple instances can be run in parallel. [Celery is thread-safe](https://docs.celeryq.dev/en/latest/userguide/application.html), so this parallelization won't cause conflicts. - -# Developers - -To debug, you can run celery directly from the command line: - -```sh -RMQ_CONFIG_FILE=${LIBRETIME_CONF_DIR}/config.yml celery -A libretime_worker.tasks worker --loglevel=info -``` - -This worker can be run alongside the service without issue. - -You may want to use the setuptools develop target to install: - -```sh -sudo python setup.py develop -``` - -You will need to allow the "airtime" RabbitMQ user to access all exchanges and queues within the /airtime vhost: - -```sh -sudo rabbitmqctl set_permissions -p /airtime airtime .\* .\* .\* -``` - -# Logging - -By default, logs are saved to: - -``` -/var/log/airtime/airtime-celery[-DEV_ENV].log -``` - -# Troubleshooting - -If you run into issues getting Celery to accept tasks from Airtime: - -1. Make sure Celery is running ($ sudo service airtime-celery status). -2. Check the log file (/var/log/airtime/airtime-celery[-DEV_ENV].log) to make sure Celery started correctly. -3. Check your $LIBRETIME_CONF_DIR/config.yml rabbitmq settings. Make sure the settings here align with $LIBRETIME_CONF_DIR/$ENVIRONMENT/rabbitmq.ini. -4. Check RabbitMQ to make sure the celeryresults and task queues were created in the correct vhost. -5. Make sure the RabbitMQ user (the default is airtime) has permissions on all vhosts being used.