Thomas Bella
uDomainFlag
uDomainFlag logo
Available via:
Chrome Web Store
Microsoft Edge-Add-Ons
Firefox Add-Ons

uDomainFlag on GitHub

July 2013 - today
8k+ users per day
170k+ queries per day
uDomainFlag is an open source browser extension to display additional information such as the server location directly in the browser.
When a website is accessed, the server location is displayed in the form of a flag. By clicking on this flag, additional information such as the server location, IP address recognized by the server and used by the browser, operator information and other information are displayed.

uDomainFlag History
uDomainFlag started in 2013 as an extension for Google Chrome and developed from version to version with additional functions and optimizations.
In January 2015, version 1.0 was released, with the server location being used for the first time for location detection.
In May 2015, uDomainFlag was released in version 1.1 with a completely redesigned design. In addition, the switch was made from HTTP to HTTPS for encrypted data transfer.
In July 2015, version 1.2 was released. A new logo was introduced and a danger indicator based on WoT ratings was displayed directly in the flag.
In July 2019, there was a bugfix release to fix known bugs to improve the stability of the extension.
In July 2020, uDomainFlag 2.0 was released for Google Chrome and for the first time Microsoft EDGE and Mozilla Firefox. The extension was completely rewritten for modernization and resource optimization.
In April 2021, the API specification was released, allowing third parties to write their own extensions or integrate uDomainFlag into their own projects.
In February 2024, uDomainFlag was rewritten for Manifest V3, significantly increasing performance and security.
The complete change history is available at GitHub > Releases.

Backend
uDomainFlag uses dfdata.bella.network (formerly udfdata.unterhaltungsbox.com) as a data interface.
With uDomainFlag 2.0, the server side was switched from PHP to Go. This significantly reduced server load while increasing processing speed and response time. The provided data is also much more up-to-date and is regularly updated automatically.
By changing the interface, multiple queries per domain no longer need to be made. A new backend simplifies the query of information, processes requests at a much higher speed with lower resource usage. This means that in the future, many more users can be served without having to scale with hardware.
Thanks to a modular and modern structure, it is possible to exchange the backend during active operation without affecting queries. If there are unusually high loads, automatic scaling takes place. If a subcomponent fails, automatic countermeasures are taken to continue processing queries.

A change history of the backend is available at dfdata.bella.network.
Portfolio (this site)

Closed Source

July 2015 - today
51 Commits
Automatic deployment
7k+ lines of code
This website goes beyond a simple portfolio and shows not only my profile but also additional details.
This site is written in HTML, CSS, JavaScript and PHP without additional libraries (except FontAwesome). Static data is compressed, prepared and deployed to the target server using GitLab CI.

Technologies used
GitLab CI automates deployment and creates reproducible versions of this website.
Static resources such as .svg icons, CSS, JavaScript, fonts and other data are pre-compressed with gzip and brotli using GitLab CI. Using gzip_static/brotli_static, pre-compressed data is delivered in NGINX, reducing computational capacity and latency.
Extensions such as OCSP, CSP, HSTS (Preload), Expect-CT, Referer-Policy, Permission-Policy etc. further enhance the security of the website and protect against manipulation.
0-RTT reduces the time required for a connection when retrieving data only. Efficient caching and prefetching reduce the loading time to well under one second.
By avoiding libraries and frameworks such as Smarty, jQuery, Bootstrap, Angular, React etc., no unused code needs to be included. This significantly increases processing speed and achieves a best value in Lighthouse.

Most dynamic data on this website is obtained from proxy.bella.network via HTTPS (AJAX & WebSocket). This domain resolves to a standalone server, which is connected via WireGuard VPN and BGP over my Multi-WAN home network to its own VLAN.
More on this in the next project "Homelab & Homeautomation".

Why is there no cookie banner on this site?
This site does not use cross-site tracking and does not set any identifiable persistent data, so no consent is required. A cookie is set upon successful login, with a corresponding notice displayed beforehand.
Homelab & Homeautomation
Subpage Homelab

8 Server
358+ TB Storage
286+ GB RAM
5x Raspberry Pi (Sensor Nodes)
15kWh Battery capacity
300/30 Mbps DSL
25+ BGP Routes
10+ VPN Tunnel
9 AccessPoints
60+ IoT Devices
50+ VMs/LXC Container

DualStack Internet:
static IPv4/32 & IPv6/60
My homelab has grown significantly over the years and I have already significantly reduced it in some places, among other things to save electricity costs.
An overview of my homelab is available at Homelab. There I also go into detail about the devices used.
Multiple VPN tunnels connect my local network to other local networks at different locations, using dynamic routing with BGP.

For (home) automation, I use a self-created program called pv-proxy written in Go, which I work on regularly and which already comprises over 10k lines of code:
This program is the main data processing and central of my automation. Among other things, the current power consumption and power production of the entire household are recorded every second. Based on this data and other sensor data, originating from my weather station, several DS18B20 temperature sensors, BME280 sensors, etc., various devices are automatically controlled.
For example, when there is overproduction, the heating element is activated to heat the hot water tank. The fan control of the servers is also automatically controlled, taking into account not only the ambient temperature and power capacity but also the weather forecast.
Since the program manages a lot of information and I am constantly expanding it, here is an excerpt of which data/devices are recorded/processed/etc.:
433MHz/868MHz recording with RTL-SDR, voltage monitoring, hot water control and monitoring, weather forecasts based on Zambretti, switching state monitoring IoT devices, temperature recording of several rooms, device control in case of power failure, control of garden irrigation system, further processing of Fitbit vital data (pulse, steps, calorie intake, ...), control of solar system, car location detection, Chromecast media control, VM autoscaling, room light control and monitoring, and much more.
Other (Mini-)Projects
PassBeyond Product - Closed Source (Release planned) - Go
A reverse proxy with built-in authentication via SAML (ADFS) and LDAP for cross-domain use. Secures resources behind *.bella.pm and other domains and transparently forwards requests only after successful login. Role-based access rights with the possibility of guest access. Local network access is automatically detected and released.

Mr. Fitness Bot Product - Closed Source - Go
Collection, processing and evaluation of activity data, running and strength training, physical and mental health, automatic and manual (measurement) data collection, water, calorie, dietary supplement and medicine tracking, etc. More information at https://bella.network/fitness-bot.

go-fitbit Library - Open Source on GitHub - Go
Library for using the Fitbit API to automatically retrieve and add data. Primarily, I needed the interface for another project (later with Mr. Fitness Bot), where I export my vital data from Fitbit to MySQL/InfluxDB for display in Grafana.

GoBouncerBot Product - Closed Source - Go
Telegram bot that monitors chat rooms and blocks new users from accessing chat functions. Access to the chat group is only allowed after solving a captcha. bouncer.bella.pm - @GoBouncerBot.

snigen Product - Closed Source - Go
Extension for DNS-based blocks. If a domain is blocked by a DNS filter, the DNS target address is rewritten to a special IP. Via HTTP/HTTPS, an appropriate error message is displayed with further information about the block. There is the possibility to release the blocked website again. With snigen, using an intermediate certificate from my internal CA, a temporary, valid certificate is issued via HTTPS during the call. This makes blocks user-friendly.

certdog.eu SaaS - Closed Source - Planning phase
Certificate monitoring for various services and domains with central management, validity check against publicly trusted certification authorities as well as private certification authorities, renewal reminder and issuance notification. Service is provided free of charge as well as for a fee.

maildog.eu SaaS - Closed Source - Initiation phase
Extension of certdog.eu with additional functions specifically for e-mail with blacklist detection, spam checks, counterpart for rspamd checks and DNS records checks.

Tasmota Deploy Automation - Closed Source - Bash + GitLab CI
Automatic creation of firmware images for IoT devices based on Tasmota. Allows individual configuration of images as well as automatic distribution and installation of the firmware on devices in the network.

uTeleBot Product - Open Source on GitLab - Go
Telegram bot that provides useful functions for system and network administrators. Also creates chat statistics in rooms where the bot is located. Reachable at @uTeleBot.
Example commands: /mac 00:20:91:00:BE:EF, /dns bella.pm MX, /sshscan bella.network.

DDInstaller Product - Closed Source - Bash + Python + GitLab CI
An own Linux operating system based on Debian, which automatically installs and configures Windows (Server + Desktop) via PXE. Setup is automated with KVM and works on both hardware and virtual.

Certificate Monitor Product - Discontinued - Open Source on selfhosted GitLab - PHP
Certificate Monitor is a web interface with automatic SSL certificate verification. The current certificate is obtained and checked from a specified domain with IP address. Own CA can be stored. Evaluation of FTPS, SMTP/S, IMAP/S, POP3/S, RDP, IRC, LDAP/S, DNS-over-TLS, XMPP/S etc.
New development planned as a SaaS product. - See certdog.eu

More projects
More projects are available at GitLab and GitHub .