As I have recently become very interested in containerisation, primarily in Docker, I decided to re-purpose my old(-ish, bought it 6 years ago) gamer PC into a home server, since I do not game very much, also I just moved onto a new laptop.
The setup is based on an 8-core Intel PC, with 16 GB RAM (overkill, I know).
I have removed the unnecessary parts (it had a Geforce 770 GPU), and – after the Ubuntu Server installation – detached all the peripherals, as I am using this server headless. I have installed the OS, installed Docker and Docker compose, updated it, imported my SSH keys, then cracked-on with the good stuff 😉
What can Docker do for you?
OK, I am probably not going to do the full blown introduction to Docker…there are very good guides on this, or you can check its website. The way I see it, it is a very good way to run an infrastructure efficiently, neatly compartmentalised. I have mainly used this guide, so a big kudos to the author.
I have not fully completed my mission, but I have so far achieved:
- 30+ containers running on my host
- a domain set up with several CNAME, pointing to the host
- reverse proxy (also in one of the containers), so that I only have to maintain/remember the CNAME-s, not the individual application ports
- Google oAuth (probably I had the biggest challenge setting up this one – after all I am less of a web/app-dev, more old-school bare-metal operations-guy)
Once I land on the page, I am authenticated via my Google account, and I have access to all my application – all of them is on a separate container, remember – and can manage my audio, video, movie collection, and a bunch of other things.
If I need to do changes, update the docker file, etc – I can still do that from the back-end. My favourite tool for the trade is the awesome VSCode (I am not affiliated to them, just sharing…) , which actually has a proper Docker-management plugin, as you can see on the right, where most of my containers are visible.
That is it for now, I might add more details, as time moves on, but I think this is enough for a start.