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

uDomainFlag on GitHub

July 2013 - today
8k+ browser users per day
2.1+ million API requests per day


Languages and Technologies:
JavaScript (Browser Extension & WebApp)
Go (Backend)
PHP (Backend WebApp)
HTML/CSS (Browser Extension & WebApp)
SQL (MariaDB)
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.
HYNC.io
HYNC.io logo
Health Sync In & Out
Available via:
HYNC.io

July 2023 - today

Languages and Technologies:
Go (Backend, Microservices)
HTML/CSS/JavaScript (Frontend)
PHP (Backend WebApp)
SQL (MariaDB)
RabbitMQ (Message Broker)
Redis (Caching)
S3 (Object Storage)
GitLab CI (Deployment)
Sentry (Error Tracking)
Project Description:
HYNC.io is an innovative platform for cross-platform synchronization of fitness and health data. The application allows users to consolidate their activity data from various sources such as Polar, Fitbit, Wahoo, Strava, and many others into a central dashboard.

Core Features:
  • Cross-Platform Synchronization: Automatic data transfer between different fitness platforms
  • Central Dashboard: Clear display of all fitness activities in one place
  • Community Features: Connect with friends, challenges, and local comparisons
  • Smart Sync: Intelligent detection and avoidance of data duplicates
  • Multi-Sport Support: Support for running, cycling, swimming, and other sports
  • Data Privacy: GDPR-compliant storage and processing of user data

Technical Innovation:
Building on my expertise with the Fitbit API (go-fitbit library) and insights from the Mr. Fitness Bot project, we are developing a scalable architecture at HYNC.io that efficiently integrates various fitness APIs. The platform solves the widespread problem of data silos in the fitness tracking space.
This fills the gap between existing fitness apps and enables seamless integration of all relevant data sources. At the same time, it provides a central solution for users who want to consolidate their fitness data in one place as well as the possibility for central data access for third-party apps and services.

Connection to Existing Projects:
HYNC.io represents the natural evolution of my previous fitness technology projects:
  • Extension of the go-fitbit library to include additional platforms
  • Scaling of data processing concepts from Mr. Fitness Bot
  • Integration of automation logic developed in pv-proxy and other projects

Market Positioning:
In a market where users often use multiple fitness apps and devices simultaneously, HYNC.io offers the unified solution for data consolidation and synchronization. The platform targets both fitness enthusiasts and casual athletes who want to manage their training data centrally.

Development Status:
The platform is currently in the development phase. Interested users can already sign up on the waiting list to gain early access and participate in the beta phase.
Individual features and data sources are already being integrated successively, with a focus on a stable and scalable architecture.

Vision:
The goal is to develop HYNC.io into the leading platform for fitness data synchronization, thereby unifying the fragmented ecosystem of fitness apps. The Austrian development focuses on data privacy and GDPR compliance.
Portfolio (this site)

thomas.bella.network

July 2015 - today
50 Commits
Automatic deployment
9k+ lines of code


Languages and Technologies:
HTML/CSS/JavaScript
PHP
Redis (Caching)
Sentry (Error Tracking)
GitLab CI (Deployment)
Various API interfaces
(pv-proxy, HYNC, Mapbox, Ollama, ...)
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 .