10/100

Building the Perfect Home Network

Max Friedrich

Building the Perfect Home Network

or

Messing around with enterprise stuff at home

or

Build your own intranet


The difference between home and enterprise networks

Enterprise want configurability; Home users want the Internets to work


Why not just scale down enterprise?

We can just get a bunch of used enterprise or small business gear and plug it together and it should work?


BoM


Modem

Sometimes you need one of these, e.g. if you are using vDSL.


Router

Pick one:


Switch

Get something that is as fast as at least 2.5 Gbit if not more. Make sure it is manged so you can do bridging ect.


Access Points

Pick one:


Servers

You will want something chonky (maybe call it big-chonk cos that’s what LUHack does) to be able to have fun.


Moving on…

Networks are more than packet management kit.

So, lets do talk about what you could do with this network.


What you may want to do on your “perfect”* network


Virtualisation

Proxmox is great for quickly spinning up VMs in a way that is not too painful, but it is limited in it’s capabilaties.


Docker


Dockerfile

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Step 1: Build the Node.js app
FROM node:18 as build

# Set the working directory inside the container
WORKDIR /app

# Copy package.json and package-lock.json first to leverage Docker cache
COPY ./web-tts/package*.json .

# Install app dependencies
RUN npm install

COPY ./web-tts/. .

# Build the Node.js app
RUN npm run build-only

# Step 2: Create the Nginx server
FROM nginx:alpine

# Copy the built Node.js app from the previous stage
COPY --from=build /app/dist /usr/share/nginx/html

# Expose the port for Nginx
EXPOSE 80
EXPOSE 443

# Start Nginx
CMD ["nginx", "-g", "daemon off;"]

Docker Compose

Orchastration for docker.

Commands (run from same folder as docker compose file.)

Run docker compose attached:

docker-compose up

Run docker compose detached;

docker-compose up -d

Stop docker compose:

docker-compose down


docker-compose.yml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
version: '3'
services:
  mimic:
    restart: always
    image: mycroftai/mimic3
    volumes:
      - "./mimc3:/home/mimic3/.local/share/mycroft/mimic3"
  web-tts:
    build:
      context: .
      dockerfile: ./web-tts.Dockerfile
    container_name: web-tts
    ports:
      - "8000:80"
      - "4443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - ./certs:/etc/nginx/ssl