SyncopatedOS is an Ansible-based system configuration and management toolkit designed to automate the setup and maintenance of various specialized Linux environments.
The project is organized into the following collections:
- audio_production: Roles for configuring audio production environments including ALSA, JACK, PipeWire, and DAW setup
- desktop_environment: Desktop environment configuration roles
- development_tools: Development environment setup and tooling
- llmops_dev: LLM operations and development tools
- media_tools: Media processing and management tools
- shell_environment: Shell configuration and customization
- storage: Storage management and configuration
- system_core: Core system configuration roles
- system_services: System service management and configuration
Available playbooks for different system configurations:
- base.yml: Basic system setup including user configuration, shell setup, and networking
- full.yml: Complete system setup combining all major roles and configurations
- utils.yml: Utility scripts and tools installation
- daw.yml: Digital Audio Workstation setup with audio system configuration
- workstation.yml: Desktop workstation setup with GUI applications and development tools
- virt.yml: Virtualization environment setup with Docker and KVM
- nas.yml: Network Attached Storage configuration
- llmos.yml: LLM operations system setup
- homepage.yml: System dashboard/homepage setup
The playbooks support different types of system configurations:
-
Base System
- Core system configuration
- User management
- Shell environment
- Network setup
-
Workstation
- Desktop environment (i3/GNOME)
- Development tools
- Media applications
- Input device configuration
-
Audio Production
- ALSA configuration
- JACK audio server
- PulseAudio setup
- DAW tools and plugins
-
Virtualization
- Docker configuration
- KVM/libvirt setup
- Development environments
- Clone the repository:
git clone https://github.com/b08x/dotfiles.git
- Install requirements:
pip install -r requirements.txt
- Run a playbook:
ansible-playbook playbooks/[playbook].yml
Replace [playbook]
with the desired configuration (e.g., base.yml, workstation.yml, daw.yml).
Playbooks use tags for selective role execution. Common tags include:
base
: Basic system configurationuser
: User managementshell
: Shell environment setupnetworking
: Network configurationdaw
: Audio production setupi3
/gnome
: Desktop environment configurationapplications
: General application installationtheme
: System theming and appearance
Example usage with tags:
ansible-playbook playbooks/full.yml --tags "base,networking"
The project includes a powerful LLM (Large Language Model) Analyzer that leverages various AI providers to analyze Ansible tasks and playbooks. This feature helps maintain code quality and suggests improvements based on best practices.
- OpenAI (GPT models)
- Google Gemini
- Groq
- Cohere
- Anthropic (Claude models)
- Analyzes individual tasks and complete playbooks
- Provides suggestions for best practices and improvements
- Identifies potential issues and inefficiencies
- Generates detailed analysis reports in Markdown format
- Supports customizable temperature and token limits
- Includes API key validation and error handling
The LLM Analyzer can be configured in your ansible.cfg or via environment variables. Example configuration:
[defaults]
callback_plugins = ./plugins/callback
callback_whitelist = llm_analyzer
[callback_llm_analyzer]
provider = openai
api_key = sk-xxx # Or set via OPENAI_API_KEY environment variable
model = gpt-4
temperature = 0.4
max_tokens = 1000
You can also use OpenRouter as a provider to access various AI models through a single API.