Skip to content

Install

The installer is install.sh. It is idempotent: you can run it again after an update to refresh the units, timers and packages.

From a release tarball:

Terminal window
sudo mkdir -p /opt/dtvsol
sudo tar xzf dtvsol-router-<rev>.tar.gz -C /opt/dtvsol

Or from the repository you were given access to:

Terminal window
sudo git clone <repository-url> /opt/dtvsol

Copy the licensed binaries you received into /opt/dtvsol/bin/: dtvsold and the OLT driver dtvsol-olt-<vendor>.

Terminal window
cd /opt/dtvsol
sudo ./install.sh

If the server has no IPv4 address with a default route yet, the installer lists the ports (name, MAC, link) and asks for the interface, the address, the gateway and the DNS servers. You can also give them on the command line:

Terminal window
sudo ./install.sh --iface eno1 --ip XXX.XXX.XXX.10/24 --gw XXX.XXX.XXX.1 --dns XXX.XXX.XXX.53,XXX.XXX.XXX.54

The installer then:

  1. Installs the Ubuntu packages.
  2. Places the files in /opt/dtvsol and puts dtvsol on the PATH.
  3. Turns on IPv4 and IPv6 forwarding and loads the 8021q and ifb kernel modules.
  4. Writes a base DHCP configuration (only if none exists).
  5. Installs the systemd units, the timers, the cron jobs, the fail2ban filter and jail, and Tab completion for dtvsol.
  6. Generates a random API key and prints it once. Keep it: your billing needs it.
  7. Creates the system user dtvsol (a sudo login for operators).
  8. Moves the configuration into the database data/dtvsol.db, stores the router’s own network configuration, and starts the services.
  9. Sets up chrony so the router can serve time to its OLTs.

At the end it prints the next steps.

Set your own password for the dtvsol user:

Terminal window
sudo passwd dtvsol

Add your management networks to fail2ban’s ignoreip, so an operator who mistypes a password is not locked out:

Terminal window
sudo nano /etc/fail2ban/jail.d/dtvsol.conf
sudo systemctl restart fail2ban

Allow your NOC to reach the API (port 8880) and the monitor (port 8881). Only localhost is allowed until you add a network:

Terminal window
dtvsol protect add XXX.XXX.XXX.0/24 "NOC"
dtvsol protect list

Use the router id and the token DTVSOL gave you. Give the token as - to type it instead of leaving it in the shell history:

Terminal window
dtvsol licence enrol <router-id> -
dtvsol licence status

The licence is refreshed by a daily timer. See Troubleshooting if it reports a problem.

The router keeps its own network (ports, bonds, their addresses, the default route and DNS) in the database and writes the netplan file from it. The installer stored what it found. Check it:

Terminal window
dtvsol netcfg show
dtvsol netcfg diff

If the server already had a network configured by hand, read it in once:

Terminal window
dtvsol netcfg import # shows what would be stored, key by key
dtvsol netcfg import --save

See Network changes before you change anything here.

The first user should be an admin. You are asked for the password twice:

Terminal window
dtvsol monitor user add alice admin
dtvsol monitor

dtvsol monitor prints the address to open, for example https://XXX.XXX.XXX.10:8881/. The certificate is self-signed: accept it once in the browser. See the monitor.

If your billing provisions MikroTik routers, set the MK-api login. The installer stores a placeholder password that you must change:

Terminal window
dtvsol mkapi set user billing password '<a-strong-password>'

If you monitor with an NMS over SNMP:

Terminal window
dtvsol snmp set community '<secret>' location "POP 1" contact "noc@example.net"
Terminal window
dtvsol version
dtvsol doctor --no-olt

dtvsol doctor should report no critical findings. Continue with First steps.

Replace the files in /opt/dtvsol with the new release (or git pull), then run the installer again:

Terminal window
cd /opt/dtvsol
sudo ./install.sh

Your configuration in data/ and your logs in log/ are kept.