aboutsummaryrefslogtreecommitdiff
path: root/content/permadraft/000_my_server.md

Title: Making my server completely replacable Category: Blog Tags: /dev/diary, linux, ancible Date: 2018-02-08 Status: Draft

This is mostly a draft so far, so maybe pad it a bit more 😉

I have a virtual server running Arch Linux hosted somewhere in Germany which I want to use to host some personal services and toolchains. Currently this is done via LXD which I was a fan of for quite a while. I am using Zfs as a backend for these containers which means that I can do quick snapshots and deduplication between the base systems. But...I'm not really sure this is a nice way to do it anymore. I would like to run services in Containers just because it means that the host can be setup in a more clean way.

But right now there is a lot of manual configuration required because I'm struggling with the new way that LXD handles network taps. And while I'm gonna have to touch my configs anyways, I thought: why not go a bit further?

Existing setup

 ☁ (icarus) ~> lxc list
+-------------+---------+----------------------+------+------------+-----------+
|    NAME     |  STATE  |         IPV4         | IPV6 |    TYPE    | SNAPSHOTS |
+-------------+---------+----------------------+------+------------+-----------+
| betakookie  | STOPPED |                      |      | PERSISTENT | 2         |
+-------------+---------+----------------------+------+------------+-----------+
| dcmerge     | RUNNING | 10.130.123.13 (eth0) |      | PERSISTENT | 0         |
+-------------+---------+----------------------+------+------------+-----------+
| dns         | STOPPED |                      |      | PERSISTENT | 1         |
+-------------+---------+----------------------+------+------------+-----------+
| gitlab      | RUNNING | 10.130.123.20 (eth0) |      | PERSISTENT | 2         |
+-------------+---------+----------------------+------+------------+-----------+
| hazelnot    | RUNNING | 10.130.123.12 (eth0) |      | PERSISTENT | 0         |
+-------------+---------+----------------------+------+------------+-----------+
| partkeepr   | STOPPED |                      |      | PERSISTENT | 3         |
+-------------+---------+----------------------+------+------------+-----------+
| spacekookie | RUNNING | 10.130.123.10 (eth0) |      | PERSISTENT | 2         |
+-------------+---------+----------------------+------+------------+-----------+
| stats       | RUNNING | 10.130.123.22 (eth0) |      | PERSISTENT | 0         |
+-------------+---------+----------------------+------+------------+-----------+
| turtl       | STOPPED |                      |      | PERSISTENT | 0         |
+-------------+---------+----------------------+------+------------+-----------+
| vpn-core    | STOPPED |                      |      | PERSISTENT | 0         |
+-------------+---------+----------------------+------+------------+-----------+
| wiki        | RUNNING | 10.130.123.23 (eth0) |      | PERSISTENT | 0         |
+-------------+---------+----------------------+------+------------+-----------+

Ultimately I want to run a few core services:

  • My website (Also available in early access on Github 😱)
  • A friend's static website
  • Gitlab
  • Bookstack (my wiki)
  • Matomo (previously Piwik)
  • Partkeepr (a tool for managing electronic components)
  • Turtl (a cool evernote clone)
  • My own Quassel core (instead of using my ex-girlfriend's one 😉)

And maybe some more that I haven't setup yet. Including a VPN between my server, my NAS and all of my other devices.

Future setup idea

I have two servers running pretty much all the time:

  • My cloud server
  • My NAS at home

What I want to get over is having to manually configure containers and