Tutorials

(Feeds: RSS | Atom | JSON )


Little projects and tidbits of knowledge how to do something and my personal experience.

Self-hosting an AI (LLM) chatbot without going broke

In the recent years, the efforts of OpenAI and other organizations haven't gone unnoticed. While there's definitely controversy regarding things like copyrights and intellectual property, at th...

Increase container build speeds when you use apt

It's no secret that I use containers for most of my workloads, due to the reproducibility and standardization that they provide. I've also gone a step further than most folks, since I base all of my...

How to add a wildcard SSL/TLS certificate for your K3s cluster

Here's a short tutorial that I felt could be useful for some people, but didn't get around to actually writing previously. Suppose that you have a project that uses Kubernetes and you'd...

What to do when a disk dies

For the past few years, I've been running my own hybrid cloud: some of my software runs in the cloud in servers that I rent from Time4VPS, however a lot of my other software (CI nodes, backups, chat applications) is ru...

(4/4) Pidgeot: a system for millions of documents; Testing and Conclusions

You can read the previous part here: (3/4) Pidgeot: a system for millions of documents; Deploying and Scaling

Thanks to the work we did previously, we have everything we...

(3/4) Pidgeot: a system for millions of documents; Deploying and Scaling

You can read the previous part here: (2/4) Pidgeot: a system for millions of documents; The Application

In the previous parts, we setup PostgreSQL and MinIO for our documen...

(2/4) Pidgeot: a system for millions of documents; The Application

You can read the previous part here: (1/4) Pidgeot: a system for millions of documents; The Data

In the previous part, we settled on PostgreSQL and MinIO for our document storage...

(1/4) Pidgeot: a system for millions of documents; The Data

Let me set the scene: you need to process a large amount of documents and have some basic versioning for them, quite possibly for a project at work. The specifics aren't even as important...

Let's run our own CA

Having our own certificate authority would let us generate certificates for our applications and, upon importing them in our OS or browser, provide secure communications. It would also reduce our dependence on third parties as...

How and why to use Apache httpd in 2022

Suppose that you need to set up a web server to either serve some static assets or a web application front end, work as a reverse proxy, or maybe even act as the provider for SSL/TLS certificates. In the curr...

Moving from GitLab CI to Drone CI

Recently i posted about how GitLab updates are broken, at least when attempting to self host it and occasionally update it on my VPSes, which necessitated me moving to something better suited to my particular set...

Moving from GitLab Registry to Sonatype Nexus

Recently i posted about how GitLab updates are broken, at least when attempting to self host it and occasionally update it on my VPSes, which necessitated me moving to something better suited to my pa...

Moving from GitLab to Gitea

Recently i posted about how GitLab updates are broken, at least when attempting to self host it and occasionally update it on my VPSes, which necessitated me moving to something better suited to my particular set of ci...

What to do when you've forgotten your root password

Suppose that you have a GNU/Linux server sitting somewhere that's gone untouched for a while. Maybe it's yours, or perhaps it's someone else's. But now, for whatever reason, you need to connect to...

How to use Nginx to proxy your front end and back end

Recently i split up a monolithic project at work into a separate front end and back end, as well as decided to containerize them separately. This was all achievable thanks to Nginx and this arti...

Let's run our own chat platform

The pandemic has currently gone on for a while and it seems that it'll continue doing so for at least a year or two more. During this time, many industries have realized that they don't really need to be in the same...

How to make your 3D prints stick to the base

As someone who has a 3D printer without a heated base, i've ran into quite a lot of problems over the years, because my models tended to fall off of the base plate, ruining the entire print. The internet...

Simple ways to do backups

A while ago, there was a post on Hacker News, which asked for advice on how to do backups:

If someone is a less able, cognitively impaired, or perhaps very young - It would be good to see what advice HN would give th...

How to self-host an analytics platform

Recently, i made a post about configuring and running a self-hosted APM platform, Apache Skywalking. However, APM is just one piece of the puzzle when wanting to run applications - some care should also be giv...

How to self-host an APM platform

Suppose that you work as a software developer and have to manage a web application together with your teammates. This application could be used by hundreds if not thousands of people and therefore it stands to reaso...

How to run a split DNS server

Suppose that you're in an enterprise setting, where you want to run your own DNS server, without having to rely on an external party to do so. Furthermore, let's suppose that you want to return certain records only to...

How to set up remote development

It's the middle of the summer, the temperature outside is about 30 degrees and i'm hunkered down in my bed, one of the few cool places in the house. With me, i have an underpowered netbook, that, while is light and...

How to organize your issue dependencies in Jira

Let's suppose that you're a developer that is using Jira. A new sprint has just started and you will be able to start working on the issues that you've selected for it, alongside your colleagues. But...

How to publicly access your homelab behind NAT

After moving out of my university dorm room, i was met with an unwelcome surprise: my personal servers, that i had originally kept on my table in the dorms, were no longer accessible from the Internet,...

How to use dynamic DNS for your servers

Here's a quick tutorial for you! Sometimes you need to expose servers to the outside world, whose IP addresses will change either because you don't want to pay for static IP addresses to your ISP, or alternat...

DIY surveillance: motion detection with OpenCV and Python

So, a little while ago i decided that it would be a good idea to see if someone drops by my dorm room while i'm not there. Now, normally i lock the door so there's not too much to worry abou...

By the way, want an affordable VPN or VPS hosting in Europe?
Personally, I use Time4VPS for almost all of my hosting nowadays, including this very site and my homepage!
(affiliate link so I get discounts from signups; I sometimes recommend it to other people, so also put a link here)
Maybe you want to donate some money to keep this blog going?
If you'd like to support me, you can send me a donation through PayPal. There won't be paywalls for the content I make, but my schedule isn't predictable enough for Patreon either. If you like my blog, feel free to throw enough money for coffee my way!