- Shell 40.6%
- Jinja 39.6%
- Python 19.8%
| assets | ||
| group_vars | ||
| roles | ||
| templates | ||
| .gitignore | ||
| ansible.cfg | ||
| hosts | ||
| LICENSE | ||
| playbook.yml | ||
| README.md | ||
| requirements.txt | ||
| requirements.yml | ||
livestreaming-pc-infra
IaC (Infrastructre-as-Code) for the Livestreaming PC at our Church.
This repository is a fork of github.com/j1mc/ansible-silverblue.
It configures a computer that is setup with the Linux Distribution Fedora Silverblue.
⚠️ IMPORTANT: ⚠️ Please read this entire document before proceeding with the setup. Pay special attention to the Manual Setup Steps section, as the Ansible playbook does not automate everything.
Included Roles
The main parts of this project can be seen in the 'roles' directory. Each role included there contains a README file that explains what the role is and how to use it. For starters, here is a brief summary of each role:
- layered_packages: Install or remove packages into / from the base rpm-ostree image.
- flatpaks: Install desired flatpak applications.
- fonts: Install custom fonts (this role is under the GPLv3 License).
- gnome_settings: Set various GNOME desktop settings. The role makes these changes via dconf.
- os_updates: Configure the auto-update policy for the host.
Variables
I've consolidated the project's variables into the group_vars/all file. This makes it easy to
update the project's variables from a single location. You should customize the values in that
file to set what changes get applied in the various roles.
Setup
Clone this repository with:
git clone https://git.mennoniten-basel.ch/noah/livestreaming-pc-infra.git
Install needed dependencies with:
cd livestreaming-pc-infra
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
ansible-galaxy collection install -r requirements.yml
Note: Before running the playbook, you need to retrieve the Ansible vault password from the password manager and save it to a file named
.ansible_vault_passin the root of this repository.
To run, issue the following command:
ansible-playbook playbook.yml`
Manual Setup Steps
The following configurations must be set manually through GNOME Settings or other apps after the initial setup:
-
Auto-Login: Go to Settings > System > Users, unlock the panel, and enable Automatic Login for the
livestreamuser.
-
Keyring Password: Open the Passwords and Keys app (Seahorse), right-click on the Login keyring, and select Change Password. Set it to a blank password so it doesn't prompt you upon automatic login.

-
Power Settings: Go to Settings > Power. Set Power Mode to Performance. Turn OFF both Automatic Screen Blank and Automatic Suspend.

-
Multitasking / Workspaces: Go to Settings > Multitasking. Under Workspaces, select Fixed Number of Workspaces and set the number to 1.

-
Enable SSH: Go to Settings > System > Secure Shell and toggle it ON.

-
Add Printer: Go to Settings > Printers, click Add Printer, and add the ET-2550 printer.

-
Online Accounts: Go to Settings > Online Accounts and add the Nextcloud account.

-
GNOME Extensions: Open the Extensions app. Enable Dash to Dock. (Note: Do not enable Smart Auto Move).

-
Hostname: Go to Settings > System > About and set the Device Name to
livestreaming_pc. Additionally, runhostnamectl set-hostname toolbxinside the toolbox.
-
Touchscreen Mapping: Find the touchscreen USB ID using
lsusb(e.g.,27c0:0859) and map it to the correct monitor output by running thegsettingscommand.
-
Date & Time (Top Bar): Go to Settings > System > Date & Time, and under the "Clock & Calendar" section, turn ON the toggles for Date, Seconds, and Week Numbers to display them in GNOME's top bar.

-
Thunderbird Email: Open the Thunderbird application and manually set it up with the email account
gottesdienst@mennoniten-basel.ch. -
Audio-Routing (PreSonus StudioLive zu OBS): Damit das Audio verlustfrei und rein digital in OBS ankommt, muss das Mischpult über FireWire eingebunden werden.
- Audio-Profil umstellen: Gehe in die GNOME-Einstellungen -> Audio (oder öffne das Programm
pavucontrol). Wähle beim StudioLive-Mischpult das Profil Pro Audio aus, damit alle 32 Kanäle freigeschaltet werden. - OBS-Einrichtung: Füge in OBS eine neue Audio-Eingabe (PipeWire) hinzu und wähle dort das Mikrofon StudioLive Main Mix aus.
- Hinweis: Durch das Ansible-Skript wird dieses virtuelle Mikrofon permanent im System erzeugt und greift vollautomatisch die richtigen FireWire-Kanäle (25/26) vom Mischpult ab. Es wird keine Patchbay-Software mehr benötigt.
- Audio-Profil umstellen: Gehe in die GNOME-Einstellungen -> Audio (oder öffne das Programm
License
This project is primarily licensed under the BSD License. However, please note that individual roles may be subject to different licenses:
- Main Project & most Roles: BSD License (Copyright © 2022 Jim Campbell)
- Fonts Role: GPLv3 License (Copyright © Tiago M. Vieira)
- URWGothic Fonts (
roles/sw_setup/files/share/custom_fonts): AGPLv3 with Font Exception (Copyright © 2017 URW++ Design & Development GmbH)
Please check the README.md and meta/main.yml files within each role directory for specific licensing details and author information.