2024-06-26 21:31:44 -06:00
|
|
|
# freematics-traccar-encrypted
|
|
|
|
|
2024-06-27 17:16:47 -06:00
|
|
|
_A proxy to encrypt the Traccar Freematics protocol._
|
|
|
|
|
2024-06-30 19:31:13 -06:00
|
|
|
This is an implementation of the ChaCha20-Poly1305 algorithm into
|
|
|
|
the [Freematics vehicle tracker](https://freematics.com/products/freematics-one-plus-model-b/) for the Traccar server.
|
|
|
|
|
|
|
|
It consists of 2 parts:
|
|
|
|
|
|
|
|
1. A simple server written in Go that handles encryption and proxies messages to Traccar.
|
|
|
|
2. Modified firmware for the Freematics device that implements encryption.
|
|
|
|
|
|
|
|
The server is protocol-independant and only manages encryption, meaning it can serve other protocols besides Freematics.
|
|
|
|
It can also listen on multiple ports for multiple destinations.
|
|
|
|
|
|
|
|
### Install
|
|
|
|
|
|
|
|
#### Client
|
|
|
|
|
|
|
|
1. Run `server/generate-key.sh` script to generate your encryption key.
|
|
|
|
2. Open the modified firmware in Visual Studio Code with the PlatformIO extension.
|
|
|
|
3. Enter your encryption key under `CHACHA20_KEY` in `config.h`.
|
|
|
|
4. Upload the firmware to the device.
|
|
|
|
|
|
|
|
#### Server
|
|
|
|
|
|
|
|
1. Download the latest binary from [releases](https://git.evulid.cc/cyberes/freematics-traccar-encrypted/releases) or
|
|
|
|
build it yourself using `./build.sh`.
|
|
|
|
2. Copy `config.sample.yml` to `config.yml`
|
|
|
|
3. Enter your encryption key in `config.yml` under `chacha_key`.
|
|
|
|
4. Fill our your forwarding destinations under `destinations`.
|
|
|
|
5. Start the server with `./freematics-encrypt --config config.yml`
|
|
|
|
|
|
|
|
A sample systemd service file is provided.
|