No description
Find a file
2026-05-14 21:20:13 +02:00
defaults Fix undefined variables and pnpm install reliability 2026-05-13 23:08:30 +02:00
handlers Update role and split api from main 2026-05-13 18:14:41 +02:00
tasks Allow CI builds nodejs 2026-05-14 20:59:17 +02:00
templates Fix undefined variables and pnpm install reliability 2026-05-13 23:08:30 +02:00
README.md Fix undefined variables and pnpm install reliability 2026-05-13 23:08:30 +02:00

Ansible Role: AIOStreams

Installs and configures AIOStreams from source on Debian/Ubuntu servers using Node.js, pnpm, and systemd.

Hardware requirements

The host needs a minimum of 4GB to compile

Requirements

No special requirements; note that this role requires root access, so either run it in a playbook with a global become: yes, or invoke the role in your playbook like:

- hosts: aiostreams
  roles:
    - role: ansible-role-aiostreams
      become: yes

Role Variables

Role vars (global)

Variable Default Description
aiostreams_port 3000 Application port exposed by AIOStreams.
aiostreams_repo "https://github.com/Viren070/AIOStreams.git" Git repository URL for AIOStreams.
aiostreams_dir "/opt/aiostreams" Install and working directory for the app.
aiostreams_user "aiostreams" System user that owns and runs AIOStreams.
aiostreams_base_url "" Public base URL for AIOStreams.
aiostreams_addon_id "aiostreams" Unique addon identifier used in the manifest.
aiostreams_secret_key "" App secret key for sessions/signing.
aiostreams_addon_password "" Password for addon-related functionality.
aiostreams_users [] List of AIOStreams users to manage via the API (see Example users.yml below).
aiostreams_database_uri "" Full database URI override. If set, this is used directly.
aiostreams_db_host "" PostgreSQL hostname used when aiostreams_database_uri is not set.
aiostreams_db_port "5432" PostgreSQL port used when building DATABASE_URI.
aiostreams_db_name "" PostgreSQL database name used when building DATABASE_URI.
aiostreams_db_user "" PostgreSQL user used when building DATABASE_URI.
aiostreams_db_password "" PostgreSQL password used when building DATABASE_URI.
pnpm_bin "/usr/bin/pnpm" Path to the pnpm binary used for build/start commands.

Dependencies

None.

Example Playbook

- hosts: aiostreams
  become: true
  vars_files:
    - ../../secrets.yml
  roles:
    - role: ansible-role-aiostreams
      vars:
        aiostreams_dir: "/opt/aiostreams"
        aiostreams_user: "aiostreams"
        aiostreams_base_url: "https://aio.example.com"

Example users.yml

Define users in playbooks/aiostreams/users.yml. The variable is loaded via vars_files in the playbook.

---
aiostreams_users:
  - name: Example user 1
    id: 1
    password: "examplepassword"
    quality: "UHD"
  - name: Example user 2
    id: 2
    password: "examplepassword"
    quality: "HD"

Supported user fields:

Variable Required Description
name yes Display name stored in the generated UUID fact map.
id yes Stable unique identifier used as the key in /etc/ansible/facts.d/aio_user_uuids.fact.
password yes User password sent to the AIOStreams API.
quality yes Selects the matching config template, for example userData-HD.j2 or userData-UHD.j2.
removed no When true, the user is deleted and the stored UUID is removed from local facts.

License

MIT / BSD

Author Information

Role is maintained by J&J