Warp docs in a mkdocs website

This commit is contained in:
clerie 2023-09-15 18:00:18 +02:00
parent cc43776e6d
commit da0df6bab4
10 changed files with 174 additions and 37 deletions

11
docs/configure.md Normal file
View File

@ -0,0 +1,11 @@
# Configure FieldPOC
```
services.fieldpoc = {
enable = true;
ommIp = "10.42.132.2";
ommUser = "omm";
ommPasswordPath = pkgs.writeText "ommpassword" "rfpL43wlan";
sipsecretPath = pkgs.writeText "sipsecret" "c1e0aba8e0fc3ed3";
};
```

18
docs/hardware.md Normal file
View File

@ -0,0 +1,18 @@
# Required hardware
These are the hardware requirements for a minimal working system.
## DECT Antenna
FieldPOC is automation around the management API of Mitel DECT systems.
So you need to have a [Mitel RFP 3rd gen](https://howto.dect.network/#hardware-rfp-generations).
Our development setup currently uses an RFP 43 WLAN.
## Powering the Antenna
The RFP gets powered using PoE, so make sure you have a **PoE Injector**
## Telephony Server
The telephony server should be a x84 64bit computer with two Gigabit Ethernet RJ45 ports.
In out case we use an APU Board, but it doesn't really matter.

3
docs/index.md Normal file
View File

@ -0,0 +1,3 @@
# FieldPOC
A simple to use, good enough phone system for medium sized DECT networks.

16
docs/installation.md Normal file
View File

@ -0,0 +1,16 @@
# Installation overview
FieldPOC requires a bunch of components to work together.
We guide you through the setup of a minimal working system.
Follow it in order and you will end up with a working setup.
1. Required hardware
2. Install NixOS
3. Install FieldPOC
4. Configure networking
5. Configure FieldPOC
6. Prepare RFP
7. Setup OMM
8. Have DECT
There are plenty of options to extend the system and we try to document them in the following sections.

55
docs/network.md Normal file
View File

@ -0,0 +1,55 @@
# Configure networking
The hardware should have two network interfaces, so we can use one interface to connect the telephony server to the internet and access for management.
The other network interface is used to connect to the DECT antenna.
## Management and internet interface
You can configure the interface for management and internet access how you like it.
Usually leaving it with doing DHCP is totally find.
## Interface for DECT antenna
The telephony server is acting as a router for the DECT antenna.
The network interface used in this example is called `enp3s0`.
Replace it with the name of your own interface.
Assign a static IP address to the interface:
```
networking.interfaces.enp3s0.ipv4.addresses = [ { address = "10.42.132.1"; prefixLength = 24; } ];
```
Phoning over the internet involves weird protocols.
Because configuring firewalls for that use-case is hard, we disable the NixOS firewall on that interface.
We can do that safely, as only the DECT antenna is connected to it and we have to trust it anyway.
```
networking.firewall.trustedInterfaces = [ "enp3s0" ];
```
### Configure DHCP server
FieldPOC ships with some configuration wrapper that helps setting up the DHCP server required for the DECT antennas.
```
services.fieldpoc = {
dhcp = {
enable = true;
interface = "enp3s0";
subnet = "10.42.132.0/24";
pool = "10.42.132.200 - 10.42.132.250";
router = "10.42.132.1";
dnsServers = "10.42.10.8";
omm = "10.42.132.2";
reservations = [
{
name = "omm";
macAddress = "00:30:42:1b:8c:7c";
ipAddress = "10.42.132.2";
}
];
};
};
```

View File

@ -1,8 +1,14 @@
# NixOS deployment
# Install NixOS
## Add flake
To coordinate all the different components, FieldPOC is packaged with NixOS.
Follow [the official installation guide](https://nixos.org/manual/nixos/stable/#ch-installation) to install NixOS on you telephony server.
You can use the minimal installer, as we don't need graphical user interface.
Add input:
## Add FieldPOC packages
FieldPOC is provided as a Flake.
Add the following inputs to your `flake.nix`:
```
inputs.fieldpoc.url = "git+https://git.clerie.de/clerie/fieldpoc.git";
@ -17,35 +23,3 @@ Add input modules to your system:
fieldpoc.nixosModules.default
```
## Use module
```
networking.interfaces.enp3s0.ipv4.addresses = [ { address = "10.42.132.1"; prefixLength = 24; } ];
networking.firewall.trustedInterfaces = [ "enp3s0" ];
services.fieldpoc = {
enable = true;
ommIp = "10.42.132.2";
ommUser = "omm";
ommPasswordPath = pkgs.writeText "ommpassword" "rfpL43wlan";
sipsecretPath = pkgs.writeText "sipsecret" "c1e0aba8e0fc3ed3";
dhcp = {
enable = true;
interface = "enp3s0";
subnet = "10.42.132.0/24";
pool = "10.42.132.200 - 10.42.132.250";
router = "10.42.132.1";
dnsServers = "10.42.10.8";
omm = "10.42.132.2";
reservations = [
{
name = "omm";
macAddress = "00:30:42:1b:8c:7c";
ipAddress = "10.42.132.2";
}
];
};
};
```

View File

@ -1,4 +1,18 @@
# OMM
# Setup OMM
OMM stands for Open Mobility Manager.
It is there to manage multiple RFPs.
## Designate OMM
The OMM is a pice of software that can be hosted stand-alone or you can designate a RFP to be the OMM.
In setups operating FieldPOC it is usually totally fine and recommended to just designate a RFP to be the OMM.
RFPs automatically host the OMM when they receive their own IP address in the OMM field via DHCP.
## Management interface
The OMM exposes a web interface at their IP address.
## Setup
@ -7,7 +21,7 @@
- Set password for login `omm`
- Set password for login `root`
### PARK
### Activate license
1. Go to `System` -> `System Settings` and find row `PARK`.
2. Load PARK file as explained in [howto.dect.network](https://howto.dect.network/#system-settings).

11
docs/rfp.md Normal file
View File

@ -0,0 +1,11 @@
# Prepare RFP
Before adding an RFP to your FieldPOC setup do a [software update](https://howto.dect.network/#software-update) and [factory reset them](https://howto.dect.network/#factory-reset).
## Connecting RFP
Connect the RFP with the PoE injector and then with the network interface of your telephony server that carries the network for the DECT antennas.
RFPs will take a while to boot.
First only one LED will glow.
After a while more will add.

View File

@ -103,6 +103,26 @@
yate = pkgs.yate.overrideAttrs (old: {
configureFlags = [ "--with-libpq=${pkgs.postgresql.withPackages (ps: [ ])}" ];
});
docs = pkgs.stdenv.mkDerivation {
pname = "fieldpoc-docs";
version = "0.0.1";
src = ./.;
buildInputs = [
pkgs.python3.pkgs.mkdocs-material
];
buildPhase = ''
python3 -m mkdocs build
'';
installPhase = ''
mkdir -p $out
cp -r ./site/* $out/
'';
};
};
nixosModules = {

15
mkdocs.yml Normal file
View File

@ -0,0 +1,15 @@
site_name: FieldPOC
theme:
name: material
nav:
- index.md
- Installation:
- installation.md
- hardware.md
- nixos.md
- network.md
- configure.md
- rfp.md
- omm.md