Skip to content
View b0bbywan's full-sized avatar
🎯
Focused on https://odio.love
🎯
Focused on https://odio.love

Block or report b0bbywan

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
b0bbywan/README.md

Senior R&D Engineer from Lille, France. 15 years in tech startups (gaming, SaaS, IoT, robotics, logistics). My background is in systems and infrastructure. DevOps culture shaped the way I write code: what I ship is built to run in production, deploy cleanly, and last.

Stack

Go Python Linux Bash Ansible Docker PostgreSQL Prometheus Grafana AWS GitHub Actions Debian packaging Claude Code

minor stack

Home Assistant HACS MPD PulseAudio htmx Tailwind CSS TypeScript Vite Vercel

What I'm working on

odio — an open source audio streaming platform for Linux

Turns any machine (even a 2012 Raspberry Pi B) into a full multi-room streamer: Bluetooth, AirPlay, Spotify Connect, UPnP/DLNA, CD playback. No cloud, no account, no subscription.

A personal setup maintained in production for 6 years, turned into a complete installable product in 3 months.

odio embedded web UI — full dashboard odio PWA — multi-node management

Why odio is different

  • Runs in your systemd user session. Not as root. No exclusive audio locks, no sudo-minefield.
  • All sources share one PulseAudio mixer. MPD, shairport-sync, Snapclient, Bluetooth — you don't select a source, you just play.
  • API-first. The REST API is the product; the web UI is just one client. Drives Home Assistant, the PWA, your shell, whatever you wire up.
  • Source-agnostic via MPRIS + D-Bus. New players integrate without custom code.
  • Your streamer isn't a precious appliance — it's a reproducible host. One command installs or reinstalls it. Safe to poke at, safe to break.

More on the philosophy: how it works

Repositories

Repository Stack Description
go-odio-api Go REST API — D-Bus, PulseAudio, Bluetooth, MPRIS, systemd, Zeroconf, SSE, embed HTMX/Tailwind, multi-arch CI/CD, Debian packaging
odio-ha Python Home Assistant integration — Zeroconf, async SSE, native HA entities for each odio-api feature, HACS
odios Ansible odio Streamer — Raspberry images, playbooks, curl | bash install, multi-arch CI/CD
odio-pwa Svelte Progressive Web App — SSE real-time, iframe
go-mpd-discplayer Go CGo daemon — udev, MPD, CD/USB autoplay, multi-arch, Debian packaging
go-disc-cuer Go CGo Lib/CLI — CD metadata via GNUDB/MusicBrainz
go-odio-notify Go Notification library — PulseAudio, pure Go, embedded sounds
odio-apt-repo Debian APT repository — GitHub Actions, reprepro, GPG, multi-arch
odio.love Astro Landing page — Svelte + Tailwind
odio-docs Astro Documentation site — Starlight

Activity

Live numbers across all odio repos, pulled from docs.odio.love/stats.json since January 2026.

PRs merged commits releases stars forks

Elsewhere

odio Discord Malt freelance profile Medium odio.love project showcase GitHub Sponsors

Pinned Loading

  1. odios odios Public

    Odio Streamer Installer

    Shell 22 2

  2. go-odio-api go-odio-api Public

    Unleash the power of Linux multimedia. Transform any Linux system into a smart, controllable multimedia hub via simple REST API.

    Go 16 3

  3. odio-ha odio-ha Public

    HomeAssistant Integration for Odio

    Python 2

  4. go-mpd-discplayer go-mpd-discplayer Public

    MPD daemon client to autoplay audio disc, usb devices and scheduled uri

    Go 2

  5. odio-pwa odio-pwa Public

    Manage multiple Odio instances with this PWA

    TypeScript 1

  6. odio-docs odio-docs Public

    MDX 1 1