ardumower-relay

module
v1.0.2-rc.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 16, 2022 License: MIT

README

ArduMower Sunray Relay Server

The ArduMower Relay Server exposes an ArduMower Modem or vanilla Sunray esp32_ble Sketch on the Internet. It acts as a bridge between the ArduMower Sunray App and your ArduMower, so you can

  • reach your ArduMower from the Internet without port forwarding
  • connect securely with TLS
  • forget the ArduMower WiFi IP address
  • keep all your browser settings on secure defaults

You can either run your own server with or without authentication, or you can apply for credentials to use an already existing server (*).

(*) currently there are no public servers available

Running your own Relay Server

HTTP vs HTTPS

When you run the Relay Server without any arguments it will listen on port 8080 in single user mode, without any authentication or authorization.

To fulfill all the claims above you need to expose the Relay Server to the Internet at a publicly trusted HTTPS address.

You can run the Relay Server behind a reverse proxy like Caddy server which takes care of Lets' Encrypt certificates.

Authentication
No Authentication

By default, the server runs without authentication. This allows only a single ArduMower per server.

Static credentials

Store username and password combinations in a text file. Only those credentials will allow access to the server. The example credentials file is used in the exanple configuration file.

Free For All

The server allows any credentials. As long as you use the same credentials in the ArduMower Modem and in the Sunray App, you can control your ArduMower. Add this to your config.yml to enable Free For All:

auth:
  enabled: false
  free_for_all: true
Using the binary

Executable binaries of the Relay Server are available for download on the GitHub release page.

Using Docker

The executable binaries from the GitHub release page are also available as Docker image. The exact Docker repository is listed in the release notes.

There is no latest tag, and there are no other non-immutable tags either. You currently need to specify the exact version. I'm planning on publishing non-immutable tags for major and minor semantic version aliases.

Running from source

To test, build, and run the Relay Server you need Go 1.17 or later.

License

Copyright (c) 2021 Tim Otto

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Directories

Path Synopsis
cmd
internal
app_endpoint/fake
Code generated by counterfeiter.
Code generated by counterfeiter.
model/fake
Code generated by counterfeiter.
Code generated by counterfeiter.
mower_endpoint/fake
Code generated by counterfeiter.
Code generated by counterfeiter.
status_endpoint/fake
Code generated by counterfeiter.
Code generated by counterfeiter.
test

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL