today's howtos
-
Dead USB Drives Are Fine: Building a Reliable Sneakernet
NNCP is one of those things that almost defies explanation. It is a toolkit for building asynchronous networks. It can use as a carrier: a pipe, TCP network connection, a mounted filesystem (specifically intended for cases like this), and much more. It also supports multi-hop asynchronous routing and asynchronous meshing, but these are beyond the scope of this particular article.
NNCP’s transports that involve live communication between two hops already had all the hallmarks of being reliable; there was a positive ACK and retransmit. As of version 8.7.0, NNCP’s ACKs themselves can also be asynchronous – meaning that every NNCP transport can now be reliable.
Yes, that’s right. Your ACKs can flow over tapes and USB drives if you want them to.
I use this for archiving and backups.
-
Explaining modern server monitoring stacks for self-hosting
Hello, it's been a long time I didn't have to take a look at monitoring servers. I've set up a Grafana server six years ago, and I was using Munin for my personal servers.
However, I recently moved my server to a small virtual machine which has CPU and memory constraints (1 core / 1 GB of memory), and Munin didn't work very well. I was curious to learn if the Grafana stack changed since the last time I used it, and YES.
There is that project named Prometheus which is used absolutely everywhere, it was time for me to learn about it. And as I like to go against the flow, I tried various changes to the industry standard stack by using VictoriaMetrics.
In this article, I'm using NixOS configuration for the examples, however it should be obvious enough that you can still understand the parts if you don't know anything about NixOS.
-
Securing my static site server with seccomp
During the discussion cycle, many (if not most?) have failed to see the great potential such a simpler server (like my own) has with regard to security (and other directions). Most participants were happy with their generic HTTP server that also serves static files.
-
The amount of memory in basic 1U servers and our shifting views of it
As a practical matter, I don't think we'd deploy any reused server with less than 4 GB of RAM, and we might take the effort to bring them up to 8 GB. We have very few machines with less than 8 GB now, and it's not just because of the hardware generation they're on. We've simply wound up in a situation where we default to thinking that 8 GB is the minimum amount of RAM that a server should have (and we add more if it seems called for). Of course this isn't absolutely necessary; we probably have plenty of servers that don't really need 8 GB, and I've never had problems on my virtual machines with 4 GB.
-
How to Install Akregator on Ubuntu 22.04 LTS
Akregator is a powerful yet easy-to-use news feed reader. With Akregator, you can follow your favorite news sites, blogs, and other RSS/Atom-enabled websites without constantly checking for updates using a web browser. Akregator’s fast search feature lets you quickly find the information you’re looking for, while its advanced archiving functionality ensures that you’ll never miss an important story. With Akregator’s internal browser, reading the news is a breeze. Whether a casual news reader or a power user, Akregator is the perfect tool for keeping up with the latest headlines.
In the following tutorial, you will learn how to install Akregator on Ubuntu 22.04 LTS Jammy Jellyfish using two methods with APT or Flatpak using the command line terminal.
-
How to set up Jellyfin on Linux in Docker
Jellyfin is an open-source implementation of Plex. It is the perfect media server for those who don’t like Plex’s direction. This guide will show you how to deploy a Jellyfin server on Linux in Docker.
-
How to Install Erlang on Debian 11 Bullseye
Erlang is a functional, concurrent programming language designed specifically for systems with high availability requirements. The original implementation was developed by Ericsson in the 1980s and was later released as open source in 1998. Over the years, Erlang has gained a reputation for being particularly well suited for parallel and distributed systems. This is due to its support for “lightweight” processes, which can be created and destroyed very efficiently. In addition, Erlang’s fault-tolerant design also means that it can gracefully handle failures without bringing down the entire system. As a result, Erlang has become a popular choice for mission-critical applications that require high availability.