Hahatay is a non-profit asociation for community development, aimed at providing effective responses to forced migrations in Africa that deprive its youth of hope. The organization's objective is to empower and involve young people to become true protagonists in improving their lives, and to be a meeting space that connects individuals committed to integral human development.
This repository aims to showcase the implementation details of the network topology. The goal is to show how we deployed the network, which hardware and software technology stack we used and how we manage the network in order to be open and transparent about the work done and inspire more people from the community networks community to embrace self-hosted projects and target other rural areas around the world.
Documentation is focused on 3 main areas: backhaul network architecture, low cost Mesh Networks deployment and micro-services deployment.
This is a non-profit project and it's driven mainly by students or volunteers that dedicate their free time on collaborate into tasks of the project.
The project is mainly funded by the CCD at the UPC (Universitat Politècnica de Catalunya)
TODO Collaborating corporate entities donated servers for these services, including Labdoo and Typeform.
The backhaul network interconnects geographically distributed areas using radio links (Ubiquiti airMAX antennas). At the edge, there is a small datacenter with three edge servers: one dedicated to network management functionalities and two others dedicated to perform multimedia tasks.
The aforementioned geographically distributed areas have a surface that is big enough, so several access points are needed. In order to have proper WiFi access networks, we have built mesh networks using low-end routers.
All documentation and code around Mesh Network deployment can be found here.
All of the routers and access points run OpenWrt. OpenWRT is an open source operating system for routers that provides an standarised way to deploy and manage networks, with a user-friendly graphical interface called LuCi. Some relevant documentation on:
-
Install OpenWRT:
Services are deployed using microservices that run on containers. The container engine used is docker, and all the services are standalone and self-contained in docker-compose files. All documentation and code around microservices deployment can be found here.
The list of services that run in the network is constantly evolving, but here are some of the services that are currently running:
-
Nextcloud: a cloud solution similar to Google Cloud, for uploading and sharing documents.
-
Zabbix for monitoring of the network.
-
Nextcloud Talk: a Nextcloud solution to chat with your peers and make voice and video calls.
-
Small NAS running in a raspberry pi with penMediaVault: combined with backups in different buildings for disaster recovery.
-
Traefik: reverse proxy for deploying multiple services in the same host. Also is useful to get SSL certificates within all services running in the network.
-
Portainer: for container management.
-
PiHole: our Intranet DNS. Check also the extra steps for having a redundant instance.