#+title: I am bad at reading
#+date: 2023-03-04T17:43:38+01:00
#+draft: false
#+categories[]: Servers
#+tags[]: Documentation Servers

* Setting up servers
So recently, I have been setting up servers for my committee at uni and my own home server since I am transferring from a vps.
Doing this, I have tried out using [[https://github.com/hashicorp/nomad/][Nomad]] and [[https://github.com/hashicorp/consul/][Consul]] instead of ssh'ing to the server and running ~docker-compose up~ or even launching the services manually.
This approach has seeing how the docker logs look easier and I know that reverse proxy will be solved by itself.

The issues arise when I try to understand why thing aren't working in the tools used however.
Docker-compose is kinda self contained, but both Nomad and Consul work as an overarching tool so trying to find out errors with them is harder.

* The latest issues
So, two days ago, I was trying to setup Jellyfin on my own server, but it started acting up in a weird way.
Services were shutting down as expected Nomad, but on the Consul side, it would just add on more and more services.
This made the reverse proxy Traefik not work or sending traffic to the wrong container.
Logging into the server via ssh and using the ~deregister~ command of Consul resulted in not finding the services.
After hours of searching I found [[https://github.com/hashicorp/consul/issues/16351][this github issue]] which made me able to manually deregister services.

This was a temporary fix, I had to get to the root issue of the problem.
So today I sat down to try and figure things out.
Searching and searching for the issues, I find out that the problems are arising from the tokens used due to permissions.
But trying to find out how the permissions work, I am dumbfounded.
Reading through [[https://developer.hashicorp.com/consul/docs/security/acl/acl-policies][this]] gives me nothing that helps me figure out how to actually use it.
It feels like you have to be into the entire system and know a bit of everything to even be able to use it.

* After the fact
It got fixed eventually, but the threshold to get into certain systems feels overwhelming to me.
I am way more of getting the bare system, or it might be a bit more like the Unix philosophy of doing 1 thing good.
That way, the documentation of that program can be short and to the point rather than explain an entire ecosystem.
It would be harder to set up the communication between software though, so I understand why it exists, but I easily get frustrated by it.
