View t-philip's full-sized avatar

    Block or report t-philip

    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.

    Content in all repositories owned by your account will be closed.
    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
    t-philip/README.md

    Hi, I'm T. Philip 👋

    An explorer in the world of technology — I build and self-host things across AI, Python, homelab infrastructure, networking and automation.

    Most of what you'll find here started as something I wanted for myself, then got cleaned up enough to be worth sharing. Everything is self-hostable, documented, and free to use.


    📂 Projects by category

    📡 ESP32 Projects

    ProjectWhat it does
    spotify-nowplayingA WiFi display showing your currently-playing Spotify track — album art, progress, and transport controls from a web dashboard. Observes playback on your other devices, so no audio hardware is needed.
    wifi-signal-scannerA live WiFi signal-strength meter on a small TFT — strength label, RSSI in dBm, and a scrolling history graph for walking a signal around a building. You pick the network in a browser, so nothing needs recompiling.

    🛡️ Blocklists for DNS

    ProjectWhat it does
    blocklistsHosts-format blocklists for Pi-hole, AdGuard Home, or any hosts-file blocker. Malware/phishing domains and streaming-service domains, with setup instructions for both.

    Drop straight into your blocker:

    🔐 Tools

    ProjectWhat it does
    bitwarden-vaultwarden-syncSyncs a Bitwarden.com vault to a self-hosted Vaultwarden instance — attachments included — with encrypted backups and Telegram alerts.
    network-monitorSee what your own Windows machine is actually sending — a live browser dashboard of HTTP and HTTPS traffic, with decrypted headers and bodies, covering background apps and not just your browser. Nothing is written to disk and nothing leaves the machine. Reading HTTPS means trusting a local root certificate, and the README is upfront about what that costs you.

    🐍 Python

    ProjectWhat it does
    sky-radarReal-time flight tracking dashboard — Flask + Socket.IO backend, Leaflet map, OpenSky Network API, with watchlist alerting and JSONL logging.
    omnimeterSelf-hosted dashboard for household power, gas, water and battery usage. Works with any P1 smart meter — live polling or CSV import — tracks costs against your own energy tariff, and estimates solar self-sufficiency.

    🖥️ Scripts & Guides

    ProjectWhat it does
    scriptsRouter outage monitoring (systemd + CSV logging), Windows app provisioning via winget, an EVE-NG on VMware setup guide, and Python utilities.

    🛠️ What to expect

    These started as tools I wanted for myself, so they're shaped by having to live with them rather than demo them. They run on your own hardware — no account to create, no hosted service in the middle, no telemetry.

    Every project here carries a tagged release with notes written for someone running the software rather than reading commit history, and its own issue tracker with templates. Where something is implemented but not yet verified, the documentation says so rather than implying otherwise.

    Every project also ships a design spec (docs/DESIGN_SPEC.md) explaining how it's built and why, reconciled against the actual shipped code — not a pre-launch plan left to go stale.

    🐞 Found a bug? Have an idea?

    Every project above has its own issue tracker. Open the repository you're using and file an issue there — each one has templates so you know what's useful to include. Bug reports, documentation corrections and feature ideas are all welcome.

    For anything security-related in bitwarden-vaultwarden-sync, please use its private reporting channel rather than a public issue.


    All public content is open to use — please credit t-philip. Repositories are AGPL-3.0 licensed unless stated otherwise.

    Pinned Loading

    1. omnimeteromnimeterPublic

      Self-hosted energy dashboard for household power, gas, water and battery usage. Works with any P1 smart meter.

      Python

    2. spotify-nowplayingspotify-nowplayingPublic

      ESP32 WiFi display showing your currently-playing Spotify track — album art, progress, and transport controls via a web dashboard. Observes playback on your other devices; no audio hardware needed.

      C++

    3. wifi-signal-scannerwifi-signal-scannerPublic

      Live WiFi signal-strength meter on an ESP32 with an ST7789 TFT. Pick your network in a browser, no recompiling.

      C++

    , 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
     blocks
    (function() {
    function addCopyButtons() {
    document.querySelectorAll('pre code').forEach(function(codeBlock) {
    if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
    codeBlock.parentElement.setAttribute('data-copy-added', 'true');
    var btn = document.createElement('button');
    btn.textContent = 'Copy';
    btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
    btn.onmouseover = function() { this.style.opacity = '1'; };
    btn.onmouseout = function() { this.style.opacity = '0.7'; };
    btn.onclick = function() {
    navigator.clipboard.writeText(codeBlock.textContent).then(function() {
    btn.textContent = 'Copied!';
    setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
    });
    };
    codeBlock.parentElement.style.position = 'relative';
    codeBlock.parentElement.appendChild(btn);
    });
    }
    addCopyButtons();
    // Re-run on dynamic content
    var observer = new MutationObserver(addCopyButtons);
    observer.observe(document.body, { childList: true, subtree: true });
    })();
    }
    } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
    })();
    (function(){
    try {
    var __m = "github.com";
    var __re = new RegExp('^' + "github\\.com" + '
    
    Skip to content
    View t-philip's full-sized avatar

      Block or report t-philip

      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.

      Content in all repositories owned by your account will be closed.
      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
      t-philip/README.md

      Hi, I'm T. Philip 👋

      An explorer in the world of technology — I build and self-host things across AI, Python, homelab infrastructure, networking and automation.

      Most of what you'll find here started as something I wanted for myself, then got cleaned up enough to be worth sharing. Everything is self-hostable, documented, and free to use.


      📂 Projects by category

      📡 ESP32 Projects

      ProjectWhat it does
      spotify-nowplayingA WiFi display showing your currently-playing Spotify track — album art, progress, and transport controls from a web dashboard. Observes playback on your other devices, so no audio hardware is needed.
      wifi-signal-scannerA live WiFi signal-strength meter on a small TFT — strength label, RSSI in dBm, and a scrolling history graph for walking a signal around a building. You pick the network in a browser, so nothing needs recompiling.

      🛡️ Blocklists for DNS

      ProjectWhat it does
      blocklistsHosts-format blocklists for Pi-hole, AdGuard Home, or any hosts-file blocker. Malware/phishing domains and streaming-service domains, with setup instructions for both.

      Drop straight into your blocker:

      🔐 Tools

      ProjectWhat it does
      bitwarden-vaultwarden-syncSyncs a Bitwarden.com vault to a self-hosted Vaultwarden instance — attachments included — with encrypted backups and Telegram alerts.
      network-monitorSee what your own Windows machine is actually sending — a live browser dashboard of HTTP and HTTPS traffic, with decrypted headers and bodies, covering background apps and not just your browser. Nothing is written to disk and nothing leaves the machine. Reading HTTPS means trusting a local root certificate, and the README is upfront about what that costs you.

      🐍 Python

      ProjectWhat it does
      sky-radarReal-time flight tracking dashboard — Flask + Socket.IO backend, Leaflet map, OpenSky Network API, with watchlist alerting and JSONL logging.
      omnimeterSelf-hosted dashboard for household power, gas, water and battery usage. Works with any P1 smart meter — live polling or CSV import — tracks costs against your own energy tariff, and estimates solar self-sufficiency.

      🖥️ Scripts & Guides

      ProjectWhat it does
      scriptsRouter outage monitoring (systemd + CSV logging), Windows app provisioning via winget, an EVE-NG on VMware setup guide, and Python utilities.

      🛠️ What to expect

      These started as tools I wanted for myself, so they're shaped by having to live with them rather than demo them. They run on your own hardware — no account to create, no hosted service in the middle, no telemetry.

      Every project here carries a tagged release with notes written for someone running the software rather than reading commit history, and its own issue tracker with templates. Where something is implemented but not yet verified, the documentation says so rather than implying otherwise.

      Every project also ships a design spec (docs/DESIGN_SPEC.md) explaining how it's built and why, reconciled against the actual shipped code — not a pre-launch plan left to go stale.

      🐞 Found a bug? Have an idea?

      Every project above has its own issue tracker. Open the repository you're using and file an issue there — each one has templates so you know what's useful to include. Bug reports, documentation corrections and feature ideas are all welcome.

      For anything security-related in bitwarden-vaultwarden-sync, please use its private reporting channel rather than a public issue.


      All public content is open to use — please credit t-philip. Repositories are AGPL-3.0 licensed unless stated otherwise.

      Pinned Loading

      1. omnimeteromnimeterPublic

        Self-hosted energy dashboard for household power, gas, water and battery usage. Works with any P1 smart meter.

        Python

      2. spotify-nowplayingspotify-nowplayingPublic

        ESP32 WiFi display showing your currently-playing Spotify track — album art, progress, and transport controls via a web dashboard. Observes playback on your other devices; no audio hardware needed.

        C++

      3. wifi-signal-scannerwifi-signal-scannerPublic

        Live WiFi signal-strength meter on an ESP32 with an ST7789 TFT. Pick your network in a browser, no recompiling.

        C++

      , 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
      Skip to content
      View t-philip's full-sized avatar

        Block or report t-philip

        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.

        Content in all repositories owned by your account will be closed.
        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
        t-philip/README.md

        Hi, I'm T. Philip 👋

        An explorer in the world of technology — I build and self-host things across AI, Python, homelab infrastructure, networking and automation.

        Most of what you'll find here started as something I wanted for myself, then got cleaned up enough to be worth sharing. Everything is self-hostable, documented, and free to use.


        📂 Projects by category

        📡 ESP32 Projects

        ProjectWhat it does
        spotify-nowplayingA WiFi display showing your currently-playing Spotify track — album art, progress, and transport controls from a web dashboard. Observes playback on your other devices, so no audio hardware is needed.
        wifi-signal-scannerA live WiFi signal-strength meter on a small TFT — strength label, RSSI in dBm, and a scrolling history graph for walking a signal around a building. You pick the network in a browser, so nothing needs recompiling.

        🛡️ Blocklists for DNS

        ProjectWhat it does
        blocklistsHosts-format blocklists for Pi-hole, AdGuard Home, or any hosts-file blocker. Malware/phishing domains and streaming-service domains, with setup instructions for both.

        Drop straight into your blocker:

        🔐 Tools

        ProjectWhat it does
        bitwarden-vaultwarden-syncSyncs a Bitwarden.com vault to a self-hosted Vaultwarden instance — attachments included — with encrypted backups and Telegram alerts.
        network-monitorSee what your own Windows machine is actually sending — a live browser dashboard of HTTP and HTTPS traffic, with decrypted headers and bodies, covering background apps and not just your browser. Nothing is written to disk and nothing leaves the machine. Reading HTTPS means trusting a local root certificate, and the README is upfront about what that costs you.

        🐍 Python

        ProjectWhat it does
        sky-radarReal-time flight tracking dashboard — Flask + Socket.IO backend, Leaflet map, OpenSky Network API, with watchlist alerting and JSONL logging.
        omnimeterSelf-hosted dashboard for household power, gas, water and battery usage. Works with any P1 smart meter — live polling or CSV import — tracks costs against your own energy tariff, and estimates solar self-sufficiency.

        🖥️ Scripts & Guides

        ProjectWhat it does
        scriptsRouter outage monitoring (systemd + CSV logging), Windows app provisioning via winget, an EVE-NG on VMware setup guide, and Python utilities.

        🛠️ What to expect

        These started as tools I wanted for myself, so they're shaped by having to live with them rather than demo them. They run on your own hardware — no account to create, no hosted service in the middle, no telemetry.

        Every project here carries a tagged release with notes written for someone running the software rather than reading commit history, and its own issue tracker with templates. Where something is implemented but not yet verified, the documentation says so rather than implying otherwise.

        Every project also ships a design spec (docs/DESIGN_SPEC.md) explaining how it's built and why, reconciled against the actual shipped code — not a pre-launch plan left to go stale.

        🐞 Found a bug? Have an idea?

        Every project above has its own issue tracker. Open the repository you're using and file an issue there — each one has templates so you know what's useful to include. Bug reports, documentation corrections and feature ideas are all welcome.

        For anything security-related in bitwarden-vaultwarden-sync, please use its private reporting channel rather than a public issue.


        All public content is open to use — please credit t-philip. Repositories are AGPL-3.0 licensed unless stated otherwise.

        Pinned Loading

        1. omnimeteromnimeterPublic

          Self-hosted energy dashboard for household power, gas, water and battery usage. Works with any P1 smart meter.

          Python

        2. spotify-nowplayingspotify-nowplayingPublic

          ESP32 WiFi display showing your currently-playing Spotify track — album art, progress, and transport controls via a web dashboard. Observes playback on your other devices; no audio hardware needed.

          C++

        3. wifi-signal-scannerwifi-signal-scannerPublic

          Live WiFi signal-strength meter on an ESP32 with an ST7789 TFT. Pick your network in a browser, no recompiling.

          C++

        , 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
        Skip to content
        View t-philip's full-sized avatar

          Block or report t-philip

          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.

          Content in all repositories owned by your account will be closed.
          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
          t-philip/README.md

          Hi, I'm T. Philip 👋

          An explorer in the world of technology — I build and self-host things across AI, Python, homelab infrastructure, networking and automation.

          Most of what you'll find here started as something I wanted for myself, then got cleaned up enough to be worth sharing. Everything is self-hostable, documented, and free to use.


          📂 Projects by category

          📡 ESP32 Projects

          ProjectWhat it does
          spotify-nowplayingA WiFi display showing your currently-playing Spotify track — album art, progress, and transport controls from a web dashboard. Observes playback on your other devices, so no audio hardware is needed.
          wifi-signal-scannerA live WiFi signal-strength meter on a small TFT — strength label, RSSI in dBm, and a scrolling history graph for walking a signal around a building. You pick the network in a browser, so nothing needs recompiling.

          🛡️ Blocklists for DNS

          ProjectWhat it does
          blocklistsHosts-format blocklists for Pi-hole, AdGuard Home, or any hosts-file blocker. Malware/phishing domains and streaming-service domains, with setup instructions for both.

          Drop straight into your blocker:

          🔐 Tools

          ProjectWhat it does
          bitwarden-vaultwarden-syncSyncs a Bitwarden.com vault to a self-hosted Vaultwarden instance — attachments included — with encrypted backups and Telegram alerts.
          network-monitorSee what your own Windows machine is actually sending — a live browser dashboard of HTTP and HTTPS traffic, with decrypted headers and bodies, covering background apps and not just your browser. Nothing is written to disk and nothing leaves the machine. Reading HTTPS means trusting a local root certificate, and the README is upfront about what that costs you.

          🐍 Python

          ProjectWhat it does
          sky-radarReal-time flight tracking dashboard — Flask + Socket.IO backend, Leaflet map, OpenSky Network API, with watchlist alerting and JSONL logging.
          omnimeterSelf-hosted dashboard for household power, gas, water and battery usage. Works with any P1 smart meter — live polling or CSV import — tracks costs against your own energy tariff, and estimates solar self-sufficiency.

          🖥️ Scripts & Guides

          ProjectWhat it does
          scriptsRouter outage monitoring (systemd + CSV logging), Windows app provisioning via winget, an EVE-NG on VMware setup guide, and Python utilities.

          🛠️ What to expect

          These started as tools I wanted for myself, so they're shaped by having to live with them rather than demo them. They run on your own hardware — no account to create, no hosted service in the middle, no telemetry.

          Every project here carries a tagged release with notes written for someone running the software rather than reading commit history, and its own issue tracker with templates. Where something is implemented but not yet verified, the documentation says so rather than implying otherwise.

          Every project also ships a design spec (docs/DESIGN_SPEC.md) explaining how it's built and why, reconciled against the actual shipped code — not a pre-launch plan left to go stale.

          🐞 Found a bug? Have an idea?

          Every project above has its own issue tracker. Open the repository you're using and file an issue there — each one has templates so you know what's useful to include. Bug reports, documentation corrections and feature ideas are all welcome.

          For anything security-related in bitwarden-vaultwarden-sync, please use its private reporting channel rather than a public issue.


          All public content is open to use — please credit t-philip. Repositories are AGPL-3.0 licensed unless stated otherwise.

          Pinned Loading

          1. omnimeteromnimeterPublic

            Self-hosted energy dashboard for household power, gas, water and battery usage. Works with any P1 smart meter.

            Python

          2. spotify-nowplayingspotify-nowplayingPublic

            ESP32 WiFi display showing your currently-playing Spotify track — album art, progress, and transport controls via a web dashboard. Observes playback on your other devices; no audio hardware needed.

            C++

          3. wifi-signal-scannerwifi-signal-scannerPublic

            Live WiFi signal-strength meter on an ESP32 with an ST7789 TFT. Pick your network in a browser, no recompiling.

            C++

          , 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
          Skip to content
          View t-philip's full-sized avatar

            Block or report t-philip

            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.

            Content in all repositories owned by your account will be closed.
            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
            t-philip/README.md

            Hi, I'm T. Philip 👋

            An explorer in the world of technology — I build and self-host things across AI, Python, homelab infrastructure, networking and automation.

            Most of what you'll find here started as something I wanted for myself, then got cleaned up enough to be worth sharing. Everything is self-hostable, documented, and free to use.


            📂 Projects by category

            📡 ESP32 Projects

            ProjectWhat it does
            spotify-nowplayingA WiFi display showing your currently-playing Spotify track — album art, progress, and transport controls from a web dashboard. Observes playback on your other devices, so no audio hardware is needed.
            wifi-signal-scannerA live WiFi signal-strength meter on a small TFT — strength label, RSSI in dBm, and a scrolling history graph for walking a signal around a building. You pick the network in a browser, so nothing needs recompiling.

            🛡️ Blocklists for DNS

            ProjectWhat it does
            blocklistsHosts-format blocklists for Pi-hole, AdGuard Home, or any hosts-file blocker. Malware/phishing domains and streaming-service domains, with setup instructions for both.

            Drop straight into your blocker:

            🔐 Tools

            ProjectWhat it does
            bitwarden-vaultwarden-syncSyncs a Bitwarden.com vault to a self-hosted Vaultwarden instance — attachments included — with encrypted backups and Telegram alerts.
            network-monitorSee what your own Windows machine is actually sending — a live browser dashboard of HTTP and HTTPS traffic, with decrypted headers and bodies, covering background apps and not just your browser. Nothing is written to disk and nothing leaves the machine. Reading HTTPS means trusting a local root certificate, and the README is upfront about what that costs you.

            🐍 Python

            ProjectWhat it does
            sky-radarReal-time flight tracking dashboard — Flask + Socket.IO backend, Leaflet map, OpenSky Network API, with watchlist alerting and JSONL logging.
            omnimeterSelf-hosted dashboard for household power, gas, water and battery usage. Works with any P1 smart meter — live polling or CSV import — tracks costs against your own energy tariff, and estimates solar self-sufficiency.

            🖥️ Scripts & Guides

            ProjectWhat it does
            scriptsRouter outage monitoring (systemd + CSV logging), Windows app provisioning via winget, an EVE-NG on VMware setup guide, and Python utilities.

            🛠️ What to expect

            These started as tools I wanted for myself, so they're shaped by having to live with them rather than demo them. They run on your own hardware — no account to create, no hosted service in the middle, no telemetry.

            Every project here carries a tagged release with notes written for someone running the software rather than reading commit history, and its own issue tracker with templates. Where something is implemented but not yet verified, the documentation says so rather than implying otherwise.

            Every project also ships a design spec (docs/DESIGN_SPEC.md) explaining how it's built and why, reconciled against the actual shipped code — not a pre-launch plan left to go stale.

            🐞 Found a bug? Have an idea?

            Every project above has its own issue tracker. Open the repository you're using and file an issue there — each one has templates so you know what's useful to include. Bug reports, documentation corrections and feature ideas are all welcome.

            For anything security-related in bitwarden-vaultwarden-sync, please use its private reporting channel rather than a public issue.


            All public content is open to use — please credit t-philip. Repositories are AGPL-3.0 licensed unless stated otherwise.

            Pinned Loading

            1. omnimeteromnimeterPublic

              Self-hosted energy dashboard for household power, gas, water and battery usage. Works with any P1 smart meter.

              Python

            2. spotify-nowplayingspotify-nowplayingPublic

              ESP32 WiFi display showing your currently-playing Spotify track — album art, progress, and transport controls via a web dashboard. Observes playback on your other devices; no audio hardware needed.

              C++

            3. wifi-signal-scannerwifi-signal-scannerPublic

              Live WiFi signal-strength meter on an ESP32 with an ST7789 TFT. Pick your network in a browser, no recompiling.

              C++

            , 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
            Skip to content
            View t-philip's full-sized avatar

              Block or report t-philip

              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.

              Content in all repositories owned by your account will be closed.
              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
              t-philip/README.md

              Hi, I'm T. Philip 👋

              An explorer in the world of technology — I build and self-host things across AI, Python, homelab infrastructure, networking and automation.

              Most of what you'll find here started as something I wanted for myself, then got cleaned up enough to be worth sharing. Everything is self-hostable, documented, and free to use.


              📂 Projects by category

              📡 ESP32 Projects

              ProjectWhat it does
              spotify-nowplayingA WiFi display showing your currently-playing Spotify track — album art, progress, and transport controls from a web dashboard. Observes playback on your other devices, so no audio hardware is needed.
              wifi-signal-scannerA live WiFi signal-strength meter on a small TFT — strength label, RSSI in dBm, and a scrolling history graph for walking a signal around a building. You pick the network in a browser, so nothing needs recompiling.

              🛡️ Blocklists for DNS

              ProjectWhat it does
              blocklistsHosts-format blocklists for Pi-hole, AdGuard Home, or any hosts-file blocker. Malware/phishing domains and streaming-service domains, with setup instructions for both.

              Drop straight into your blocker:

              🔐 Tools

              ProjectWhat it does
              bitwarden-vaultwarden-syncSyncs a Bitwarden.com vault to a self-hosted Vaultwarden instance — attachments included — with encrypted backups and Telegram alerts.
              network-monitorSee what your own Windows machine is actually sending — a live browser dashboard of HTTP and HTTPS traffic, with decrypted headers and bodies, covering background apps and not just your browser. Nothing is written to disk and nothing leaves the machine. Reading HTTPS means trusting a local root certificate, and the README is upfront about what that costs you.

              🐍 Python

              ProjectWhat it does
              sky-radarReal-time flight tracking dashboard — Flask + Socket.IO backend, Leaflet map, OpenSky Network API, with watchlist alerting and JSONL logging.
              omnimeterSelf-hosted dashboard for household power, gas, water and battery usage. Works with any P1 smart meter — live polling or CSV import — tracks costs against your own energy tariff, and estimates solar self-sufficiency.

              🖥️ Scripts & Guides

              ProjectWhat it does
              scriptsRouter outage monitoring (systemd + CSV logging), Windows app provisioning via winget, an EVE-NG on VMware setup guide, and Python utilities.

              🛠️ What to expect

              These started as tools I wanted for myself, so they're shaped by having to live with them rather than demo them. They run on your own hardware — no account to create, no hosted service in the middle, no telemetry.

              Every project here carries a tagged release with notes written for someone running the software rather than reading commit history, and its own issue tracker with templates. Where something is implemented but not yet verified, the documentation says so rather than implying otherwise.

              Every project also ships a design spec (docs/DESIGN_SPEC.md) explaining how it's built and why, reconciled against the actual shipped code — not a pre-launch plan left to go stale.

              🐞 Found a bug? Have an idea?

              Every project above has its own issue tracker. Open the repository you're using and file an issue there — each one has templates so you know what's useful to include. Bug reports, documentation corrections and feature ideas are all welcome.

              For anything security-related in bitwarden-vaultwarden-sync, please use its private reporting channel rather than a public issue.


              All public content is open to use — please credit t-philip. Repositories are AGPL-3.0 licensed unless stated otherwise.

              Pinned Loading

              1. omnimeteromnimeterPublic

                Self-hosted energy dashboard for household power, gas, water and battery usage. Works with any P1 smart meter.

                Python

              2. spotify-nowplayingspotify-nowplayingPublic

                ESP32 WiFi display showing your currently-playing Spotify track — album art, progress, and transport controls via a web dashboard. Observes playback on your other devices; no audio hardware needed.

                C++

              3. wifi-signal-scannerwifi-signal-scannerPublic

                Live WiFi signal-strength meter on an ESP32 with an ST7789 TFT. Pick your network in a browser, no recompiling.

                C++

              , 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content
              View t-philip's full-sized avatar

                Block or report t-philip

                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.

                Content in all repositories owned by your account will be closed.
                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
                t-philip/README.md

                Hi, I'm T. Philip 👋

                An explorer in the world of technology — I build and self-host things across AI, Python, homelab infrastructure, networking and automation.

                Most of what you'll find here started as something I wanted for myself, then got cleaned up enough to be worth sharing. Everything is self-hostable, documented, and free to use.


                📂 Projects by category

                📡 ESP32 Projects

                ProjectWhat it does
                spotify-nowplayingA WiFi display showing your currently-playing Spotify track — album art, progress, and transport controls from a web dashboard. Observes playback on your other devices, so no audio hardware is needed.
                wifi-signal-scannerA live WiFi signal-strength meter on a small TFT — strength label, RSSI in dBm, and a scrolling history graph for walking a signal around a building. You pick the network in a browser, so nothing needs recompiling.

                🛡️ Blocklists for DNS

                ProjectWhat it does
                blocklistsHosts-format blocklists for Pi-hole, AdGuard Home, or any hosts-file blocker. Malware/phishing domains and streaming-service domains, with setup instructions for both.

                Drop straight into your blocker:

                🔐 Tools

                ProjectWhat it does
                bitwarden-vaultwarden-syncSyncs a Bitwarden.com vault to a self-hosted Vaultwarden instance — attachments included — with encrypted backups and Telegram alerts.
                network-monitorSee what your own Windows machine is actually sending — a live browser dashboard of HTTP and HTTPS traffic, with decrypted headers and bodies, covering background apps and not just your browser. Nothing is written to disk and nothing leaves the machine. Reading HTTPS means trusting a local root certificate, and the README is upfront about what that costs you.

                🐍 Python

                ProjectWhat it does
                sky-radarReal-time flight tracking dashboard — Flask + Socket.IO backend, Leaflet map, OpenSky Network API, with watchlist alerting and JSONL logging.
                omnimeterSelf-hosted dashboard for household power, gas, water and battery usage. Works with any P1 smart meter — live polling or CSV import — tracks costs against your own energy tariff, and estimates solar self-sufficiency.

                🖥️ Scripts & Guides

                ProjectWhat it does
                scriptsRouter outage monitoring (systemd + CSV logging), Windows app provisioning via winget, an EVE-NG on VMware setup guide, and Python utilities.

                🛠️ What to expect

                These started as tools I wanted for myself, so they're shaped by having to live with them rather than demo them. They run on your own hardware — no account to create, no hosted service in the middle, no telemetry.

                Every project here carries a tagged release with notes written for someone running the software rather than reading commit history, and its own issue tracker with templates. Where something is implemented but not yet verified, the documentation says so rather than implying otherwise.

                Every project also ships a design spec (docs/DESIGN_SPEC.md) explaining how it's built and why, reconciled against the actual shipped code — not a pre-launch plan left to go stale.

                🐞 Found a bug? Have an idea?

                Every project above has its own issue tracker. Open the repository you're using and file an issue there — each one has templates so you know what's useful to include. Bug reports, documentation corrections and feature ideas are all welcome.

                For anything security-related in bitwarden-vaultwarden-sync, please use its private reporting channel rather than a public issue.


                All public content is open to use — please credit t-philip. Repositories are AGPL-3.0 licensed unless stated otherwise.

                Pinned Loading

                1. omnimeteromnimeterPublic

                  Self-hosted energy dashboard for household power, gas, water and battery usage. Works with any P1 smart meter.

                  Python

                2. spotify-nowplayingspotify-nowplayingPublic

                  ESP32 WiFi display showing your currently-playing Spotify track — album art, progress, and transport controls via a web dashboard. Observes playback on your other devices; no audio hardware needed.

                  C++

                3. wifi-signal-scannerwifi-signal-scannerPublic

                  Live WiFi signal-strength meter on an ESP32 with an ST7789 TFT. Pick your network in a browser, no recompiling.

                  C++

                , 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                Skip to content
                View t-philip's full-sized avatar

                  Block or report t-philip

                  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.

                  Content in all repositories owned by your account will be closed.
                  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
                  t-philip/README.md

                  Hi, I'm T. Philip 👋

                  An explorer in the world of technology — I build and self-host things across AI, Python, homelab infrastructure, networking and automation.

                  Most of what you'll find here started as something I wanted for myself, then got cleaned up enough to be worth sharing. Everything is self-hostable, documented, and free to use.


                  📂 Projects by category

                  📡 ESP32 Projects

                  ProjectWhat it does
                  spotify-nowplayingA WiFi display showing your currently-playing Spotify track — album art, progress, and transport controls from a web dashboard. Observes playback on your other devices, so no audio hardware is needed.
                  wifi-signal-scannerA live WiFi signal-strength meter on a small TFT — strength label, RSSI in dBm, and a scrolling history graph for walking a signal around a building. You pick the network in a browser, so nothing needs recompiling.

                  🛡️ Blocklists for DNS

                  ProjectWhat it does
                  blocklistsHosts-format blocklists for Pi-hole, AdGuard Home, or any hosts-file blocker. Malware/phishing domains and streaming-service domains, with setup instructions for both.

                  Drop straight into your blocker:

                  🔐 Tools

                  ProjectWhat it does
                  bitwarden-vaultwarden-syncSyncs a Bitwarden.com vault to a self-hosted Vaultwarden instance — attachments included — with encrypted backups and Telegram alerts.
                  network-monitorSee what your own Windows machine is actually sending — a live browser dashboard of HTTP and HTTPS traffic, with decrypted headers and bodies, covering background apps and not just your browser. Nothing is written to disk and nothing leaves the machine. Reading HTTPS means trusting a local root certificate, and the README is upfront about what that costs you.

                  🐍 Python

                  ProjectWhat it does
                  sky-radarReal-time flight tracking dashboard — Flask + Socket.IO backend, Leaflet map, OpenSky Network API, with watchlist alerting and JSONL logging.
                  omnimeterSelf-hosted dashboard for household power, gas, water and battery usage. Works with any P1 smart meter — live polling or CSV import — tracks costs against your own energy tariff, and estimates solar self-sufficiency.

                  🖥️ Scripts & Guides

                  ProjectWhat it does
                  scriptsRouter outage monitoring (systemd + CSV logging), Windows app provisioning via winget, an EVE-NG on VMware setup guide, and Python utilities.

                  🛠️ What to expect

                  These started as tools I wanted for myself, so they're shaped by having to live with them rather than demo them. They run on your own hardware — no account to create, no hosted service in the middle, no telemetry.

                  Every project here carries a tagged release with notes written for someone running the software rather than reading commit history, and its own issue tracker with templates. Where something is implemented but not yet verified, the documentation says so rather than implying otherwise.

                  Every project also ships a design spec (docs/DESIGN_SPEC.md) explaining how it's built and why, reconciled against the actual shipped code — not a pre-launch plan left to go stale.

                  🐞 Found a bug? Have an idea?

                  Every project above has its own issue tracker. Open the repository you're using and file an issue there — each one has templates so you know what's useful to include. Bug reports, documentation corrections and feature ideas are all welcome.

                  For anything security-related in bitwarden-vaultwarden-sync, please use its private reporting channel rather than a public issue.


                  All public content is open to use — please credit t-philip. Repositories are AGPL-3.0 licensed unless stated otherwise.

                  Pinned Loading

                  1. omnimeteromnimeterPublic

                    Self-hosted energy dashboard for household power, gas, water and battery usage. Works with any P1 smart meter.

                    Python

                  2. spotify-nowplayingspotify-nowplayingPublic

                    ESP32 WiFi display showing your currently-playing Spotify track — album art, progress, and transport controls via a web dashboard. Observes playback on your other devices; no audio hardware needed.

                    C++

                  3. wifi-signal-scannerwifi-signal-scannerPublic

                    Live WiFi signal-strength meter on an ESP32 with an ST7789 TFT. Pick your network in a browser, no recompiling.

                    C++