Cloudflare WARP Config Generator

A browser-based and CLI tool for generating WireGuard configurations compatible with Cloudflare WARP. The application generates keypairs locally in the browser or CLI, registers them with Cloudflare’s WARP API, and outputs a complete WireGuard configuration file with QR code for easy mobile import. All processing happens client-side with no server-side storage. Configuration options include DNS server selection, MTU adjustment, allowed IPs, and persistent keepalive settings. A command-line shell script is also available for terminal-based workflows. ...

December 22, 2025 · 1 min · Ian Foster

MikroTik SwOS Python Library

Got a bunch of MikroTik switches running SwOS or SwOS Lite with no good way to manage them centrally? This library has you covered. Built by reverse engineering the SwOS HTTP API, it provides complete programmatic access to all switch features. Works with both SwOS and SwOS Lite, supports everything from port configs and PoE to VLANs and SNMP settings. Comes with a CLI tool for quick lookups and a full Ansible module for managing your entire switch fleet through YAML playbooks. Compatible with CRS305, CRS310, CRS326, CSS610 and other SwOS-based switches.

November 15, 2025 · 1 min · Ian Foster
TRMNL NASA Image of the Day plugin screenshot

TRMNL Plugins

A collection of custom plugins for TRMNL e-ink displays. The repository provides a Docker-based development environment for creating and testing plugins that extend TRMNL functionality.

October 6, 2025 · 1 min · Ian Foster

Drouter

Drouter provides dynamic route injection for Docker containers through label-based configuration. The systemd service monitors Docker containers and automatically configures static routes in their network namespaces without requiring elevated privileges within the containers themselves. The system uses Docker labels to specify routing rules and applies them automatically when containers start or stop. This enables complex networking setups where containers need custom routing tables while maintaining security by avoiding privileged container execution for network configuration tasks.

September 21, 2025 · 1 min · Ian Foster
ARIN IPv4 Waitlist Tracking dashboard

ARIN IPv4 Waitlist Tracking

ARIN IPv4 Wait-list Tracking analyzes ARIN’s IPv4 address wait-list and provides statistical insights into wait times and allocation patterns. The Python-based system tracks historical data on IPv4 block requests and clearances to estimate processing times for different network block sizes. The web dashboard displays real-time analytics including current wait-list sizes, estimated wait times for /22, /23, and /24 blocks, and historical trends in IPv4 address allocation. This tool helps network administrators understand IPv4 scarcity patterns and plan address allocation strategies as IPv4 exhaustion continues.

September 20, 2025 · 1 min · Ian Foster
Day Night Map visualization

Day Night Map

A real-time visualization of day and night regions across the world using accurate solar and lunar positioning calculations. The project renders day/night terminator lines, solar and lunar positions, and smooth twilight gradients on an interactive world map using HTML5 Canvas. The visualization integrates the SunCalc library for astronomical calculations and features optimized pixel-level rendering with support for multiple map projections (Equirectangular and Mercator). Additional features include moon phase visualization, responsive design, timezone customization, and a grayscale mode optimized for e-ink displays. The map updates every minute to reflect current celestial conditions.

July 27, 2025 · 1 min · Ian Foster

VLAN Scout

VLAN Scout discovers active VLANs and their configurations through passive monitoring and active probing. The tool identifies VLAN segments by analyzing network traffic and attempting connections across different VLAN IDs. The implementation supports multiple discovery protocols including DHCP, IPv6 neighbor discovery, LLDP, and CDP. VLAN Scout can operate in both passive monitoring mode to observe existing traffic and active probing mode to test VLAN accessibility and configuration.

July 22, 2025 · 1 min · Ian Foster
Bambu P1S PCB trace analysis

Bambu P1S Hacking

Bambu P1S Hacking contains firmware dumps, PCB analysis, and X-ray scans of the Bambu Labs P1S 3D printer’s ESP32-S3 controller board. The repository documents reverse engineering efforts to understand the printer’s firmware architecture and hardware implementation. The collection includes multiple firmware dumps processed through bin-voter to generate corrected flash images, detailed PCB trace analysis, and hardware documentation. This research provides insights into the printer’s embedded systems and potential modification opportunities.

July 13, 2025 · 1 min · Ian Foster

Bin Voter

Bin Voter reconstructs correct binary files from multiple corrupted firmware dumps by implementing a voting algorithm across byte positions. The tool compares corresponding bytes from multiple binary files and selects the most frequently occurring value at each position. This Python utility is designed for firmware recovery scenarios where multiple partial or corrupted dumps are available but no single dump is completely intact. Bin Voter can recover clean firmware images by leveraging statistical analysis across multiple corrupted sources.

July 13, 2025 · 1 min · Ian Foster

GPM2Spotify History

GPM2Spotify History converts Google Play Music listening history data to Spotify-compatible JSON format. The Python scripts process HTML activity files exported from Google Play Music and generate structured JSON data that can be used with modern music tracking and analysis tools. The conversion tool helps users migrate their historical listening data from the discontinued Google Play Music service to formats compatible with current music platforms and personal analytics tools. It parses activity HTML exports and transforms the data into standardized JSON structures for further processing.

February 13, 2025 · 1 min · Ian Foster

Scroller

Scroller is a web application that displays customizable scrolling text messages in fullscreen mode. The single-page application allows users to configure text content, fonts, colors, scroll speed, and background themes before launching a fullscreen display. The application includes URL hash-based message saving, automatic text scaling to fit screens, and responsive design with light/dark mode support. It’s designed for creating dynamic text displays for presentations, signage, or any scenario requiring large-scale scrolling text output.

October 25, 2024 · 1 min · Ian Foster

Caddy Signal Proxy

Caddy Signal Proxy implements a Signal TLS proxy using the Caddy web server and the caddy-l4 plugin. The configuration enables Signal messaging clients to connect through a TLS proxy for improved privacy or to bypass network restrictions. The deployment uses Docker Compose with a minimal configuration that can be integrated into existing Caddy setups. The proxy handles TLS termination and forwarding for Signal’s messaging infrastructure, requiring only a domain name configuration to operate.

September 25, 2024 · 1 min · Ian Foster

Portquiz

Portquiz tests outbound TCP and UDP connectivity to remote hosts by attempting connections across specified port ranges. The tool identifies which ports can successfully establish connections through network infrastructure such as firewalls, NAT devices, and proxies. The program can detect deep packet inspection (DPI) filtering and other network-level blocking mechanisms. It supports testing individual ports or scanning complete port ranges, with cross-platform compatibility across Windows, macOS, and Linux systems.

January 16, 2024 · 1 min · Ian Foster

Caddy Dynamic RemoteIP

Caddy Dynamic RemoteIP is a Caddy web server module that provides dynamic IP address matching capabilities. The module implements the http.matchers.dynamic_remote_ip matcher, which allows matching requests based on remote IP addresses that are dynamically sourced from configurable modules. Unlike static IP matching, this module enables real-time IP range updates through pluggable IPRangeSource implementations. This is useful for scenarios requiring dynamic access control based on changing IP ranges, such as cloud provider IP lists or threat intelligence feeds.

September 12, 2023 · 1 min · Ian Foster

WebSerial Bruteforce

WebSerial Bruteforce automatically determines the correct baud rate for UART serial devices by testing common communication speeds and analyzing the returned data. The web application uses the WebSerial API to connect directly to serial devices from the browser without requiring additional software. The tool iterates through standard baud rates and measures the amount of ASCII data returned at each setting, selecting the configuration that produces the most readable output. This is useful for reverse engineering or troubleshooting unknown serial devices where the communication parameters are not documented.

September 22, 2022 · 1 min · Ian Foster