Portfolio
genieacs-container
The original and most popular Helm Chart and Docker container for GenieACS, an open-source TR-069 ACS (Auto Configuration Server).
Currently used by thousands of ISPs around the world. Still, I feel nostalgic when thinking about my journey with it: I was the first person to create a fully working guide for Ubuntu installation in 2015, the first to run GenieACS dockerized back in 2016, and the first to run GenieACS in CentOS-based distros, which was a requirement for one of my clients back then.
Key Features:
- Production-ready Docker images for GenieACS
- Official Helm chart for Kubernetes deployments
- Automated chart releases via GitHub Actions
- Security best practices with non-root user
- Health checks and monitoring support
- Multi-architecture support (amd64, arm64)
Tech Stack: Docker, Kubernetes, Helm
Telegram-Archive
Own your Telegram history. Automated, incremental backups with a local web viewer that feels just like the real app. Docker-ready and supports public chat sharing.
It has become the de-facto standard to backup Telegram on your own server.
Key Features:
- Incremental backups — only downloads new messages
- Configurable cron schedule
- Docker-ready deployment
- Web viewer with Telegram-like UI (mobile-friendly)
- Restricted viewer for sharing specific chats
- Voice/audio player built-in
- Export chat history to JSON
Tech Stack: Python, Docker, Telethon
VPN-Bypass
macOS menu bar app to bypass VPN for specific domains and services. Route traffic intelligently when your corporate VPN is too aggressive.
Born out of frustration with corporate VPNs that route everything through the tunnel. This lightweight menu bar app lets you selectively bypass the VPN for specific domains — streaming, personal services, whatever you need.
Key Features:
- Native macOS menu bar app
- Selective domain-based VPN bypass
- Lightweight and fast — no performance impact
- Installable via Homebrew
Tech Stack: Swift, macOS
whisper-subs
Jellyfin plugin for local AI-powered subtitle generation using Whisper — all processing stays on your server.
Tired of missing subtitles on my media library, I built this plugin to auto-generate them using OpenAI's Whisper model. Runs entirely on your hardware — no cloud APIs, no data leaving your machine.
Key Features:
- AI-powered subtitle generation via Whisper
- Runs 100% locally on your server
- GPU acceleration support (NVIDIA CUDA)
- Automatic language detection
- Configurable model sizes for speed vs accuracy
Tech Stack: C#, Jellyfin Plugin API, Whisper
LynxPrompt
Self-hosted & federated platform for AI IDE/Tools Rules and Commands via WebUI & CLI — Generate, browse, store, share AGENTS.md, CLAUDE.md, and more.
A platform I built for the growing AI-assisted development community. Think of it as a hub for sharing and discovering AI IDE configuration files — the rules that make tools like Claude Code, Cursor, and Windsurf work better.
Key Features:
- Web UI for browsing and managing prompt rules
- CLI tool for fetching rules directly into your project
- Federation support between instances
- Self-hostable with Docker
- CLI installable via Homebrew
Tech Stack: TypeScript, Node.js, Docker
Pumperly
Open-source fuel & EV route planner. Real-time prices across enabled countries. Self-hostable.
A route planner that actually considers fuel prices along your route, not just the shortest path. Supports both traditional fuel and EV charging stations.
Key Features:
- Real-time fuel price comparison along routes
- EV charging station integration
- Smart detour calculation for cheaper fuel
- Self-hostable with Docker
Tech Stack: TypeScript, Next.js, MapLibre, Docker
genieacs-mcp
MCP Server for GenieACS written in Go. A tiny bridge that exposes any GenieACS instance as an MCP server, enabling LLMs to interact with network infrastructure.
I released it in the same month MCP became a thing, just to test the protocol out. But still, useful for GenieACS operators.
Key Features:
- Expose GenieACS data as MCP resources
- Invoke actions on CPE devices through GenieACS
- LLM-friendly JSON-RPC interface
- Docker support
Tech Stack: Go, MCP, Docker
quality-gate
Jellyfin plugin to restrict users to specific media versions based on path-based policies.
Built for my home media server to control which quality versions different users can access.
Tech Stack: C#, Jellyfin Plugin API
genieacs-services
Systemd and Supervisord service files for GenieACS processes. The recommended way to deploy GenieACS in production environments.
Used by the GenieACS Container repository, but also useful in case you want to deploy it the ol' style (VMs).
Tech Stack: Shell, Systemd, Supervisord
Personal-Genome-Pipeline
Whole genome sequencing analysis pipeline for consumer hardware. 100% local, Docker-powered, free and open source.
A comprehensive pipeline that takes raw sequencing data (FASTQ/BAM/VCF) from any vendor and produces a full genomic profile: variant calling, pharmacogenomics, structural variants, cancer predisposition, polygenic risk scores, ancestry, telomere length, and more.
Key Features:
- 31 analysis steps covering SNPs, indels, SVs, CNVs, repeat expansions, PGx, and more
- 100% local processing — your genome never leaves your machine
- Supports short-read (Illumina) and long-read (ONT, PacBio) sequencing
- Resource-limited Docker containers — won't crash your desktop or NAS
- Comprehensive docs for non-bioinformaticians
Tech Stack: Bash, Docker, DeepVariant, VEP, PharmCAT, bcftools, Manta, Delly, plink2
Wayback-Archive
Download complete websites from the Wayback Machine with full asset preservation for offline viewing.
When you need to preserve a website exactly as it was — images, CSS, JavaScript, everything — this tool downloads it all from the Wayback Machine and reconstructs it locally.
Key Features:
- Full website download from Wayback Machine
- Complete asset preservation (images, CSS, JS)
- Organized local file structure
Tech Stack: Python
paperless-telegram-bot
Manage Paperless-NGX documents entirely through Telegram — upload, search, tag, and organize your paperless archive on the go.
I use Paperless-NGX daily and wanted a way to quickly upload and search documents from my phone without opening a browser.
Key Features:
- Upload documents directly via Telegram
- Full-text search across your archive
- Tag and organize from chat
- Docker-ready deployment
Tech Stack: Python, FastAPI, Docker
smart-covers
Jellyfin plugin for fallback cover extraction from PDF, EPUB, and audiobook files, with online fallback via Open Library and Google Books.
Extracts embedded cover images from media files and fetches them from online sources when needed. Supports a wide range of formats including PDF, ePub, CBZ/CBR, and audio files.
Key Features:
- Extracts cover images from books, audiobooks, comics, and magazines
- Online fallback via Open Library & Google Books
- Music library cover support
- Supports PDF, ePub, CBZ/CBR, and audio formats
Tech Stack: C#, Jellyfin Plugin API
CashPilot
Self-hosted platform to deploy, manage, and monitor 40+ passive income services from a single web UI.
Born out of frustration with managing dozens of bandwidth-sharing containers by hand. CashPilot started as a personal dashboard and grew into a full deployment platform with a setup wizard, earnings tracking, and fleet management across multiple servers.
Key Features:
- One-click Docker deployment for 16+ passive income services
- Real-time earnings dashboard with historical charts and trend analysis
- Container health monitoring with CPU, memory, network, and uptime metrics
Tech Stack: Python, FastAPI, SQLite, Docker, HTML/CSS
services-isp
Webapp which automates common tasks for a common ISP
Tech Stack: R
AgentTap
Capture AI agent API traces at the network level via split VPN + local MITM proxy. Zero per-app config.
Every existing approach to capturing what your AI agents send and receive is fragile — JSONL scraping, manual cert swaps, per-app proxy env vars. AgentTap intercepts at the network layer so it works with any tool automatically, whether it's Claude Code, Cursor, or Codex.
Key Features:
- Zero per-app configuration — works at the network level via selective VPN routing
- Real-time SSE streaming capture for multi-provider AI traffic
- Fully local storage — traces never leave your machine
Tech Stack: TypeScript, ElectroBun, Swift FFI, SQLite, Bun
slskd-transform
Bulk upgrade your music library from lossy to lossless FLAC via Soulseek and SLSKD
Tech Stack: Python
statix
Webapp that shows graphics for a common ISP
Tech Stack: R
telegram-delay-channel-cloner
Telegram bot that relays messages between channels with configurable delay and batch processing
Tech Stack: Python, Docker, Telegram
telegram-slskd-local-bot
Automated music discovery and download via Telegram bot. Resolves metadata from Spotify, searches and downloads FLAC from Soulseek (slskd), and organizes your library. Docker-ready.
Tech Stack: Python, Docker, Telegram
BuscaPaginasBlancas
OSINT tool for extracting contact information from Spanish white pages (Paginas Blancas).
A quick Python scraper I built to automate lookups on Spain's public phone directory. Useful for OSINT research and verifying contact info — something that's surprisingly tedious to do by hand.
Key Features:
- Automated scraping of Paginas Blancas search results
- Extracts names, phone numbers, and addresses
- Simple CLI interface for quick lookups
Tech Stack: Python, BeautifulSoup, Requests
CashPilot-android
Android companion app for CashPilot — monitors passive income apps running on your phone without root.
CashPilot manages Docker containers on servers, but some passive income apps only run on Android. This agent detects which apps are installed and active using three complementary APIs — no root needed — and reports back to the fleet dashboard.
Key Features:
- Detects 11 passive income apps via NotificationListener, NetworkStats, and UsageStats
- Periodic heartbeats to CashPilot server for unified fleet monitoring
- No root required — uses standard Android APIs (API 26+)
Tech Stack: Kotlin, Jetpack Compose, Ktor, Material 3, WorkManager
cashpilot-ha
Home Assistant custom integration for CashPilot — track earnings, monitor service health, and control containers from HA.
I run Home Assistant for everything at home, so it felt natural to bring passive income monitoring into the same dashboard. Now I get push notifications when a service goes down and can auto-restart unhealthy containers from an automation.
Key Features:
- Sensors for total, daily, and monthly earnings plus per-service health scores
- Switches and buttons to start, stop, and restart individual services
- Fleet overview with online workers and running containers
Tech Stack: Python, Home Assistant, HACS, aiohttp
cashpilot-mcp
MCP server that exposes CashPilot to LLMs — monitor earnings, manage services, and control fleet workers via natural language.
Once CashPilot was running, I wanted to ask my AI assistant 'how much did I earn today?' and actually get an answer. This MCP bridge makes that possible — listed on the official MCP registry and five other directories.
Key Features:
- Resources and tools for earnings, services, fleet status, and health scores
- Dual transport: HTTP (JSON-RPC) and stdio for any MCP-compatible client
- Listed on the official MCP Registry, Glama, MCPServers.org, mcp.so, and ToolSDK
Tech Stack: Go, MCP-GO, Docker, GoReleaser, npm
ePubLangMerger
Merge two ePub files in different languages into a single bilingual ebook for parallel reading
Tech Stack: R
genieacs-sim-container
Docker for the GenieACS Simulator
Tech Stack: Dockerfile, Docker
jellyfin-encoder
Automatic 720p HEVC/AV1 transcoding service for Jellyfin with NVIDIA and Intel hardware acceleration
Tech Stack: Python, Docker, Jellyfin
jellyfin-telegram-channel-sync
Sync Jellyfin user access with Telegram channel membership - auto-disable accounts when members leave
Tech Stack: Python, Docker, Jellyfin, Telegram
media-download
Downloads all media files from any web page into a folder schema
Tech Stack: Python, Docker
Minecraft-Youtube-Follower
24/7 automated Minecraft server streaming with intelligent player following and voice chat integration
Tech Stack: JavaScript, Docker, Nodejs
secciones-nacionalidades
Foreign Insight - WebApp providing insights about nationalities in Spain (Source: Instituto Nacional de Estadística)
Tech Stack: R
telegram-archive-mcp
MCP server for Telegram-Archive — lets LLMs search messages, browse chats, and access archived Telegram history.
I archive all my Telegram messages locally with Telegram-Archive. This MCP bridge lets me ask my AI assistant to find old conversations, search across chats, and pull up messages by date — without ever opening the Telegram app.
Key Features:
- Full-text message search, date-range retrieval, and pinned message access
- Read-only resources for archive stats, chat lists, folders, and health
- Listed on the official MCP Registry, Glama, MCPServers.org, mcp.so, and ToolSDK
Tech Stack: Go, MCP-GO, Docker, GoReleaser, npm
web-mirror
Mirror any webpage to a local server for offline access
Tech Stack: Python, Docker
GitHub Stats
Total Stars: 809+
Public Repositories: 45
Primary Languages: Python, Dockerfile, Swift, C#, TypeScript, Go, Shell, R, Kotlin, JavaScript
Focus Areas: Self-hosted, Open-source, Docker, Automation, Python, Homelab, Spain, Awesome