Blue-ray Discยถ

Descriptionยถ

This Ansible role installs and configures all the software required for Blu-ray playback on Arch Linuxโ€“based systems. It ensures that VLC and the necessary libraries for Blu-ray disc decryption and playback (libaacs, libbluray) are present, and provides hooks for optional AUR packages.

Overviewยถ

  • Uses the community.general.pacman module to install:

    • vlc (media player with Blu-ray support)

    • libaacs (AACS decryption library)

    • libbluray (Blu-ray playback support library)

  • Contains commented-out tasks for optional AUR packages (aacskeys, libbdplus) you can enable as needed.

  • Designed for idempotent execution on Arch Linux and derivatives.

Architectureยถ

ARCHITECTURE.md draws Blue-ray Disc from its own metadata: the containers it runs under compose, what changes under swarm, how each volume is backed, and every role it depends on or is depended upon by.

Section

Drawn from

Compose

meta/services.yml

Swarm

meta/services.yml replicas and placement

Volumes

meta/volumes.yml against the NFS decision chain

Dependencies

meta/services.yml and meta/main.yml of every role

Featuresยถ

  • VLC Installation
    Installs vlc for general media and Blu-ray playback.

  • AACS & BD+ Support
    Installs libaacs and libbluray to handle Blu-ray disc encryption and playback.

  • Optional AUR Packages
    Drop-in tasks for aacskeys and libbdplus via AUR (commented out by default).

  • Idempotent Role
    Safe to run multiple times without unintended side effects.

  • Arch Linuxโ€“Optimized
    Leverages Pacman for fast and reliable package management.

Quick Setupยถ

Developmentยถ

Clone, set up the workstation, and deploy Blue-ray Disc onto the local stack:

git clone https://github.com/infinito-nexus/core.git
cd core
make onboard
make compose-deploy mode=reinstall apps=dsk-bluray-player full_cycle=false

Productionยถ

Install Blue-ray Disc directly onto the target machine: clone the repository, install the OS prerequisites and the repository toolchain, then deploy against localhost over a local connection (no SSH, no container):

git clone https://github.com/infinito-nexus/core.git
cd core
bash scripts/install/package.sh
make install
source scripts/meta/env/load.sh

APP=dsk-bluray-player
DOMAIN="<your-domain>"
TLS_MODE=self_signed
SSH_PUBLIC_KEY="<your-ssh-public-key>"
INVENTORY=inventories/production
infinito administration inventory provision "$INVENTORY" \
  --inventory-file "$INVENTORY/devices.yml" \
  --host localhost \
  --include "$APP" \
  --vars "{\"TLS_MODE\": \"$TLS_MODE\", \"DOMAIN_PRIMARY\": \"$DOMAIN\", \"users\": {\"administrator\": {\"authorized_keys\": [\"$SSH_PUBLIC_KEY\"]}}}"
infinito administration deploy dedicated "$INVENTORY/devices.yml" \
  --password-file "$INVENTORY/.password" \
  --diff -vv

Further Resourcesยถ

Creditsยถ

Kevin Veen-Birkenbach

Part of the Infinito.Nexus Project and maintained by Kevin Veen-Birkenbach. Licensed under the Infinito.Nexus Community License (Non-Commercial).

That licence covers this role. The software it deploys is a separate grant: GPL-2.0-or-later AND LGPL-2.1-only, under which commercial use is allowed. You owe its authors this much: publish the source of changes you distribute. Permission for one of the two is not permission for the other.