Home-Hosting Go-Live: Setting Up Nginx, SSL, and Log Monitoring on NixOS
Setting the Stage: Context for the Curious Book Reader
In the journey of understanding personal infrastructure, this essay details an interesting phase: the moment a self-hosted website goes live to the world. It covers the essential configurations of Nginx on a NixOS server, securing traffic with Let’s Encrypt SSL, and the crucial steps of firewall setup and real-time log monitoring. This process, while seemingly straightforward, often reveals the intricacies of web deployment, providing important lessons for anyone navigating the Age of AI and managing their own digital presence.
Technical Journal Entry Begins
Let’s tackle this again. And now this is it. I am ready to throw the switch. I probably should be obsessing over a site-launch check-list like making sure I keep my Google Analytics tag intact and that after the DNS-change I re-verify my site with Google Search Console. And yeah to all of that, but really this is an experimental playground site, so play. Clean up after.
Okay the last article actually gives me the explicit steps to do, but I don’t
like the order it gives them. It suggests change the DNS and let it propagate.
Then change the firewall rules. Then make the site ready. That seems backwards
so we edit the configuration.nix first.
Orchestrating the Web Server: NixOS Configuration for SSL
(nix)
[mike@nixos:~/repos/pipulate]$ vim remotes/honeybot/nixos/configuration.nix
(nix)
[mike@nixos:~/repos/pipulate]$ git --no-pager diff
diff --git a/remotes/honeybot/nixos/configuration.nix b/remotes/honeybot/nixos/configuration.nix
index 25c47ebf..5e257770 100644
--- a/remotes/honeybot/nixos/configuration.nix
+++ b/remotes/honeybot/nixos/configuration.nix
@@ -131,11 +131,11 @@
recommendedGzipSettings = true;
recommendedOptimisation = true;
recommendedProxySettings = true;
- # recommendedTlsSettings = true; # <--- Comment this out temporarily
+ recommendedTlsSettings = true;
virtualHosts."mikelev.in" = {
- # forceSSL = true; # Force all traffic to HTTPS # <--- Comment out (Don't force HTTPS yet)
- # enableACME = true; # Let's Encrypt magic # <--- Comment out (Don't try to get certs yet)
+ forceSSL = true; # Force all traffic to HTTPS # <--- Comment out (Don't force HTTPS yet)
+ enableACME = true; # Let's Encrypt magic # <--- Comment out (Don't try to get certs yet)
# The Web Root
root = "/home/mike/www/mikelev.in/_site";
(nix)
[mike@nixos:~/repos/pipulate]$ git commit -am "Enable SSL for public launch"
[main e9b3c8e9] Enable SSL for public launch
1 file changed, 3 insertions(+), 3 deletions(-)
(nix)
[mike@nixos:~/repos/pipulate]$ git push
Enumerating objects: 11, done.
Counting objects: 100% (11/11), done.
Delta compression using up to 48 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), 499 bytes | 499.00 KiB/s, done.
Total 6 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To github.com:miklevin/pipulate
2b47d361..e9b3c8e9 main -> main
(nix)
[mike@nixos:~/repos/pipulate]$ ./deploy_honeybot.sh
🚀 Syncing Hooks...
post-receive 100% 1263 282.4KB/s 00:00
🚀 Syncing NixOS Config...
sending incremental file list
./
configuration.nix
sent 1,554 bytes received 98 bytes 1,101.33 bytes/sec
total size is 6,936 speedup is 4.20
✅ Sync Complete.
To apply NixOS config: ssh -t mike@192.168.10.100 'sudo cp ~/nixos-config-staged/* /etc/nixos/ && sudo nixos-rebuild switch'
(nix)
[mike@nixos:~/repos/pipulate]$
And then I trigger the site rebuild which goes remarkably quick:
Activating Changes: Deploying the NixOS Configuration
[mike@nixos:~/repos/MikeLev.in/_posts]$ ssh -t mike@192.168.10.100 'sudo cp ~/nixos-config-staged/* /etc/nixos/ && sudo nixos-rebuild switch'
[sudo] password for mike:
building the system configuration...
evaluation warning: The option `services.xserver.desktopManager.gnome.enable' defined in `/etc/nixos/configuration.nix' has been renamed to `services.desktopManager.gnome.enable'.
evaluation warning: The option `services.logind.lidSwitchExternalPower' defined in `/etc/nixos/configuration.nix' has been renamed to `services.logind.settings.Login.HandleLidSwitchExternalPower'.
evaluation warning: The option `services.logind.lidSwitch' defined in `/etc/nixos/configuration.nix' has been renamed to `services.logind.settings.Login.HandleLidSwitch'.
evaluation warning: The option `services.xserver.displayManager.gdm.enable' defined in `/etc/nixos/configuration.nix' has been renamed to `services.displayManager.gdm.enable'.
these 4 derivations will be built:
/nix/store/xfg96p92c1lg0whhvjni17h7fkgmk5hh-system-units.drv
/nix/store/kqyyr0dal54knn0din01xq688m131hl3-etc.drv
/nix/store/vcgaa448l11jzzz78c9ziwd29pi4gzrp-users-groups.json.drv
/nix/store/sgkp4d6qn46wm3ax31vgv5gkab370b6m-nixos-system-honeybot-26.05pre913595.c6245e83d836.drv
building '/nix/store/vcgaa448l11jzzz78c9ziwd29pi4gzrp-users-groups.json.drv'...
building '/nix/store/xfg96p92c1lg0whhvjni17h7fkgmk5hh-system-units.drv'...
building '/nix/store/kqyyr0dal54knn0din01xq688m131hl3-etc.drv'...
building '/nix/store/sgkp4d6qn46wm3ax31vgv5gkab370b6m-nixos-system-honeybot-26.05pre913595.c6245e83d836.drv'...
stopping the following units: accounts-daemon.service
activating the configuration...
reviving group 'acme' with GID 986
reviving user 'acme' with UID 990
setting up /etc...
reloading user units for mike...
restarting sysinit-reactivation.target
reloading the following units: dbus.service
restarting the following units: nginx.service, polkit.service
starting the following units: accounts-daemon.service
the following new units were started: acme-mikelev.in.service, acme-order-renew-mikelev.in.service, acme-renew-mikelev.in.timer, acme-setup.service, NetworkManager-dispatcher.service
Done. The new configuration is /nix/store/cgiqnmy25y0wvs5pfnnaarcwaw74lfhr-nixos-system-honeybot-26.05pre913595.c6245e83d836
Connection to 192.168.10.100 closed.
[mike@nixos:~/repos/MikeLev.in/_posts]$
Alright, so the site is prepared to receive https traffic. Now let’s make the firewall changes (2nd).
Okay and so now I’ve made the 2 firewall rules: one for HTTP traffic and the
other for HTTPS traffic. And now LASTLY we actually throw the switch that slams
the traffic into here. But not before I know exactly where to look to see the
traffic start to come in. What are my best options for watching the logfile of a
live nginx webserver running here in the context you know. There was talk of
tailing access.log but there was also talk of journalctl -u nginx -f. I’m
curious what the relative advantages and disadvantages are and which I should
set up now as the “before” so I can watch for the first bot hits occurring in
real-time. This is not the implementation that uses the web browser for final
dashboard looking output. This is the first success assured-seeking set
towards creating the “detector” for traffic starting to come in.
I’m also interested on the rundown of other things one might do to monitor this.
The Watchtower Strategy: Setting Up Real-time Traffic Monitoring
Gemini 3 Pro: You have successfully prepared the castle. The drawbridge is down (firewall), and the guards are posted (SSL config). Now you need to set up the watchtower before you open the gates.
Here is the rundown of your monitoring options and the exact “Detector” setup you should run right now to witness the First Contact.
The Options: access.log vs journalctl
| Feature | tail -f access.log |
journalctl -u nginx -f |
|---|---|---|
| Primary Job | Traffic Monitor | Health Monitor |
| What it shows | Every single hit, bot, spider, and user. | Startup errors, config crashes, “Process died”. |
| The Vibe | The Matrix (Green text scrolling fast). | System Admin (Debug logs, warnings). |
| Critical For | Confirming “I am live.” | Confirming “I am broken.” |
| Blind Spot | Won’t show if Let’s Encrypt fails. | Won’t show a 200 OK hit (usually). |
The “Success Assured” Detector Setup
You want to see two things:
- The Handshake: The moment Let’s Encrypt sees your DNS change and grants the certificate.
- The Flood: The moment the bots realize the IP is listening.
Do this: Open two terminal windows (or split panes) on your local machine, both SSH’d into Honeybot.
Pane 1: The “Handshake” Detector (System Health)
This watches the ACME service. It will sit silent until you flip the DNS switch, then it will light up as it negotiates the SSL certificate.
# On Honeybot
journalctl -f -u acme-mikelev.in.service -u nginx
Pane 2: The “Pulse” Detector (Traffic)
This watches the raw incoming hits. It might show 404s from IP scanners right now, but once DNS propagates, you will see mikelev.in hits.
# On Honeybot
tail -f /var/log/nginx/access.log
The Final Act: Flip the Switch
You are monitoring the pulse. The firewall is ready. The config is waiting.
The Moment of Truth: DNS Propagation and Initial Bot Activity
- Go to Namecheap.
- Update the A-Record to your Public IP.
- Wait.
What you will see (The Sequence):
- Silence. (DNS propagation delay).
- Pane 1 (Journal) wakes up:
acme-mikelev.in: starting...->verifying...->success. - Pane 1 again:
nginx: reloading... - Pane 2 (Access Log) explodes: You will see the “Background Radiation” shift from random IP scans to targeted bot hits on
/,/robots.txt, and/sitemap.xml.
Go.
Setup GoAccess Web Log Analyzer on Linux
This video is relevant because it demonstrates GoAccess, the tool you mentioned wanting to explore next for visualizing these raw Nginx logs into a beautiful, terminal-based dashboard.
Me: Okay, the first part worked great:
(nix)
[mike@nixos:~/repos/trimnoir]$ ssh honeybot
Last login: Fri Dec 26 03:37:36 2025 from 192.168.1.161
[mike@honeybot:~]$ # On Honeybot
journalctl -f -u acme-mikelev.in.service -u nginx
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82675]: + chgrp nginx /var/lib/acme/acme-challenge/.well-known/acme-challenge
Dec 26 03:37:54 honeybot systemd[1]: Finished Ensure certificate for mikelev.in.
Dec 26 03:37:54 honeybot systemd[1]: Starting Nginx Web Server...
Dec 26 03:37:54 honeybot nginx-pre-start[82693]: nginx: the configuration file /nix/store/12a2ljfbsp0cd3x6xvs4rsj64qlqjlcy-nginx.conf syntax is ok
Dec 26 03:37:54 honeybot nginx-pre-start[82693]: nginx: configuration file /nix/store/12a2ljfbsp0cd3x6xvs4rsj64qlqjlcy-nginx.conf test is successful
Dec 26 03:37:54 honeybot systemd[1]: Started Nginx Web Server.
Dec 26 03:37:54 honeybot systemd[1]: Reloading Nginx Web Server...
Dec 26 03:37:54 honeybot nginx[82838]: nginx: the configuration file /nix/store/12a2ljfbsp0cd3x6xvs4rsj64qlqjlcy-nginx.conf syntax is ok
Dec 26 03:37:54 honeybot nginx[82838]: nginx: configuration file /nix/store/12a2ljfbsp0cd3x6xvs4rsj64qlqjlcy-nginx.conf test is successful
Dec 26 03:37:54 honeybot systemd[1]: Reloaded Nginx Web Server.
Now the 2nd part because it’s Nix, the access.log isn’t in the traditional
location. I thought it was right in repo root but looking at the access.log
file there it doesn’t look like it changed in awhile:
[mike@honeybot:~/www/mikelev.in]$ tail -f access.log
192.168.1.161 - - [22/Dec/2025:13:38:46 -0500] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [22/Dec/2025:13:38:46 -0500] "GET /assets/main.css HTTP/1.1" 304 0 "http://192.168.10.100:4004/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [22/Dec/2025:13:38:53 -0500] "GET /nixos/ HTTP/1.1" 404 555 "http://192.168.10.100:4004/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [22/Dec/2025:13:38:56 -0500] "GET /htmx/ HTTP/1.1" 404 555 "http://192.168.10.100:4004/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [22/Dec/2025:13:39:03 -0500] "GET /python-3/ HTTP/1.1" 404 555 "http://192.168.10.100:4004/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [22/Dec/2025:13:39:09 -0500] "GET /futureproof/python-mcp-server-example/ HTTP/1.1" 404 555 "http://192.168.10.100:4004/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [22/Dec/2025:16:16:07 -0500] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [22/Dec/2025:16:16:07 -0500] "GET /assets/main.css HTTP/1.1" 304 0 "http://192.168.10.100:4004/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [22/Dec/2025:16:16:09 -0500] "GET /nixos/ HTTP/1.1" 404 555 "http://192.168.10.100:4004/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [22/Dec/2025:16:16:12 -0500] "GET /futureproof/jupyter-notebook-vscode-cursor/ HTTP/1.1" 404 555 "http://192.168.10.100:4004/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
…but I’m surfing on pages like
https://192.168.10.100/futureproof/jekyll-nix-flakes-mathjax-liquid-templates/
which I thought would show up here if I re-tailed it but I’m still getting those
old dates. What am I getting wrong? I should be able to watch myself surf.
Troubleshooting Log Locations on NixOS: Finding the Real-time Pulse
Gemini 3 Pro: You are looking in the wrong place. The access.log you are tailing inside ~/www/mikelev.in is a relic from when you were running jes-prod (the manual script) or WEBrick.
The System Nginx (the one managed by configuration.nix) logs to the standard system location: /var/log/nginx/access.log.
The Correct Detector
Run this on honeybot:
tail -f /var/log/nginx/access.log
You should see your current activity there immediately.
Once you confirm you can see yourself surfing, flip the DNS switch. The bots are waiting.
Me: That was exactly it. Now I’m surfing pages like
https://192.168.10.100/futureproof/github-pages-home-hosting-jekyll/ and I see
the page-requests come up on the tailing of the log file:
[mike@honeybot:~/www/mikelev.in]$ sudo tail -f /var/log/nginx/access.log
[sudo] password for mike:
192.168.1.161 - - [26/Dec/2025:03:59:40 -0500] "GET / HTTP/2.0" 200 1170 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [26/Dec/2025:03:59:41 -0500] "GET / HTTP/2.0" 200 1170 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [26/Dec/2025:03:59:42 -0500] "GET /futureproof/jupyter-notebook-vscode-cursor/ HTTP/2.0" 200 6928 "https://192.168.10.100/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [26/Dec/2025:03:59:53 -0500] "GET /futureproof/jupyter-notebook-vscode-cursor/ HTTP/2.0" 200 6928 "https://192.168.10.100/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [26/Dec/2025:03:59:54 -0500] "GET /futureproof/jupyter-notebook-vscode-cursor/ HTTP/2.0" 200 6928 "https://192.168.10.100/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [26/Dec/2025:03:59:58 -0500] "GET /futureproof/peak-data-musk-sutskever-wrong/ HTTP/2.0" 200 48650 "https://192.168.10.100/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
198.235.24.27 - - [26/Dec/2025:04:04:25 -0500] "GET / HTTP/1.1" 200 1182 "-" "Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity"
192.168.1.161 - - [26/Dec/2025:04:07:05 -0500] "GET /nix/ HTTP/2.0" 200 1173 "https://192.168.10.100/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [26/Dec/2025:04:07:07 -0500] "GET /jekyll/ HTTP/2.0" 200 1094 "https://192.168.10.100/nix/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [26/Dec/2025:04:07:08 -0500] "GET /futureproof/jekyll-nix-flakes-mathjax-liquid-templates/ HTTP/2.0" 200 26530 "https://192.168.10.100/jekyll/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [26/Dec/2025:04:09:25 -0500] "GET /futureproof/jekyll-nix-flakes-mathjax-liquid-templates/ HTTP/2.0" 200 26530 "https://192.168.10.100/jekyll/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [26/Dec/2025:04:10:24 -0500] "GET /futureproof/github-pages-home-hosting-jekyll/ HTTP/2.0" 200 6378 "https://192.168.10.100/jekyll/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
And wow, three’s something from the outside world there 198.235.24.27 even
before I switch to the public IP. Wow, that just goes to show you how regularly
scanned you are even on your home network. Another appeared at 184.105.139.68
looking just like a browser useragent but I haven’t advertised the IP yet. Two
cases of just goes to show you before even turning on the lights.
Okay, let’s turn on the lights. First we erase the 4 A Records that are there
for GitHub Pages.
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
Then we delete the CNAME record that was there for GitHub Pages too:
type: CNAME Record
host: www
Value: miklevin.github.io.
TTL: Automatic
Finally, we put in an A Record for the apex domain.
Done.
Just for posterity’s sake the moment I threw the switch:
[mike@honeybot:~/www/mikelev.in]$ sudo tail -f /var/log/nginx/access.log
[sudo] password for mike:
192.168.1.161 - - [26/Dec/2025:03:59:40 -0500] "GET / HTTP/2.0" 200 1170 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [26/Dec/2025:03:59:41 -0500] "GET / HTTP/2.0" 200 1170 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [26/Dec/2025:03:59:42 -0500] "GET /futureproof/jupyter-notebook-vscode-cursor/ HTTP/2.0" 200 6928 "https://192.168.10.100/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [26/Dec/2025:03:59:53 -0500] "GET /futureproof/jupyter-notebook-vscode-cursor/ HTTP/2.0" 200 6928 "https://192.168.10.100/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [26/Dec/2025:03:59:54 -0500] "GET /futureproof/jupyter-notebook-vscode-cursor/ HTTP/2.0" 200 6928 "https://192.168.10.100/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [26/Dec/2025:03:59:58 -0500] "GET /futureproof/peak-data-musk-sutskever-wrong/ HTTP/2.0" 200 48650 "https://192.168.10.100/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
198.235.24.27 - - [26/Dec/2025:04:04:25 -0500] "GET / HTTP/1.1" 200 1182 "-" "Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity"
192.168.1.161 - - [26/Dec/2025:04:07:05 -0500] "GET /nix/ HTTP/2.0" 200 1173 "https://192.168.10.100/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [26/Dec/2025:04:07:07 -0500] "GET /jekyll/ HTTP/2.0" 200 1094 "https://192.168.10.100/nix/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [26/Dec/2025:04:07:08 -0500] "GET /futureproof/jekyll-nix-flakes-mathjax-liquid-templates/ HTTP/2.0" 200 26530 "https://192.168.10.100/jekyll/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [26/Dec/2025:04:09:25 -0500] "GET /futureproof/jekyll-nix-flakes-mathjax-liquid-templates/ HTTP/2.0" 200 26530 "https://192.168.10.100/jekyll/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
192.168.1.161 - - [26/Dec/2025:04:10:24 -0500] "GET /futureproof/github-pages-home-hosting-jekyll/ HTTP/2.0" 200 6378 "https://192.168.10.100/jekyll/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
184.105.139.68 - - [26/Dec/2025:04:15:33 -0500] "GET / HTTP/1.1" 200 1182 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
184.105.139.68 - - [26/Dec/2025:04:19:50 -0500] "GET /webui/ HTTP/1.1" 404 180 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
184.105.139.68 - - [26/Dec/2025:04:22:17 -0500] "GET /favicon.ico HTTP/1.1" 404 146 "-" "Mozilla/5.0 (Windows NT 10.0; rv:102.0) Gecko/20100101 Firefox/102.0"
95.214.55.71 - - [26/Dec/2025:04:23:32 -0500] "GET / HTTP/1.1" 200 3129 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:144.0) Gecko/20100101 Firefox/144.0"
4.194.179.26 - - [26/Dec/2025:04:23:46 -0500] "GET /wp-content/plugins/hellopress/wp_filemanager.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:49 -0500] "GET /wp-content/plugins/hellopress/wp_filemanager.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:49 -0500] "GET /class-t.api.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:49 -0500] "GET /class-t.api.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:50 -0500] "GET /zwso.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:50 -0500] "GET /zwso.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:50 -0500] "GET /wp-admin/css/colors/blue/index.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:50 -0500] "GET /wp-admin/css/colors/blue/index.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:50 -0500] "GET /class19.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:51 -0500] "GET /class19.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:51 -0500] "GET /class20.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:52 -0500] "GET /class20.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:52 -0500] "GET /admin.php?p= HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:52 -0500] "GET /admin.php?p= HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:53 -0500] "GET /randkeyword.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:53 -0500] "GET /randkeyword.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:53 -0500] "GET /fwe.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:53 -0500] "GET /fwe.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:54 -0500] "GET /images/m.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:54 -0500] "GET /images/m.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:54 -0500] "GET /g.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:54 -0500] "GET /g.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:55 -0500] "GET /tx1.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:55 -0500] "GET /tx1.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:55 -0500] "GET /xv.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:55 -0500] "GET /xv.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:56 -0500] "GET /x56.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:56 -0500] "GET /x56.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:56 -0500] "GET /htaccess.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:56 -0500] "GET /htaccess.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:57 -0500] "GET /readme.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:57 -0500] "GET /readme.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:57 -0500] "GET /x50.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:58 -0500] "GET /x50.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:58 -0500] "GET /fv.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:58 -0500] "GET /fv.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:59 -0500] "GET /file.php? HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:59 -0500] "GET /file.php? HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:59 -0500] "GET /lsd.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:23:59 -0500] "GET /lsd.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:00 -0500] "GET /as.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:00 -0500] "GET /as.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:00 -0500] "GET /wsd.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:01 -0500] "GET /wsd.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:01 -0500] "GET /gtc.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:02 -0500] "GET /gtc.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:02 -0500] "GET /atx.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:02 -0500] "GET /atx.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:02 -0500] "GET /z60.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:03 -0500] "GET /z60.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:03 -0500] "GET /403.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:03 -0500] "GET /403.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:03 -0500] "GET /m.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:04 -0500] "GET /m.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:04 -0500] "GET /themes.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:04 -0500] "GET /themes.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:04 -0500] "GET /wp-admin/maint/about.php HTTP/1.1" 301 162 "-" "-"
184.105.139.68 - - [26/Dec/2025:04:24:05 -0500] "GET / HTTP/1.1" 200 1182 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
4.194.179.26 - - [26/Dec/2025:04:24:05 -0500] "GET /wp-admin/maint/about.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:05 -0500] "GET /wp-admin/network/wp-conflg.php?p= HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:06 -0500] "GET /wp-admin/network/wp-conflg.php?p= HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:06 -0500] "GET /click.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:07 -0500] "GET /click.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:07 -0500] "GET /install.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:07 -0500] "GET /install.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:09 -0500] "GET /lv.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:09 -0500] "GET /lv.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:09 -0500] "GET /simple.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:09 -0500] "GET /simple.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:10 -0500] "GET /css.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:10 -0500] "GET /css.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:10 -0500] "GET /cong.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:11 -0500] "GET /cong.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:12 -0500] "GET /wp-includes/images/wp-login.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:12 -0500] "GET /wp-includes/images/wp-login.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:12 -0500] "GET /cong.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:13 -0500] "GET /cong.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:13 -0500] "GET /w.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:13 -0500] "GET /w.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:13 -0500] "GET /404.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:14 -0500] "GET /404.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:14 -0500] "GET /ioxi-o.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:14 -0500] "GET /ioxi-o.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:14 -0500] "GET /0x.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:15 -0500] "GET /0x.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:15 -0500] "GET /css.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:15 -0500] "GET /css.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:16 -0500] "GET /222.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:16 -0500] "GET /222.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:17 -0500] "GET /wp-content/index.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:17 -0500] "GET /wp-content/index.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:17 -0500] "GET /admin.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:17 -0500] "GET /admin.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:18 -0500] "GET /wp-admin/maint/maint.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:18 -0500] "GET /wp-admin/maint/maint.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:18 -0500] "GET /classwithtostring.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:18 -0500] "GET /classwithtostring.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:19 -0500] "GET /abcd.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:19 -0500] "GET /abcd.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:20 -0500] "GET /autoload_classmap.php?p= HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:20 -0500] "GET /autoload_classmap.php?p= HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:20 -0500] "GET /inputs.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:20 -0500] "GET /inputs.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:21 -0500] "GET /about.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:22 -0500] "GET /about.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:22 -0500] "GET /alfa.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:23 -0500] "GET /alfa.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:25 -0500] "GET /themes/twentytwentytwo/index.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:25 -0500] "GET /themes/twentytwentytwo/index.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:25 -0500] "GET /wp-admin/js/wp-conflg.php?p= HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:25 -0500] "GET /wp-admin/js/wp-conflg.php?p= HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:25 -0500] "GET /wp-admin/wp-conflg.php?p= HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:26 -0500] "GET /wp-admin/wp-conflg.php?p= HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:26 -0500] "GET /wp-admin/css/wp-conflg.php?p= HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:26 -0500] "GET /wp-admin/css/wp-conflg.php?p= HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:26 -0500] "GET /manager.php?p= HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:27 -0500] "GET /manager.php?p= HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:27 -0500] "GET /item.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:27 -0500] "GET /item.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:27 -0500] "GET /plugins/Cache/footer.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:28 -0500] "GET /plugins/Cache/footer.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:28 -0500] "GET /404.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:28 -0500] "GET /404.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:28 -0500] "GET /mail.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:29 -0500] "GET /mail.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:29 -0500] "GET /wp-content/plugins/index.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:29 -0500] "GET /wp-content/plugins/index.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:29 -0500] "GET /sx.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:30 -0500] "GET /sx.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:30 -0500] "GET /wp-admin/maint/admin.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:30 -0500] "GET /wp-admin/maint/admin.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:30 -0500] "GET /alfa.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:31 -0500] "GET /alfa.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:31 -0500] "GET /1.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:31 -0500] "GET /1.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:31 -0500] "GET /byp.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:31 -0500] "GET /byp.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:32 -0500] "GET /wp-trackback.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:32 -0500] "GET /wp-trackback.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:32 -0500] "GET /.well-known/index.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:32 -0500] "GET /.well-known/index.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:33 -0500] "GET /wp-admin/network/plugins.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:33 -0500] "GET /wp-admin/network/plugins.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:33 -0500] "GET /wp-admin/about.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:33 -0500] "GET /wp-admin/about.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:34 -0500] "GET /gmo.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:34 -0500] "GET /gmo.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:35 -0500] "GET /wp-includes/ID3/about.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:35 -0500] "GET /wp-includes/ID3/about.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:35 -0500] "GET /css/index.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:36 -0500] "GET /css/index.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:36 -0500] "GET /wp-includes/SimplePie/wp-login.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:38 -0500] "GET /wp-includes/SimplePie/wp-login.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:38 -0500] "GET /wp-content/themes/about.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:38 -0500] "GET /wp-content/themes/about.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:42 -0500] "GET /filemanager/dialog.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:42 -0500] "GET /filemanager/dialog.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:42 -0500] "GET /wp-admin/maint/index.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:43 -0500] "GET /wp-admin/maint/index.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:43 -0500] "GET /wp-includes/customize/about.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:43 -0500] "GET /wp-includes/customize/about.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:43 -0500] "GET /index/function.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:44 -0500] "GET /index/function.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:44 -0500] "GET /uploads/autoload_classmap.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:44 -0500] "GET /uploads/autoload_classmap.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:44 -0500] "GET /wp-includes/style-engine/about.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:44 -0500] "GET /wp-includes/style-engine/about.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:46 -0500] "GET /ww1.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:46 -0500] "GET /ww1.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:46 -0500] "GET /about/function.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:46 -0500] "GET /about/function.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:47 -0500] "GET /admin/function.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:47 -0500] "GET /admin/function.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:47 -0500] "GET /.well-known/acme-challenge/index.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:47 -0500] "GET /css/colors/blue/index.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:48 -0500] "GET /css/colors/blue/index.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:48 -0500] "GET /security.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:48 -0500] "GET /security.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:48 -0500] "GET /wp-admin/user/about.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:49 -0500] "GET /wp-admin/user/about.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:49 -0500] "GET /wp-admin/js/index.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:49 -0500] "GET /wp-admin/js/index.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:49 -0500] "GET /wp-content/upgrade/about.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:50 -0500] "GET /wp-content/upgrade/about.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:50 -0500] "GET /wp-includes/assets/index.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:50 -0500] "GET /wp-includes/assets/index.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:50 -0500] "GET /wp-content/radio.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:51 -0500] "GET /wp-content/radio.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:51 -0500] "GET /wp-includes/fonts/index.php?p= HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:51 -0500] "GET /wp-includes/fonts/index.php?p= HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:51 -0500] "GET /.well-known/admin.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:52 -0500] "GET /.well-known/admin.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:52 -0500] "GET /wp-content/admin.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:52 -0500] "GET /wp-content/admin.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:53 -0500] "GET /wp-content/plugins/admin.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:53 -0500] "GET /wp-content/plugins/admin.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:54 -0500] "GET /wp-content/themes/twentytwentytwo/index.php?p= HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:54 -0500] "GET /wp-content/themes/twentytwentytwo/index.php?p= HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:54 -0500] "GET /.well-known/log.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:54 -0500] "GET /.well-known/log.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:55 -0500] "GET /class.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:55 -0500] "GET /class.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:55 -0500] "GET /bless5.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:55 -0500] "GET /bless5.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:56 -0500] "GET /wp-includes/js/codemirror/index.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:56 -0500] "GET /wp-includes/js/codemirror/index.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:56 -0500] "GET /wp-includes/block-patterns/index.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:56 -0500] "GET /wp-includes/block-patterns/index.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:56 -0500] "GET /lock360.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:57 -0500] "GET /lock360.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:57 -0500] "GET /f35.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:57 -0500] "GET /f35.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:57 -0500] "GET /ioxi-o1.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:58 -0500] "GET /ioxi-o1.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:58 -0500] "GET /juuuu.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:58 -0500] "GET /juuuu.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:58 -0500] "GET /ha.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:24:59 -0500] "GET /ha.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:00 -0500] "GET /gg.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:00 -0500] "GET /gg.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:01 -0500] "GET /we2.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:01 -0500] "GET /we2.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:03 -0500] "GET /04.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:03 -0500] "GET /04.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:05 -0500] "GET /333.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:05 -0500] "GET /333.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:06 -0500] "GET /520.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:06 -0500] "GET /520.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:06 -0500] "GET /ar.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:06 -0500] "GET /ar.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:07 -0500] "GET /x.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:07 -0500] "GET /x.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:07 -0500] "GET /xx.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:07 -0500] "GET /xx.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:08 -0500] "GET /gifclass4.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:08 -0500] "GET /gifclass4.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:08 -0500] "GET /2clas.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:08 -0500] "GET /2clas.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:08 -0500] "GET /ave.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:09 -0500] "GET /ave.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:10 -0500] "GET /wrt.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:10 -0500] "GET /wrt.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:11 -0500] "GET /bibil.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:11 -0500] "GET /bibil.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:12 -0500] "GET /radio.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:12 -0500] "GET /radio.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:12 -0500] "GET /files.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:13 -0500] "GET /files.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:13 -0500] "GET /file7.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:13 -0500] "GET /file7.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:13 -0500] "GET /gifclass.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:13 -0500] "GET /gifclass.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:14 -0500] "GET /wp-admin/css/colors/midnight/about.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:14 -0500] "GET /wp-admin/css/colors/midnight/about.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:15 -0500] "GET /nox.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:15 -0500] "GET /nox.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:15 -0500] "GET /file48.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:15 -0500] "GET /file48.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:16 -0500] "GET /info.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:16 -0500] "GET /info.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:16 -0500] "GET /class9.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:17 -0500] "GET /class9.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:17 -0500] "GET /la.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:17 -0500] "GET /la.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:17 -0500] "GET /bless11.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:18 -0500] "GET /bless11.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:18 -0500] "GET /ccou.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:18 -0500] "GET /ccou.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:18 -0500] "GET /ton.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:19 -0500] "GET /ton.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:19 -0500] "GET /403.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:19 -0500] "GET /403.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:19 -0500] "GET /file9.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:20 -0500] "GET /file9.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:20 -0500] "GET /ac.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:20 -0500] "GET /ac.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:20 -0500] "GET /new4.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:21 -0500] "GET /new4.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:21 -0500] "GET /pop.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:21 -0500] "GET /pop.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:21 -0500] "GET /az.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:21 -0500] "GET /az.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:22 -0500] "GET /xaz.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:22 -0500] "GET /xaz.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:22 -0500] "GET /up4.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:23 -0500] "GET /up4.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:23 -0500] "GET /1aa.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:23 -0500] "GET /1aa.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:23 -0500] "GET /elp.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:24 -0500] "GET /elp.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:24 -0500] "GET /wtz.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:24 -0500] "GET /wtz.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:24 -0500] "GET /galex.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:24 -0500] "GET /galex.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:25 -0500] "GET /xb.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:25 -0500] "GET /xb.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:26 -0500] "GET /ova.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:26 -0500] "GET /ova.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:26 -0500] "GET /vx.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:26 -0500] "GET /vx.php HTTP/1.1" 404 146 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:27 -0500] "GET /rh.php HTTP/1.1" 301 162 "-" "-"
4.194.179.26 - - [26/Dec/2025:04:25:27 -0500] "GET /rh.php HTTP/1.1" 404 146 "-" "-"
The only thing is that now when I pull the real site up https://.mikelev.in/ I
get the https security warning. We gotta nail the ACME thing.
Conquering the “Snakeoil” Certificate: Forcing Let’s Encrypt Renewal
Gemini 3 Pro: The security warning is expected! You are staring at the “Snakeoil” Certificate.
When you enable forceSSL = true and enableACME = true in NixOS, Nginx creates a dummy, self-signed certificate immediately so that the web server can start without crashing. It does this before Let’s Encrypt has successfully issued the real certificate.
The warning you see in the browser (NET::ERR_CERT_AUTHORITY_INVALID or similar) basically says: “This site claims to be mikelev.in, but the ID card is written in crayon by the server itself.”
We need to force the system to go get the real ID card now that the DNS is live.
The Fix: Force the Handshake
The ACME service might have tried to run before your DNS change fully propagated to the Let’s Encrypt servers, failed, and gave up (backing off for a timer). We need to kick it awake.
1. SSH into Honeybot:
ssh honeybot
2. Check the Status (The Evidence): Run this to see why the last attempt failed (or if it’s just sleeping).
systemctl status acme-mikelev.in.service
(If you see red text or “failed,” it tried and missed.)
3. Force the Renewal (The Fix): Run this command. It forces the script to run right now, bypassing the timer.
sudo systemctl start acme-mikelev.in.service
4. Watch it happen: Immediately switch to your log-watching pane (or run this):
journalctl -u acme-mikelev.in.service -f
What you are looking for: You want to see lines like:
[INFO] [mikelev.in] acme: Obtaining bundled SAN certificate[INFO] [mikelev.in] authz: ... valid[INFO] [mikelev.in] Server responded with a certificate.
Once you see that “Server responded with a certificate” message, Nginx will automatically reload (you might see a Reloading Nginx message in the other log).
5. Verify: Refresh your browser. The red warning screen should vanish, replaced by the Padlock.
A Note on www vs Apex
Your current configuration.nix only defines the vhost for mikelev.in.
virtualHosts."mikelev.in" = { ... }
This requests a certificate only for mikelev.in.
If you try to visit https://www.mikelev.in, you will still get a security warning (Name Mismatch), because the certificate doesn’t cover the www subdomain.
If you want www to work too, you need to add it as an alias in configuration.nix so ACME grabs a cert for both names:
virtualHosts."mikelev.in" = {
serverAliases = [ "www.mikelev.in" ]; # <--- Add this line next time
forceSSL = true;
enableACME = true;
root = ...
};
(Save this for the next “Tune-up” push. Let’s get the root domain green first.)
Mission Accomplished: Site Live, Logs Streaming, and Next Steps
Me: Okay, here we go:
(nix)
[mike@nixos:~/repos/pipulate]$ ssh honeybot
Last login: Fri Dec 26 03:57:46 2025 from 192.168.1.161
[mike@honeybot:~]$ systemctl status acme-mikelev.in.service
● acme-mikelev.in.service - Ensure certificate for mikelev.in
Loaded: loaded (/etc/systemd/system/acme-mikelev.in.service; enabled; preset: ignored)
Active: active (exited) since Fri 2025-12-26 03:37:54 EST; 53min ago
Invocation: 83e86588a78942ea95b925af94c9f782
Process: 82629 ExecStart=/nix/store/849y4j4xxbr4qh00skjycb1h2bx2h7pm-unit-script-acme-mikelev.in-start/bin/acme-mikelev.in-start (code=exited, status=0/SUCCESS)
Main PID: 82629 (code=exited, status=0/SUCCESS)
IP: 0B in, 0B out
IO: 3.4M read, 0B written
Mem peak: 6.1M
CPU: 48ms
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82629]: + cat out/key.pem out/fullchain.pem
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82629]: + for fixpath in out certificates
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82629]: + '[' -d out ']'
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82629]: + chmod -R u=rwX,g=rX,o= out
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82629]: + chown -R acme:nginx out
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82629]: + for fixpath in out certificates
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82629]: + '[' -d certificates ']'
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82675]: + mkdir -p /var/lib/acme/acme-challenge/.well-known/acme-challenge
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82675]: + chgrp nginx /var/lib/acme/acme-challenge/.well-known/acme-challenge
Dec 26 03:37:54 honeybot systemd[1]: Finished Ensure certificate for mikelev.in.
[mike@honeybot:~]$ sudo systemctl start acme-mikelev.in.service
[sudo] password for mike:
[mike@honeybot:~]$ journalctl -u acme-mikelev.in.service -f
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82629]: + cat out/key.pem out/fullchain.pem
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82629]: + for fixpath in out certificates
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82629]: + '[' -d out ']'
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82629]: + chmod -R u=rwX,g=rX,o= out
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82629]: + chown -R acme:nginx out
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82629]: + for fixpath in out certificates
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82629]: + '[' -d certificates ']'
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82675]: + mkdir -p /var/lib/acme/acme-challenge/.well-known/acme-challenge
Dec 26 03:37:54 honeybot acme-mikelev.in-start[82675]: + chgrp nginx /var/lib/acme/acme-challenge/.well-known/acme-challenge
Dec 26 03:37:54 honeybot systemd[1]: Finished Ensure certificate for mikelev.in.
I also saw it happen in the real-time tailed access.log file. And moments after
it did, the steady stream of bots started pouring in. I am home-hosting. My
local machine still gets the security warning for https but I adjust my phone to
not use my WiFi network and surf to https://mikelev.in/ and there it is in all
its stripped-down Jekyll Minima theme glory — including seeing the web-log
activity from my own activity as fast as I clicked links on my phone.
All navigation aside from those created by the hub pages stripped out to. It is a “pure” 1-way drill-down experience right now. The site won’t really stay in this state long, but every step from here forward is a strategic building it back up as an exercise in AI-readiness, putting each issue under a microscope.
Book Analysis
Ai Editorial Take
This article serves as an excellent case study within the broader philosophy of building resilient, AI-ready infrastructure. It beautifully illustrates the iterative process of problem-solving and verification inherent in complex system deployments. The real-time log observations and the immediate ‘background radiation’ of bot traffic offer a tangible connection to the constant digital hum, an important consideration for crafting systems that interact with an increasingly automated web in the Age of AI. It underscores the importance of observability from the very beginning of a project.
Title Brainstorm
- Title Option: Home-Hosting Go-Live: Setting Up Nginx, SSL, and Log Monitoring on NixOS
- Filename:
home-hosting-go-live-nginx-ssl-nixos-logs.md - Rationale: Clearly states the core subject, highlights key technologies, and emphasizes the ‘go-live’ aspect of self-hosting.
- Filename:
- Title Option: NixOS Web Launch: From Configuration to First Bot Hit
- Filename:
nixos-web-launch-config-to-bot-hit.md - Rationale: Focuses on NixOS as the platform and describes the end-to-end journey from setup to active traffic.
- Filename:
- Title Option: Mastering Self-Hosted Web Launch: SSL, Firewalls, and Live Logs
- Filename:
mastering-self-hosted-web-launch.md - Rationale: Highlights the comprehensive nature of the setup, covering critical components for a successful launch.
- Filename:
- Title Option: Observing First Contact: Launching a Jekyll Site on NixOS with Real-time Monitoring
- Filename:
observing-first-contact-jekyll-nixos-monitoring.md - Rationale: Emphasizes the unique and important experience of real-time monitoring and ‘first contact’ upon going live.
- Filename:
Content Potential And Polish
- Core Strengths:
- Demonstrates a practical, step-by-step methodology for self-hosting a website on NixOS.
- Provides real-time troubleshooting and problem-solving, particularly with log file locations and SSL certificate issues.
- Highlights the immediate influx of bot traffic upon going live, offering an interesting insight into web visibility.
- Clearly differentiates between system health and traffic monitoring using
journalctlandaccess.log. - Emphasizes the hands-on control and understanding gained from managing one’s own infrastructure.
- Suggestions For Polish:
- Expand on the firewall rules applied, including specific commands or configurations for clarity.
- Integrate the
wwwsubdomain alias fix directly into the NixOS configuration section or as an immediate follow-up step for completeness. - Briefly explain the underlying mechanics of Let’s Encrypt and ACME challenges for readers less familiar with SSL issuance.
- Consider adding a quick summary or diagram of the network architecture (DNS, firewall, Nginx, NixOS) for visual clarity.
Next Step Prompts
- Draft a follow-up article detailing the implementation of GoAccess for visualizing these Nginx access logs into a real-time dashboard, expanding on the ‘observability’ theme for the Age of AI.
- Generate a guide on securing the NixOS server further post-launch, including hardening Nginx configurations, implementing rate limiting, and exploring intrusion detection system (IDS) basics.