Let's start with where credit is due. This project combines several open source projects to create a powerful router.
Project Name | Project Website | Project Git Repo | Project Function |
---|---|---|---|
Pi-hole | https://pi-hole.net | https://github.com/pi-hole/pi-hole | DNS + DHCP + Adblocker |
Firehol | http://firehol.org | https://github.com/firehol/firehol | Firewall |
Salt | https://saltstack.com | https://github.com/saltstack/salt | Configuration Management |
This is a one-stop shop for all necessary configuration settings.
NOTE: To see where configuration files live on the operating system, see Filesystem Architecture.
This is an example kickstart configuration file. The router
user account
will be created with the password this_is_only_an_example_password_please_change_me
. The password can be changed on line 25.
If you generate your own kickstart file, copy lines 49-67
to ensure the Erratum repository files are placed in their appropriate directories. This will also install the Salt Master and Salt Minion which are required to deploy the codebase.
Add SSH public keys to this file to grant SSH access into the server. Each key should be separated by a newline.
This will take an existing ks.cfg
and create a
CentOS 7 ISO capable of unattended install. The newly generated ISO named will be placed
in the repository directory. This script is tested on Mac & Linux and requires sudo privileges.
Linux Dependencies | Mac Dependencies (installed via homebrew) |
---|---|
wget | wget |
rsync | rsync |
xorriso | xorriso |
sed | gnu-sed |
On the newly installed system, run salt-call state.apply router
and the router will build itself based on the specified
configurations. Upon successful completion, the following URLs will be available:
URL | Description |
---|---|
http://IP-ADDRESS/admin/ | Pi-hole dashboard |
http://IP-ADDRESS:19999 | Netdata dashboard |