Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 

Repository files navigation

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
odios Ansible odio Streamer — Raspberry images, playbooks, curl | bash install, multi-arch CI/CD
go-odio-api Go REST API — D-Bus, PulseAudio, Bluetooth, MPRIS, systemd, Zeroconf, SSE, embed HTMX/Tailwind, multi-arch CI/CD, Debian packaging
odio-pwa Svelte Progressive Web App — SSE real-time, iframe
odio-ha Python Home Assistant integration — Zeroconf, async SSE, native HA entities for each odio-api feature, HACS
go-mpd-discplayer Go CGo daemon — udev, MPD, CD/USB autoplay, multi-arch, Debian packaging
snapclientmpris Python MPRIS2 bridge for Snapcast — async D-Bus, dbus-fast, Zeroconf, systemd, Debian packaging
mpd2mpris Python MPRIS2 bridge for MPD — asyncio + dbus-fast rewrite, python-mpd2, systemd
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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors