Design Overview
At a high level, this environment consists of three networks: an outbound internet connection, the internal network hosting the lab server itself, and a docker private network connecting the containers. The outbound router can be a customer-grade device, but in the spirit of DIY, we will be setting it up ourselves.
The hosts in this environment are the lab server itself, and the gateway connecting it and the rest of the home network to the internet. Both will be running Arch Linux as their base OS, using the most recent LTS kernel. The address scheme is:
Internet - unspecified, if that address is required anywhere, it will be 0.0.0.0
Local network - 10.32.0.0/16
Docker virtual network - 10.64.0.0/16
A storage volume will be mounted as /srv/data on the lab server. Docker persistent volumes, in so far as they need to be accessible from the host, will live in /srv/data/docker/<app>/<volume>. Volumes containing data to be remotely accessible (media files, images, other documents) will live in /srv/data/shared.