OpenWRT package feed meta data for macchina.io REMOTE Device Agent (WebTunnelAgent) and Gateway.
macchina.io REMOTE provides secure remote access to connected devices via HTTP or other TCP-based protocols and applications such as secure shell (SSH) or Virtual Network Computing (VNC). With macchina.io REMOTE, any network-connected device running the macchina.io REMOTE Device Agent or this Gateway program can be securely accessed remotely over the internet from browsers, mobile apps, desktop, server or cloud applications.
This even works if the device is behind a NAT router, firewall or proxy server. The device becomes just another host on the internet, addressable via its own URL and protected by the macchina.io REMOTE server against unauthorized or malicious access. macchina.io REMOTE is a great solution for secure remote support and maintenance, as well as for providing secure remote access to devices for end-users via web or mobile apps.
This repository contains package sources for building OpenWRT packages
for the macchina.io REMOTE device agent (rmagent
) and gateway (rmgateway
).
The recommended way for building the packages is by using the OpenWRT SDK docker images. It's of course also possible to build using a standard OpenWRT SDK installed on a Linux host. Except for launching the Docker image, the actual build steps are the same.
To launch an OpenWRT SDK build environment in a Docker container, use one of the
official OpenWRT SDK Docker images, suitable for your target device.
In the example below we're building for a generic AR71xx device for OpenWRT 19.07.8
(ar71xx-generic-19.07.8
). To find out the OpenWRT version and architecture of your device,
please refer to the OpenWRT Table of Hardware.
In this example, we'll build the packages for a GL-AR300M
which is based on a QCA9531 chipset which requires an ath79
(mips_24kc
) target, and
runs OpenWRT release 19.07.8.
Therefore, we'll need the OpenWRT SDK docker image tagged ath79-nand-19.07.8
.
$ docker run --rm -v "$(pwd)"/openwrt/bin:/home/build/openwrt/bin -it openwrtorg/sdk:ar71xx-generic-19.07.8
This repository can be used as a package feed, so the steps to build the packages are as follows:
- Add this repository to the OpenWRT
feeds.conf.default
orfeeds.conf
file.
$ echo 'src-git macchina_remote https://github.com/my-devices/meta-agent-openwrt.git' >>feeds.conf.default
- Update the feeds
$ ./scripts/feeds update base
$ ./scripts/feeds update macchina_remote
- Install the feeds
$ ./scripts/feeds install -a
- Configure the SDK (default)
$ make defconfig
- Compile the packages
Note: Use either the rmagent
or rmgateway
package on a single device.
While installing both at the same time is possible, it's not recommended
(and also not very useful) to do so.
$ make package/rmagent/compile
$ make package/rmgateway/compile
The final packages will be stored in the bin
directory. From there they can
be transferred to a device, or added to a package repository.
If you have used a Docker container to build the packages (using the command shown
above to launch the container), the packages will also be available on the
host system, in the openwrt/bin
directory.
The packages can either be integrated into a custom firmware image, put on a custom package repository, or uploaded to the device via the OpenWRT Luci web interface (System > Software > Upload Package...).
Both the Device Agent and the Gateway can be configured with a configuration file
on the target system. For the Device Agent, the configuration file is placed
in /etc/rmagent.properties
. For the Gateway, the configuration file can be
found at /etc/rmgateway/rmgateway.properties
.
For the Device Agent, at least the Domain UUID must be changed to a valid UUID, in order to allow the agent to successfully connect to the server.
If you build your own packages, you can also modify the default configuration files
WebTunnelAgent.properties
and rmagent.properties
included in the files
sub-directories.
Please refer to the WebTunnelAgent and Gateway documentation for more information regarding the available settings in the configuration files.