Skip to content

Commit

Permalink
Merge branch 'release/0.7.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
b08x committed Jun 29, 2024
2 parents 65f46f7 + c40f969 commit b189b4c
Show file tree
Hide file tree
Showing 720 changed files with 72,850 additions and 867 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
roles/ansible-pyenv/.vscode/.prettierrc.yaml
*.pyc
tmp/
*.mp4
Expand All @@ -15,3 +16,6 @@ galaxy_cache/
galaxy_token
docs/build/
hostvars.json
*.zip
*.qcow2
*.iso
18 changes: 10 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
<h3 align="center">
<br>
<img height="300" src="https://github.com/b08x/syncopatedIaC/blob/development/docs/images/pixelcrow03.png?raw=true"> <br>
SyncopatedCaC: Configuration as Code for Linux Workstations
<br>
</h1>
<img align="left" width=460 height=400 src="https://github.com/b08x/syncopatedCaC/blob/development/files/workspace07.jpeg?raw=true"><h2>Configuration as Code for Linux Workstations</h2>

This [project](https://github.com/users/b08x/projects/9?pane=info) applies Configuration as Code (CaC) principles to streamline the management of Linux workstations for audio production and software development. The project focuses on organization, reproducibility, consistency and simplicity.
This project is an exercise codified configuration.

The project prioritizes three key objectives:

<p>Organization: To improve the maintainability and overall understanding of the workstation environment for administrators and users alike.</p>
<p>Reproducibility: Consistent and reliable configurations, enabling predictable and stable provisionings</p>
<p>Simplicity: While achieving the aforementioned goals, the project attempts to maintain a straight-forward approach.</p>
<br clear="left"/>

## Objectives

Expand Down Expand Up @@ -71,7 +73,7 @@ This [project](https://github.com/users/b08x/projects/9?pane=info) applies Confi
* Manage model versions, dependencies, and resource allocation across your workstations.
* Optimize networking and storage configurations to streamline access and data transfer for LLM tasks.

## Call to Action
## Collaboration

Contributions from audio professionals, software developers, and Linux enthusiasts are welcome. Let's collaborate to build a versatile solution for managing Linux audio and development environments!

Expand Down
36 changes: 36 additions & 0 deletions about.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/home/b08x/Workspace/syncopatedOS/cac/about.md
## Syncopated OS: Another Linux Distribution

This project, a use-case exercise applied to many facets of IT Infrastructure and Support, years of personal tinkering and exploration, is what I like to refer to as "Syncopated OS" – a customized Linux environment designed specifically for professional audio production and sound engineering. It leverages the lightweight foundation of the minimal ArchLabs installation and layers on top of it an Ansible-based overlay, pre-configuring the system for optimal audio workflow.

Think of it as a digital audio workstation (DAW) on prescribed medications – a blank canvas to frustrte oneself with choice, prepped with the essential tools and settings an audio engineer would need, ready for you to unleash your creativity. But unlike a traditional DAW, Syncopated OS offers the flexibility and power of a full Linux system beneath the hood.

Here's a deeper dive into the functionalities:

* **Effortless Setup:** Hah...Well, like doing a loads. Syncopated OS leverages a pre-configured script to automate the process of creating bootable installation media. This streamlined approach saves you valuable time, allowing you to focus on what matters most: capturing that fleeting sonic inspiration. Or does it?

* **Customizable Control Beneath the Hood:** The Ansible-powered overlay provides a foundation pre-loaded with essential audio production tools and configurations. This ensures a smooth out-of-the-box experience, but it doesn't lock you into a rigid setup. For those who prefer to tinker, the granular control of the underlying Linux system remains accessible. You can tailor the environment to your specific workflow, install additional software, or fine-tune configurations to match your unique needs.

* **Kernel Options to Match Your Workflow:** Syncopated OS understands that a one-size-fits-all approach to kernels doesn't serve everyone. We offer a selection of kernels depending on your specific needs. Stability for long recording sessions where downtime is a nightmare? The Long Term Support (LTS) kernel might be your best bet. Prioritize low-latency performance for real-time processing tasks like mixing and mastering? The Real-Time kernel has you covered. Choose the kernel that best aligns with your workflow and performance requirements.

* **Security and Storage Management:** Industry-standard LUKS encryption safeguards your precious audio projects, a vital layer of protection against unauthorized access. Whether it's a groundbreaking symphony or a confidential client project, your work deserves the best possible security. Logical Volume Management (LVM) offers flexibility in managing your storage partitions. Resize, expand, or shrink them on the fly to adapt to your ever-growing project library. Need to dedicate more space to sample libraries or accommodate a massive video editing project? LVM empowers you to make those adjustments dynamically.

* **Testing Made Simple:** A handy Ruby script simplifies the creation of a virtual machine environment for testing your customized installation before deploying it on your main production machine. This allows you to catch any potential issues or configuration conflicts in a safe, isolated environment before they disrupt your workflow. Imagine the peace of mind of knowing your meticulously crafted audio production environment functions flawlessly before migrating it to your primary system.

**Installation (For the Those Who Don't Have Family or Intentions Towards One):**

While Syncopated OS aims to streamline the process, some Linux familiarity is recommended for a smooth installation. Here's a basic outline (specific instructions will be available on a dedicated website, link to be added later):

1. Download the ISO from the Syncopated OS website.
2. Create a bootable USB drive using a tool like Etcher ([https://etcher.balena.io/](https://etcher.balena.io/)).
3. Boot from the USB and follow the on-screen instructions during installation.
4. Reboot your system to start using Syncopated OS.

**Focus on Your "Art", not your contribution to Society:**

Syncopated functions just like a regular Linux operating system, but with a pre-configured environment specifically tailored for audio production. This eliminates the need to spend hours configuring settings and installing software, freeing you to focus on what matters most: crafting your next sonic masterpiece. Whether you're a seasoned sound engineer or a budding audiophile, Syncopated OS empowers you to dive headfirst into your creative endeavors without getting bogged down in technical minutiae.That's the idea anyway. Pretty decent, I think.

**Ethos and General Open Source Mantra Language**

!!

Binary file added files/workspace07.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions group_vars/server.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,10 @@ nas:

pi:
hole:

terminal: "xterm-256color"
terminal_alt: "xterm-256color"


wm: shell
browser: "w3m"
4 changes: 4 additions & 0 deletions group_vars/workstation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,7 @@ dm: False
wm: "i3"

browser: "google-chrome-stable"

chaoticrepo: True

asset_folder: "{{ lookup('env','HOME') }}/Library"
4 changes: 0 additions & 4 deletions group_vars/workstation/daw.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@ expected_value: "groupvars_workstation_daw"

audio: "jack"

dm: False
wm: "i3"

browser: "google-chrome-stable"

# reaper:
# vamp:
Expand Down
10 changes: 1 addition & 9 deletions group_vars/workstation/dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,7 @@

expected_value: "groupvars_workstation_dev"

terminal: "kitty"
terminal_alt: "alacritty"

audio: "jack"

dm: False
wm: "i3"

browser: "google-chrome-stable"
chaoticrepo: True

install_vscode: True
install_pulsar: True
Expand Down
7 changes: 0 additions & 7 deletions host_vars/bender.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,6 @@ share:
- backup
- storage

terminal: "xterm-256color"
terminal_alt: "xterm-256color"

audio: False

wm: shell
browser: "w3m"

# network_interfaces:
# - device: enp2s0
Expand Down
7 changes: 0 additions & 7 deletions host_vars/crambot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,6 @@ share:
parent: ""
exports: []

terminal: "xterm-256color"
terminal_alt: "xterm-256color"


wm: shell
browser: "w3m"

#
# network_interfaces:
# - device: eno1
Expand Down
14 changes: 3 additions & 11 deletions host_vars/lapbot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,10 @@ install_pulsar: False

use_bluetooth: True

chaoticrepo: True

bluetooth: True
# share:
# nfs:
# parent: ""
# exports: []
# barrier:
# server:
# name: soundbot.syncopated.net
# address: '[soundbot.syncopated.net]:24800'
# config: "{{ user.home }}/.config/Debauchee/soundbot.conf"

browser: "google-chrome-stable"

#
# x:
# autostart:
Expand Down
11 changes: 7 additions & 4 deletions host_vars/ninjabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ share:
exports:
- storage

chaoticrepo: True
bind_share_exports: False

# TODO: test whether or not this variable will overwrite the defaults with nothing..
# docker:
# service: 'enabled'
Expand All @@ -15,6 +16,10 @@ chaoticrepo: True

nvidia:

cpu:
min_freq: 3000
max_freq: 3200

dm: False
browser: "google-chrome-stable"
terminal: "kitty"
Expand All @@ -34,8 +39,6 @@ x:
i3:
autostart:
- "barrierc -f --debug INFO --name ninjabot --disable-crypto [tinybot]:24800"
- "sleep 0.5"
- "barrierc -f --debug INFO --name ninjabot --disable-crypto [soundbot]:24801"
tray_output: 'primary'
assignments: 'default'
workspaces: 'default'
Expand Down Expand Up @@ -95,7 +98,7 @@ host:
- nvidia-470xx-dkms
- nvidia-470xx-settings
- nvidia-470xx-utils
- nvidia-container-runtime
# - nvidia-container-runtime
- nvidia-container-toolkit
# - nvidia-docker
- nvidia-docker-compose
Expand Down
19 changes: 5 additions & 14 deletions host_vars/soundbot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

ansible_distribution: EndeavourOS

chaoticrepo: False

share:
nfs:
parent: "{{ user.home }}"
exports:
- LLMOS
- Recordings
- Workspace

bind_share_exports: True
Expand All @@ -20,31 +20,22 @@ cpupower:
governor: performance
perf_bias: 0

browser: "google-chrome-stable"

#TODO: this
# tuned:
# profile: powersave

audio: "jack"

# barrier:
# client:
# name: soundbot
# server: "[tinybot]:24800"
# server:
# name: soundbot
# address: "[soundbot]:24801"
# config: "{{ user.home }}/.config/Debauchee/soundbot.conf"

x:
autostart:
- bash ~/.screenlayout/soundbot.sh

i3:
autostart:
- "tilda"
- "ray-daemon --session-root ~/NetworkSessions -p 7777"
- "sleep 0.5"
- "barriers --debug INFO --name soundbot --disable-crypto --disable-client-cert-checking -c /home/b08x/.config/Debauchee/soundbot.conf --address :24801"
- "ray-daemon --session-root ~/Studio/NetworkSessions -p 7777"
- "sleep 0.5"
- "barrierc -f --no-tray --debug INFO --name soundbot --disable-crypto [tinybot]:24800"
tray_output: "primary"
Expand Down
34 changes: 18 additions & 16 deletions host_vars/tinybot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@
use_docker: True
use_libvirt: True

chaoticrepo: True

share:
nfs:
parent: "{{ user.home }}"
exports:
- LLMOS
- Recordings
- Sessions
- Workspace

bind_share_exports: True

cpupower:
governor: performance
Expand All @@ -22,14 +23,15 @@ terminal_alt: "alacritty"
dm: False
browser: "google-chrome-stable"

# barrier:
# client:
# name: tinybot
# server: "[soundbot]:24801"
# server:
# name: tinybot
# address: "[tinybot]:24800"
# config: "{{ user.home }}/.config/Debauchee/tinybot.conf"
font:
primary:
name: Hack Nerd Font
size: 14
hintstyle: hintsfull
glyphs:
name: Font Awesome 6 Free Regular
mono:
name: Hack Nerd Font Mono

x:
autostart:
Expand All @@ -40,18 +42,18 @@ i3:
- "tilda -g ~/.config/tilda/config_0"
- "tilda -g ~/.config/tilda/config_1"
- "barriers -f --no-tray --debug INFO --name tinybot --disable-crypto --disable-client-cert-checking -c /home/b08x/.config/Debauchee/tinybot.conf --address :24800"
tray_output: "DP-2"
tray_output: "primary"
assignments: "default"
workspaces:
- "$ws1 output HDMI-1"
- "$ws2 output HDMI-1"
- "$ws2 output DP-2"
- "$ws3 output HDMI-1"
- "$ws4 output HDMI-1"
- "$ws4 output DP-2"
- "$ws5 output HDMI-1"
- "$ws6 output HDMI-1"
- "$ws6 output DP-2"
- "$ws7 output HDMI-1"
- "$ws8 output DP-2"
- "$ws9 output DP-2"
- "$ws9 output HDMI-1"
- "$ws10 output DP-2"
keybindings: "default"

Expand Down
7 changes: 3 additions & 4 deletions inventory.ini
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,13 @@ dev
llmos

[dev]
soundbot ansible_connection=local distro=EndeavourOS
tinybot
soundbot distro=EndeavourOS
lapbot expected_value=Inventory_workstation_vars
;crambot distribution=Almalinux

[daw]
lapbot expected_value=Inventory_workstation_vars
tinybot
tinybot ansible_connection=local
soundbot distro=EndeavourOS

[llmos]
ninjabot nvidia=True
Expand Down
Loading

0 comments on commit b189b4c

Please sign in to comment.