Git Product home page Git Product logo

ansible-role-libretime's Introduction

ansible-role-libretime

Deploy libretime using Ansible.

Requirements

See the requirements.yml file for details.

Role Variables

See the defaults/main.yml file for details.

Important Role Variables

  • libretime_public_url defines the public url used to access Libretime. This variable MUST be updated.

  • libretime_api_key define the api key. This variable MUST be updated.

  • libretime_secret_key define the secret key. This variable MUST be updated.

  • libretime_config_template defines the path to your configuration template file. This variable SHOULD be updated. This is used to let you deploy your own configuration file, you can find an example in templates/libretime/config.yml.j2.

  • libretime_allow_restart defines whether the services should be restarted automatically. This variable SHOULD be updated. This flag is mainly used to prevent restarting a LibreTime service running in production.

  • libretime_listen_port defines the port on which the web server will listen.

Icecast

  • libretime_icecast_admin_password defines the Icecast admin password. This variable MUST be updated.
  • libretime_icecast_source_password defines the Icecast source password. This variable MUST be updated.
  • libretime_icecast_relay_password defines the Icecast relay password. This variable MUST be updated.

PostgreSQL

  • libretime_postgresql_password defines the PostgreSQL user password. This variable SHOULD be updated.

RabbitMQ

  • libretime_rabbitmq_password defines the RabbitMQ user password. This variable SHOULD be updated.

Checkout

  • libretime_checkout_url defines the repository url to clone for the installation.
  • libretime_checkout_version defines the repository reference (hash/tag) to clone for the installation. This variable SHOULD be updated.

Dependencies

See the requirements.yml file for details.

Example Playbook

- hosts: server
  roles:
    - role: libretime
      libretime_public_url: https://station.radio.org
      libretime_listen_port: 8080
      libretime_api_key: a182_your_api_key_c87f
      libretime_secret_key: 0fd9_your_secret_key_4521
      libretime_icecast_admin_password: 0fd9ba81394a91cd178514e3c6788052
      libretime_icecast_source_password: ee41c264d954b92fce44521e02663d89
      libretime_icecast_relay_password: 9702d35f24d77ce8cb2da75ab2298654

License

See the LICENSE file for details.

ansible-role-libretime's People

Contributors

dependabot[bot] avatar jooola avatar libretime-bot avatar paddatrapper avatar renovate-bot avatar renovate[bot] avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ansible-role-libretime's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Repository problems

These problems occurred while renovating this repository. View logs.

  • WARN: Package lookup failures

Warning

Renovate failed to look up the following dependencies: Failed to look up github-tags package https://github.com/containers/ansible-podman-collections, Failed to look up github-tags package https://github.com/ansible-collections/ansible.posix, Failed to look up github-tags package https://github.com/ansible-collections/community.general, Failed to look up github-tags package https://github.com/ansible-collections/community.postgresql, Failed to look up github-tags package https://github.com/ansible-collections/community.rabbitmq.

Files affected: molecule/requirements.yml, requirements.yml


Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

ansible-galaxy
example/requirements.yml
molecule/requirements.yml
  • github.com/containers/ansible-podman-collections 1.11.0
  • github.com/ansible-collections/ansible.posix 1.5.2
requirements.yml
  • github.com/ansible-collections/community.general 8.1.0
  • github.com/ansible-collections/community.postgresql 3.3.0
  • github.com/ansible-collections/community.rabbitmq 1.2.3
dockerfile
molecule/default/Dockerfile.j2
github-actions
.github/workflows/ci.yml
  • actions/checkout v4
  • actions/setup-python v5
  • pre-commit/action v3.0.1
  • actions/checkout v4
  • actions/setup-python v5
  • actions/cache v4
  • actions/checkout v4
  • actions/setup-python v5
  • actions/cache v4
  • actions/cache v4
.github/workflows/release-please.yml
  • google-github-actions/release-please-action v4
pip_requirements
example/requirements.txt
  • ansible-core >=2.16,<2.17
requirements.txt
  • ansible-core >=2.16,<2.17
  • ansible-lint >=24.2.2,<24.3
  • black >=24.4,<24.5
  • molecule >=24,<24.3
  • molecule-plugins >=23.0.0,<24.0
  • pylint >=3,<3.2
pre-commit
.pre-commit-config.yaml
  • pre-commit/pre-commit-hooks v4.6.0
  • pre-commit/mirrors-prettier v3.1.0
  • codespell-project/codespell v2.2.6

  • Check this box to trigger a request for Renovate to run again on this repository

Write documentation

The role currently does not have a proper documentation.

This project has differences with the libretime official install mechanism, those should be documented as well.

Differences with the LibreTime installer

The "official" install script and the ansible-role-libretime install LibreTime with some differences. Below is a list of what is handled differently in the ansible role:

  • the libretime-celery service is called libretime-worker.

At some point those differences will be pushed upstream so that both installer behave the same way.

Setup molecule testing in CI

We currently use molecule to develop and test this role, but we should enforce testing using CI.

The current molecule platforms are running on Vagrant, Vagrant isn't supported by Github Actions.

We might want to take a look at the molecule hetzner or molecule docker plugins to make it compatible with our CI.

Hetzner testing would be powerfull but will cost some money. https://github.com/ansible-community/molecule-hetznercloud
Docker testing is kind of hacky since it lacks a proper systemd integration. https://github.com/ansible-community/molecule-docker
Maybe podman is the right tool. https://github.com/ansible-community/molecule-podman

Fix role Idempotency

The role is not idempotent:

*  => ansible-role-libretime : install shared python package
*  => ansible-role-libretime : install shared python package
*  => ansible-role-libretime : install api_client python package
*  => ansible-role-libretime : install api_client python package
*  => ansible-role-libretime : install api python package
*  => ansible-role-libretime : install api python package
*  => ansible-role-libretime : install worker python package
*  => ansible-role-libretime : install worker python package
*  => ansible-role-libretime : install analyzer python package
*  => ansible-role-libretime : install analyzer python package
*  => ansible-role-libretime : install playout python package
*  => ansible-role-libretime : install playout python package
*  => ansible-role-libretime : run api database migration
*  => ansible-role-libretime : run api database migration
*  => ansible-role-libretime : run api database migration
*  => ansible-role-libretime : run api database migration
*  => ansible-role-libretime : run api database migration
*  => ansible-role-libretime : run api database migration
*  => ansible-role-libretime : run api database migration
*  => ansible-role-libretime : run api database migration
*  => ansible-role-libretime : run api database migration
*  => ansible-role-libretime : run api database migration
*  => ansible-role-libretime : run api database migration
*  => ansible-role-libretime : run api database migration

Allow to install with a custom user

While a variable to change the libretime user installed on the system is available, using a custom user is not yet working.

When using a custom user, some files should be readable by the web user (www-data), some dir should be writable.

Using php-fpm could make it easier for handling upload for example, as apache and mod_php does not let us use a custom user for the php process.

Needs some research.

Try to find good defaults for required variables

We should try to find good default values for the few required variables this role has.

Documentation should define which variables are mandatory, while still having defaults.

The current required vars are:

  • libretime_root_url
  • libretime_legacy_api_key

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.