Geekices

Some statistics for Userrepository

You might have noticed that Userrepository uses Cloudflare. I chose it for two main reasons: their ability to help mitigate (D)DoS attacks and to help hiding the IP address for the VM from script kiddies.

It’s not that I think Userrepository will ever be a target for a (D)DoS attack, but better safe than sorry. Also, I have more than enough automated failed SSH authentication attempts without revealing the IP: 441 blocked IPs and counting for one fail2ban ssh rule and 2 for another fail2ban ssh rule. I intend to tighten these rules in the near future.

A third (lesser) reason is their analytics. This allows me to evaluate, from time to time, if the repository is of interest for Arch and Arch-based Linux distribution users.

Although the analytics part is not the best-in-breed, it lets me take a look at the stats for the last 30 days. For example, in this time frame, at the time of writing of this blog post, I had 1486 unique visitors and 17622 total requests to userrepository.eu. I honestly expected around half that number at best.

Most of these unique visitors (and hopefully users), from first to last, come from France, Germany, Italy and USA. My country, Portugal, still hasn’t reached the 500 unique requests.

In terms of bandwidth statistics, the numbers are low: 10.14GB in the last 30 days, with only 878.35kB of cached content. This is expected because I doubt they would cache compressed files, but they’re probably caching the 01-README.txt file with the instructions to add the repository to your /etc/pacman.conf file.

The numbers, I must admit, are not what I wanted but they are more than I expected and that’s a strong motivation to keep the project running, hoping it will help other users.

One last thing: please become a Patron if you want to support userrepository.eu. Even €1 will help cover the monthly expenses, just over €15. If I get enough patrons, I’ll be able to upgrade the virtual machine to one with better specs, which will allow a higher package compression level, shorter build times and maybe even packaged kernels. Thank you!


Geekices

Status on userrepository changes

It took me a while to update you about the latest changes to my Arch and Arch-compatible Linux distributions repository. But first, let me apologize for the delay: work, personal life and, for about 3 weeks now, a horrible back pain (that just doesn’t stop, even with an handful of medication) have kept me from doing this in the time frame I expected.

First on the “agenda”, I experimented with increasing the zstd compression level for the packages like I said I would do in my last post about the repository. The trade-off was not worth it: the increase in packaging time was far superior to the small decrease in package size. So, I’ll keep the zstd compression level to “-12” in the foreseeable future.

Also, up to a few days ago, I would manually update the packages and, from time to time, do a full build. Now, I’m using a cron job and pueue to manage the tasks and it always does a full build.

If you don’t know pueue, this application is a command-line task management tool for sequential and parallel execution of long-running tasks. Besides adding tasks, you can watch the logs for them, the exit codes and even follow what the task is doing (just like using “tail -f /destination/file“). But pueue can do much more. Go check it out at Github.

Userrepository.eu also has a few more packages. For example: vimtips, wego, wttr, plymouth and performance-tweaks. All of them are at AUR and at the Git repository where I have userrepository.eu sources, if you want to take a look at the commits (just ignore some of the commit messages, because I can be lazy with them at times ^^’).

One last thing: please become a Patron if you want to support userrepository.eu. Even €1 will help cover the monthly expenses, just over €15. If I get enough patrons, I’ll be able to upgrade the virtual machine to one with better specs, which will allow a higher package compression level, shorter build times and maybe even packaged kernels. Thank you!


Geekices

Updates on userrepository

Since the last post about my Arch (and Arch-compatible distributions) binary repository, I’ve added a few more packages. Some examples are the Mullvad VPN desktop client and nimdow, a window manager written in the Nim programming language. Or Emptty, an amazing display manager that I encourage you to try.

Despite adding more packages, the compilation and compression time only had a small increase and I’m still below the 5 hour mark. And I’ve kept the zstd “-12” compression level.

Right now, I’m doing a full build to time it again. If it keeps below the 5 hour mark, I’ll try to increase the compression level to “-15” to see if the trade-off is worth it. If so, you’ll have smaller packages, allowing you to save bandwidth.

I’ll keep you updated as soon as I make the change. But that might take a few days, because work and stuff.

One last thing: please become a Patron if you want to support userrepository.eu. Even €1 will help cover the monthly expenses, just over €15. If I get enough patrons, I’ll be able to upgrade the virtual machine to one with better specs, which will allow a higher package compression level, shorter build times and maybe even packaged kernels. Thank you! 🙂


Geekices

Some notes about userrepository performance with the new provider

In the previous post, I wrote about how I changed the virtual machine provider from Scaleway to Hetzner. In the days following the transition, I timed how much it took to build all the packages and sync them to the webserver, so I could compare the new provider with the previous one.

The specs are very similar: 4 vCPUs and 8GB of RAM. There is one difference, however: with Scaleway, the vCPUs were some Intel low-end ones (although they’ve upgraded to AMD EPYC very recently) and with Hetzer they are AMD EPYC. And what a difference this makes.

Previously, 250 and something packages took almost 5 hours to complete the build and sync them to the webserver. Now, it takes around 4 hours and 12 minutes to build and sync 328 packages. That’s a huge difference.

I’ve only been using Hetzer for userrepository for about a week, but so far it feels like an improvement. But I’ve yet to test the network performance.


Geekices

Userrepository.eu is back (in beta)

After a small forced hiatus, userrepository.eu is back. The Covid-19 pandemic made a hit in my income and the wife’s income, so I had to temporarily suspend non-priority expenses. During this period, I had time to consider a few things about the future of the project and decided to change the provider from Scaleway to Hetzner, mostly because the Arch image they’re using is essentially abandonware.

If you’re reading this, you’ll probably know that Arch Linux changed the default package compression to ZSTD. In order to update or install any package, you’ll need a pacman version that supports this compression and up-to-date libraries. These requirements aren’t met in older Arch images, like the one used by Scaleway, so the only two solutions were installing another distribution, chrooting into it and hack an Arch install (the solution presented to me by Scaleway support) or change provider. The second option was the less time-consuming one.

Hetzner doesn’t provide Arch by default when creating a virtual manchine, but after creating it the user can boot it in rescue mode and run the installimage script that makes the process almost a breeze. After running the script, I advise you to manually chroot and temporarily allow root logins for the SSH daemon in order to be able to login remotely after booting the VM normally.

The virtual machine configuration I chose has similar specs to the previous one with Scaleway: 4vCPUs and 8GB of RAM. In the first few hours of use, I noticed a small improvement in package compile times – but this is just my perception; I have yet to time the build times. But even things like refreshing the repository package list is faster, way faster, and that’s really noticeable.

For the time being, I’ll consider userrepository.eu in beta state, so use it with some degree of carefulness. The source is the same, but I changed the provider and I’m evaluation the virtual machine and network performance. Let’s see how it goes.