From a4966cb70bc64f7c865e94e6bbe81740ee27c901 Mon Sep 17 00:00:00 2001 From: WeeXnes Date: Mon, 23 Sep 2024 13:22:49 +0200 Subject: [PATCH] update README.md --- README.md | 27 ++++++++++++++++++++++----- img_1.png | Bin 0 -> 19957 bytes 2 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 img_1.png diff --git a/README.md b/README.md index c74dd14..ea680a3 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,22 @@ -### This Add-on is still in developement and not published yet. To install it: -- connect to your Home Assistant instance via SSH -- create a new folder in /addons, and then clone this repo into that folder. -- open the Add-on Store and Check for Updates, then refresh and the Plugin should appear -- Rest is self explanatory \ No newline at end of file +### FRP for Home Assistant +FRP (Fast Reverse Proxy) allows you to quickly setup Remote Access for your Home Assistant instance, if you already have a public VPS with a public IPv4. This is helpful because many home internet connections nowadays, with things like DS-Lite, no longer have their own public IPv4 address, making port forwarding a nightmare. + +To setup a FRP Server, please refer to the original projects documentation. This Readme is just for setting up the Add-on to an existing FRP server + +### Config +![img_1.png](img_1.png) + +- Server Address + - your FRP Servers Address +- Server Port + - your FRP Servers Port (default is ```7000```) +- Token + - your FRP Servers Token + - Not necessary but recommended to setup a token on ur FRP server +- Local IP + - your Actual local IP address, not just ```localhost``` or ```127.0.0.1``` +- local Port + - your local Home Assistant Lovelace Port (default is ```8123``` +- remote Port + - the port you want Home Assistant to be exposed on on the Remote IP + - leave as default ```8123``` if you have no reason to change it \ No newline at end of file diff --git a/img_1.png b/img_1.png new file mode 100644 index 0000000000000000000000000000000000000000..c16c2bb63926671a4107bf20834da5ead1af4fcf GIT binary patch literal 19957 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