If you are just starting up, you can try out 'open-webui' as inspiration.
After that you can just use llama.cpp to build out your own things.
Hardware side, I just have a beefy server that acts as a router (mellanox card to provider fiber optic and local fiber network), firewall, wifi access point, zigbee coordinator, host to various services, camera video feed ingestion and processing, and so on...