My thoughts on Slackware, life and everything

Author: alienbob (Page 2 of 179)

No Kings! Power belongs to the people

To my friends and their friends and family in the USA: stand up against blatant corruption, greed and power grabs. Fight the corrosion of your democracy and the rise of authoritarianism and fascism in the “land of the free”.

I stand with you.

Anubis is now guarding the git server

I have had it with the onslaught of AI and indexing bots that keep my web servers in a constant state of near-crashes.
In particular git.slackware.nl is not handling the load well. It’s powered by cgit, and with tens of thousands of requests per hour to serve the details of git commits, cgit experiences a lot of segfaults. I already had to disable the download of compressed git-snapshot tarballs because all the “xz” processes that were running as a result of serving up “tar.xz” files were eating most of the server’s resources.

The filters that I had built into the Apache httpd server, as well as fail2ban taking care of the really obvious offenders, were not sufficient.

So. I have built a package for anubis, the self-proclaimed Web Application Firewall that protects web sites from AI scraping bots by challenging the visitor with a proof-of-work. This is essentially a calculation the client (a browser, or a web-scraping script) has to make before allowed entry. That calculation takes the shape of a small math problem that is expensive to compute, but easy to verify, like hashing a string with a given number of leading zeroes.
For scraping bots, the cost of these calculations will be big enough that they stop trying. Mere individuals like you and me, we will notice the Anubis loading page for a second and then it will stay out of our way as long as the cookie it places is valid.
Common Linux download programs like wget and curl are not affected by Anubis because it uses  a sensible set of defaults in its filtering behavior with the intention to not infuriate the humans accessing the site.

The anubis package that I built, will create an ‘anubis’ user and group when it is installed. It will also install a startup script in ‘/etc/rc.d/’ and a block is added to ‘/etc/rc.d/rc.local’ so that Anubis will start on every boot of the computer.

Anubis can run in multiple separate instances. A necessity because for each web site you want to protect you’ll have to run a separate instance, listening on a separate TCP port.

If there’s interest in the details of setting up Anubis on Slackware, let me know in the comments section below and then I’ll write up that documentation in a follow-up article.

If you experience issues accessing git.slackware.nl because of Anubis, also let me know below!

Cheers, Eric

New URL: blog.slackware.nl

Me

Hi all.
It was time to migrate my blog to a new server. The URL ‘alien.slackbook.org/blog/’ has changed to ‘blog.slackware.nl’.

For years, my hosting server has been https://harrier.slackbuilds.org/ – ever since I had to move away from the original host, the slackware.com server (Pat does not trust PHP code).
I am eternally grateful to the team of people (Robby Workman and friends) who purchased its hardware and have been maintaining it in a US datacenter for all that time. They gave me full root rights over my virtual machine. Also many thanks to Teklinks for offering colocation and bandwidth!
Check out harrier‘s frontpage to get an idea of all the Slackware community services are hosted on that iron.

But the QEMU VM which runs on harrier and which essentially hosted my blog, is still on Slackware 14.2. Over time I had to upgrade httpd, mariadb and php to keep the WordPress code happy, but now WordPress is again nagging me about not having PHP 8 and to be honest, Slackware 14.2 has not received security updates for two years now. I am not feeling comfortable with that.
I had a short chat with Robby and he indicated that there’s just too much to be done and too little time to do it. I fully understand that and I have not bothered him with my worries.

I decided to migrate the blog to a new Slackware -current host. I have done a few trial runs over the years; it is not trivial to move a WordPress blog to a new domain and at the same time to a new host. But I think I figured out the challenges and ironed out the kinks.

Also, this was a good opportunity to reconsider the hosting location. Harrier runs in a US datacenter. I am not at all happy with the racist and autocratic direction the US is taking under Trump and his MAGA cult. I’ve seen people being detained and/or sent back at airport border control checkpoints simply because they have written online posts that are unfavorable to Trump. Look at my previous posts here on the blog – I will not attempt to enter the US as long as Trump is its dictator. And therefore it makes sense to choose the European Union as the new location for my blog server.

Welcome to blog.slackware.nl! Please update your bookmarks.
I am creating a redirect for alien.slackbook.org/blog/ to get that forwarded to the new URL, but it never hurts to spread the word to your friends.

Cheers, Eric

A Slackware theme for your Grub

Long ago, when all we had was 32bit Slackware and I was working on realizing the 64bit variant of Slackware, I created a ’64bit’ lilo bitmap with the Slackware  logo, to make it more obvious to your friends that your computer is booting 64bit Slackware and not some obscure other distro.

Lilo is getting a bit old in the tooth though. Mdern computers come with UEFI instead of good old BIOS, and that computer cannot boot on lilo. You’ll have to use elilo or grub instead.
Until now, Slackware supported elilo in the distro installer, but if you wanted to give your computer a Grub bootloader instead of elilo, you would have to do that manually right after the installation of Slackware is completed. Or you could swap out elilo for grub at any later time of course – it is not difficult.

Slackware-current is working its way toward making Grub the default bootloader. The process of installing or upgrading kernels is now automated to the level that if you have Grub installed as the bootloader, there’s nothing you need to do yourself: an initrd is generated based on your preferences (preferences can be written to the files /etc/default/grub , /etc/default/geninitrd and /etc/mkinitrd.conf), the grub bootmenu is refreshed and that’s it!

Recently I switched to Grub on this laptop which until then had been happily booting via elilo. As you may have seen, I use a nice graphical boot screen in liveslak and when I booted this laptop via Grub the first time, I was a bit disappointed by the text-only boot menu much like the boot experience I had with elilo.

But I like my liveslak boot screen!

So I set myself to finding out how I  could install and enable that same boot screen in regular Slackware.

The result is in the ZIP archive http://www.slackware.com/~alien/liveslak-grub2-theme.zip . Here’s how to use it to get a nice boot splash on your Slackware computer with Grub (the prior installation of Grub is something I leave to you):

  •  Extract the archive containing the Grub theme into directory /boot/grub/themes/
  • You will now have a new directory /boot/grub/themes/liveslak-grub2-theme – change its name to /boot/grub/themes/liveslak
  • In the file ‘/etc/default/grub‘ add or modify the following lines:
    GRUB_THEME=/boot/grub/themes/liveslak/theme.txt
    GRUB_FONT=/boot/grub/themes/liveslak/dejavusansmono12.pf2
    GRUB_GFXMODE=1024x768,800x600,640x480,auto
    GRUB_GFXPAYLOAD_LINUX=keep
  • Then run (as root) the command: update-grub
  • Now, reboot. You should be greeted by a Slackware logo and the Grub boot menu.

Let me know in the comments section what you think of this!

Cheers and enjoy the weekend, Eric

Heads-up: I am migrating slackware.nl to a different host on 14-aug

Before the summer holiday ends and people start hammering my download servers again, I am going to that which I announced a while ago. In order to deal with increasing load on my main server I have been planning a re-distribution of its services to multiple new hosts.
The most important one – docs.slackware.com – was moved on June 17th. But the main package mirror and the git repositories still reside on the old host.

Therefore, tomorrow 14 August I am going to migrate the remaining services from old host “martin’ to new host “vance” which is more powerful.

Specifically, the services that will migrate are:

Expect some downtime while the hostnames move to their new IP address. I have a 10 minute TTL configured in DNS for the current DNS mappings. But I have noticed with earlier migrations that the propagation of my DNS changes across the globe sometimes take *much* longer than 10 minutes. The Cloudflare DNS (1.1.1.1) is usually pretty fast picking up those changes but Google DNS (8.8.8.8) sometimes takes an hour.
I also need to validate that I actually migrated all of the content and configuration properly.

If you wanted to use tomorrow, August 14th, as a perfect day to upgrade your Slackware computer or download a Live ISO from slackware.nl – wait another day please or use another mirror this once.

I understand this is an inconvenience but the service will improve! I expect more bandwidth, faster response time and no more aborted transfers.

Cheers, Eric

Final report-out 2025-aug-15:
The new server is up and running and there are no remaining issues to be resolved as far as I can see.
The migration to the new server also meant an upgrade from Slackware64 15.0 to -current. That caused a few unforeseen issues:

  • Segfaults in the ‘cgit’ web interface to my git repositories (as evidenced in ‘dmesg’ output) which turned out to be caused by a race condition in Lua version incompatibilities: cgit was compiled against luajit which is compatible with Lua 5.1, whereas lua-md5 which is used by cgit was compiled against the Slackware lua package (version 5.4).
    Resolved by recompiling cgit against Lua 5.4.
  • Crashes in the slakfinder database updater. The PHP and MariaDB on Slackware 15.0 were fine with ISO-8859 text inside slack-desc files, but on -current that throws an exception.
    Resolved by converting all imported text from slack-desc files to UTF-8 first.
« Older posts Newer posts »

© 2026 Alien Pastures

Theme by Anders NorenUp ↑