God’s Eye View: a live 3D globe of public data you can run on your own machine

Most of the dashboards we build in this hobby stare inward. Grafana graphs the temperature of a rack, Uptime Kuma watches our own URLs, the odd ESP32 sensor feeds a gauge nobody outside the house will ever see. Every now and then, though, a project comes along that points all that homelab energy at the outside world. God’s Eye View is that project: a photorealistic 3D globe in your browser that renders live public data — aircraft, ships, satellites, earthquakes, weather, even public cameras — and, refreshingly for something this impressive, runs locally with source code you can actually read.

What it actually is

Built by Bilawal Sidhu (of the God’s Eye View YouTube series), the project describes itself as “a spy satellite simulator in your browser, except the data is real.” That’s accurate. The globe layers a stack of open signals onto one explorable earth:

  • Live aircraft from flight transponders (ADS-B), with a cockpit view that can ride a tracked flight down to the ground
  • Ship beacons (AIS), orbital elements for satellites, and seismograph feeds
  • Weather on a scrub-able timeline: forecast winds, observed radar, satellite clouds, lightning, cyclone tracks — no API key needed
  • Public camera locations mapped from OpenStreetMap, including tagged license-plate-reader sites
  • Simulated traffic flowing along real roads, aggregated from location data

You can click-to-track anything, speak annotations onto the map as real polygons, reskin the whole thing with GLSL sensor looks (CRT, night vision, thermal), and serialise your exact view — camera, layers, even a live-tracked aircraft — into a shareable URL. It hit #1 on GitHub Trending in August 2026, and it earned it.

Why a homelab person should care

Two reasons. First, it’s the Grafana mindset applied to the planet. The skills that make you good at dashboards — choosing the right data source, filtering noise, composing a view that answers a question — are exactly the skills this thing rewards. Each data layer is a separate module, so extending it with your own feed (your station’s seismograph, your ADS-B receiver’s coverage, your farm’s soil moisture) is the obvious next step once you’ve played with it.

Second, it starts without API keys and runs locally. You install it via Pinokio in one click or clone it and run it from the terminal, and the base experience just works in your browser. Optional keys unlock extras inside the app when you want them. For a box that lives on your LAN serving a household, that’s the right default: no telemetry to a third party, no account to create, nothing phoning home that you didn’t configure.

Practical uses beyond the pretty factor

I’ll be honest: most evenings it’s a toy, and a very good one. But it has quietly useful moments:

  • Satellite passes: ask by voice when a loaded satellite next rises over you, and get rise, peak, and set times with a yes/no on visibility. Handy before a planned pass or an ISS photo attempt.
  • Weather events: replaying observed radar alongside cyclone tracks during a storm front is more informative than a static news map, and the timeline scrubbing makes the structure of a system obvious.
  • Analyst queries: counting, filtering, and ranking things by voice — flights, ships, fires, quakes — with staleness flags on the answers. It’s a surprisingly decent situational-awareness terminal when something is happening somewhere.

Honest caveats

The README is admirably upfront about what’s real and what isn’t, and you should hold that line too: traffic is simulated along real roads, and camera positions and rocket trajectories are coarse estimates. If you find yourself treating it as ground truth during an actual emergency, you’ve drifted. It’s open-source spatial intelligence, not an emergency service.

Also note the voice agent means a microphone. Running locally is the right call, but if you’re the sort who tapes over laptop cameras, think about where this one runs and who’s near it.

Worth your disk space

Projects like this usually end up as a viral video and a dead repo. This one has the opposite shape: real engineering, modular layers, a local-first install, and documentation that admits its own fudges. Drop it on the homelab box, hand the globe to whoever wanders past, and see how long it takes before someone asks “wait, can we put our own data on it?” That question — not the globe — is the actual product.

Laravel and Docker

Laravel is a PHP framework that makes building a web application faster (once you climb the mountain to learn it!)

Docker is the hosting environment that brings your ‘development’ and ‘production’ environments closer together.

Laradock is the glue holding them together.

Getting started with Laravel for Linux System Administrators

I recently had a go at learning Laravel.

I’m already very familiar with Linux servers as I ran a web hosting business. Yet all the Getting started documents seemed to assume I was unfamiliar and lead me down the path of using Vagrant on my Windows desktop

To use Laravel on a Linux web hosting account, all you actually need is composer. This is a PHP dependency manager, not unlike Yum or Apt-get you would use to manage packages on your server.

You can install composer with the standard package management. From there create a new Laravel project with

composer create-project –prefer-dist laravel/laravel blog

in the folder where you would like it created, where blog is the name of the new project.

This creates a project using the initial laravel files.

Once thats done you have a very basic laravel website ready to go. Place it behind an apache web server and you should see the logo of laravel.

Anouther important piece is the artisan file. This command line PHP script performs a few important functions such managing the associated database for the laravel site in an intelligent way.

Quick build a new Windows PC

Boxstarter offers a way to take a new PC with an internet connection and have it auto load software from a software repository. Here are some sample links I put together. You can view what they do by putting the loaded URL into a browser. The process works without any software loaded only in IE and Edge browsers.

Updated 11/3/2020: build and builddev to include Microsoft Edge and builddev to include Visual Studio Code

Updated 24/4/2023: renamed files and added a game option

http://boxstarter.org/package/nr/url?https://hansenit.solutions/build.txt

http://boxstarter.org/package/nr/url?https://hansenit.solutions/builddev.txt

http://boxstarter.org/package/nr/url?https://hansenit.solutions/buildserver.txt

https://boxstarter.org/package/nr/url?https://hansenit.solutions/buildgame.txt

Services

Hansen IT Solutions can provide a range of services.

Website development and ongoing maintenance

Search engine optimisation

Social media integration and management

SMB Desktop networking design, services and support

Internet connectivity

VoIP Telephony including PABX systems and integration

Custom programming services

Adding slave DNS servers for Plesk

There is a nice and simple extension for Plesk that allows you to setup slave DNS zones from Plesk domains automatically.

If your adding this to an existing server though its a little hit and miss if it will add existing domains. The instructions say you can do this via ‘Apply DNS template’ but this did not work for me. Adding new domains worked fine though.

I ended up writing this script and it worked great.

add-slave.sh
#!/bin/bash
/usr/sbin/rndc -c /usr/local/psa/var/modules/slave-dns-manager/slave_*SLAVEIP*>.conf addzone $1 '{ type slave; file "db.'$1'"; masters { *MASTERIP*; }; };'

Replace *MASTERIP* and *SLAVEIP* with your own server IPs.

Usage from the command line is just needs a the DNS your setting up the slave with as the parameter

Taking it further there was a few hundred domains which didnt seem fun to type in one at a time so I used this script to loop over all the domains and add each one.


#!/bin/sh

ADMIN_PASS=`cat /etc/psa/.psa.shadow`
MYSQL_BIN_D=`grep MYSQL_BIN_D /etc/psa/psa.conf | awk ‘{print $2}’`
mysql=”${MYSQL_BIN_D}/mysql -N -uadmin -p${ADMIN_PASS} psa”

query=”select name from domains;”
domains=`echo $query | $mysql `

for i in ${domains}; do
./add-slave.sh $i
done

from https://gist.github.com/agarzon/37b6eac3f31a5017ffb2 which was linked in the comments.

WHMCS and Plesk 12

If you are having problems, such as randomly not loading pages, running WHMCS on otherwise stock Plesk 12 server, try updating the install of ioncube. It seems the version installed with Plesk is a little older and doesnt quite work right with the current version of WHMCS.

Rsync backup CentOS server with email report

Running various business critical CentOS based Linux servers means good backups are a must. The ability to restore completely from backup to a DR site is a must.

To do this I keep a copy of the server backed up at root level on a locally hosted NAS.

A nightly rsync runs, with appropriate exlucsions that keeps a local copy of the system in sync. Data usage on the various Web/DNS/email servers I run works out to be around 50-200mb a night.

rm -f /var/log/sync/*

rsync -avzh –delete –stats server1.com:/  /store/backup/server1/ >/var/log/sync/server1 –exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/home/*/.gvfs,usage/*}

tail /var/log/sync/* | mail -s “Server sync report”logs@myemail.com

add a rsync line for each server.

the rsync logs are kept in /var/log/sync. To know if it was a success I can monitor the email. As I’m really only interested in success/fail i use tail to only show me the last few lines of each log.

To restore, do a minimal install of the same CentOS version, install rsync, and rsync directly over root from the backup. Reboot to bring the new system back online as per the last backup.

WordPress Appliance - Powered by TurnKey Linux