Install adam:ONE® on VyOS®

Supported Versions

  • VyOS v1.3.3+
  • VyOS v1.4+

Preparation

You will want the following information to complete this guide.

  • Interface IP addresses that you want the DNS service to run on. For basic networks this would be the IP address of the router on your LAN interface.
  • LAN interfaces. This might just be eth1 for a single LAN port. For VLANs it might also include something like eth1.20 for VLAN 20 on eth1. To see a full list of interfaces and IP addresses on your router, use the following command in operational mode.
    show interfaces
    
  • LAN subnets. For example it might just be a single network of 192.168.1.0/24 or multiple such as 10.0.0.0/24,10.10.10.0/24. Include any IPv6 separately such as 2001:db8:1:2::/64.

Compatibility

The conntrack modules must be disabled. As stated in the VyOS docs “Conntrack helper modules are enabled by default, but they tend to cause more problems than they’re worth in complex networks”
To disable the modules go into configure mode and delete the config as follows.

configure
delete system conntrack modules
commit
save
exit

Install adam:ONE

Replace the environment values appropriate to your network as talked about above under Preparation. Install adam:ONE on VyOS v1.3.3+ as follows:

add container image cr.adamnet.io/adamone:latest
configure
set container name adamone image cr.adamnet.io/adamone:latest
set container name adamone environment LISTEN_ADDRESSES value '192.168.1.1,2001:db8:1:2::1'
set container name adamone environment LAN_INTERFACES value 'eth1'
set container name adamone environment LAN_IP4_SUBNETS value '192.168.1.0/24'
set container name adamone environment LAN_IP6_SUBNETS value '2001:db8:1:2::/64'
set container name adamone allow-host-networks
set container name adamone port dns-udp protocol udp
set container name adamone port dns-udp destination 53
set container name adamone port dns-udp source 53
set container name adamone port dns-tcp protocol tcp
set container name adamone port dns-tcp destination 53
set container name adamone port dns-tcp source 53
set container name adamone port http protocol tcp
set container name adamone port http destination 80
set container name adamone port http source 80
set container name adamone port https protocol tcp
set container name adamone port https destination 443
set container name adamone port https source 443
set container name adamone volume config destination /opt
set container name adamone volume config source /config
set container name adamone cap-add net-admin
set container name adamone cap-add net-bind-service
set container name adamone cap-add net-raw
set container name adamone cap-add sys-admin
set container name adamone memory 0
commit
save
exit

Install adam:ONE on VyOS 1.4+ as follows:

add container image cr.adamnet.io/adamone:latest
configure
set container name adamone image cr.adamnet.io/adamone:latest
set container name adamone environment LISTEN_ADDRESSES value '192.168.1.1,2001:db8:1:2::1'
set container name adamone environment LAN_INTERFACES value 'eth1'
set container name adamone environment LAN_IP4_SUBNETS value '192.168.1.0/24'
set container name adamone environment LAN_IP6_SUBNETS value '2001:db8:1:2::/64'
set container name adamone allow-host-networks
set container name adamone port dns-udp protocol udp
set container name adamone port dns-udp destination 53
set container name adamone port dns-udp source 53
set container name adamone port dns-tcp protocol tcp
set container name adamone port dns-tcp destination 53
set container name adamone port dns-tcp source 53
set container name adamone port http protocol tcp
set container name adamone port http destination 80
set container name adamone port http source 80
set container name adamone port https protocol tcp
set container name adamone port https destination 443
set container name adamone port https source 443
set container name adamone volume config destination /opt
set container name adamone volume config source /config
set container name adamone capability net-admin
set container name adamone capability net-bind-service
set container name adamone capability net-raw
set container name adamone capability sys-admin
set container name adamone memory 0
commit
save
exit

Set up your Box ID

On initial run a Box ID will be automatically generated for you.
Run the following command to show the Box ID of your installation which you can then add to
your Dashboard at https://dashboard.adamnet.works

sudo podman exec adamone config boxid

Once your router shows online in the Dashboard, you should be online with adam:ONE!

How to Upgrade adam:ONE

Automated Upgrades

Run these commands to install an upgrade script and set to run on a schedule.
Set the values of MM, HH and DOW to your desired hour, minute and day of week.

bash -c 'cat > /config/scripts/adamone.script' << "EOF"
#!/bin/vbash
source /opt/vyatta/etc/functions/script-template

run update container image adamone
run restart container adamone
EOF
chmod +x /config/scripts/adamone.script
configure
set system task-scheduler task adamone executable path '/config/scripts/adamone.script'
set system task-scheduler task adamone crontab-spec 'MM HH * * DOW'
commit
save

Manual Upgrades

update container image adamone
restart container adamone

Switching to Rapid Release

add container image cr.adamnet.io/adamone:devel
configure
set container name adamone image cr.adamnet.io/adamone:devel
commit
save
exit

Optional Configuration

To use the following options, set them as environment values for the container.

BACKUP_SCHEDULE_DAY and BACKUP_SCHEDULE_HOUR

Set both of these options to enable automatic router config backups. Each week on the day of week specified, your router config wil be uploaded to the ADAMnetworks cloud, encrypted with AES256-GCM, and available in the Backups tab on the Dashboard.

DAY should be a day of week between 0-6 (Sunday to Saturday)

HOUR should 0-23 (24-hour time)

For example if setting to Sunday at 2am, use:

set container name adamone environment BACKUP_SCHEDULE_DAY value '0'
set container name adamone environment BACKUP_SCHEDULE_HOUR value '2'

LOG_LEVEL

Set to a value between 0 for no logs, and 6 for debug logs.
Default value is 4

LOG_FILE

Set to a path to save log files instead of going to standard output. If you modify this setting you will no longer be able to use the monitor command to view the log.

Show adam:ONE Service Logs

For normal usage, use http://adamone.tools to access the MyTools Log.
For troubleshooting issues you can also view the service logs as follows.

# Show log history
show container log adamone

# Stream log
monitor log container adamone