diff --git a/README.md b/README.md index 9d8cb7d..a66cb83 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ General purpose request (reverse) proxy and forwarding tool for networking noobs - SMTP config for password reset ## Downloads + [Windows](https://github.com/tobychui/zoraxy/releases/latest/download/zoraxy_windows_amd64.exe) /[Linux (amd64)](https://github.com/tobychui/zoraxy/releases/latest/download/zoraxy_linux_amd64) /[Linux (arm64)](https://github.com/tobychui/zoraxy/releases/latest/download/zoraxy_linux_arm64) @@ -41,6 +42,7 @@ General purpose request (reverse) proxy and forwarding tool for networking noobs For other systems or architectures, please see [Release](https://github.com/tobychui/zoraxy/releases/latest/) ## Build from Source + Requires Go 1.22 or higher ```bash @@ -79,21 +81,23 @@ The installation method is same as Linux. If you are using a Raspberry Pi 4 or n The installation method is same as Linux. For other ARM SBCs, please refer to your SBC's CPU architecture and pick the one that is suitable for your device. #### Docker + See the [/docker](https://github.com/tobychui/zoraxy/tree/main/docker) folder for more details. ### Start Paramters + ``` Usage of zoraxy: -autorenew int ACME auto TLS/SSL certificate renew check interval (seconds) (default 86400) -fastgeoip Enable high speed geoip lookup, require 1GB extra memory (Not recommend for low end devices) - -info - Show information about this program in JSON -log Log terminal output to file (default true) -mdns Enable mDNS scanner and transponder (default true) + -mdnsname string + mDNS name, leave empty to use default (zoraxy_{node-uuid}.local) -noauth Disable authentication for management interface -port string @@ -153,12 +157,13 @@ This allows you to have an infinite number of network members in your Global Are ## Web SSH Web SSH currently only supports Linux based OSes. The following platforms are supported: + - linux/amd64 - linux/arm64 - linux/armv6 (experimental) - linux/386 (experimental) -### Loopback Connection +### Loopback Connection Loopback web SSH connection, by default, is disabled. This means that if you are trying to connect to an address like 127.0.0.1 or localhost, the system will reject your connection for security reasons. To enable loopback for testing or development purpose, use the following flags to override the loopback checking: @@ -167,12 +172,14 @@ Loopback web SSH connection, by default, is disabled. This means that if you are ``` ## Sponsor This Project + If you like the project and want to support us, please consider a donation. You can use the links below + - [tobychui (Primary author)](https://paypal.me/tobychui) - PassiveLemon (Docker compatibility maintainer) - ## License -This project is open-sourced under AGPL. I open-sourced this project so everyone can check for security issues and benefit all users. **If you plan to use this project in a commercial environment (which violate the AGPL terms), please contact toby@imuslab.com for an alternative license.** +This project is open-sourced under AGPL. I open-sourced this project so everyone can check for security issues and benefit all users. **This software is intended to be free of charge. If you have acquired this software from a third-party seller, the authors of this repository bears no responsibility for any technical difficulties assistance or support.** + diff --git a/src/mod/acme/acmedns/providers.json b/src/mod/acme/acmedns/providers.json index 87819ab..c7e4941 100644 --- a/src/mod/acme/acmedns/providers.json +++ b/src/mod/acme/acmedns/providers.json @@ -32,10 +32,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPTimeout", "Datatype": "time.Duration" @@ -63,10 +59,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -90,10 +82,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -124,10 +112,6 @@ { "Title": "PollingInterval", "Datatype": "time.Duration" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -152,10 +136,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -219,10 +199,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -298,10 +274,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -368,10 +340,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -399,10 +367,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -425,10 +389,6 @@ { "Title": "PollingInterval", "Datatype": "time.Duration" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -445,10 +405,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -483,10 +439,6 @@ { "Title": "PollingInterval", "Datatype": "time.Duration" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -507,10 +459,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -546,10 +494,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -589,10 +533,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -631,10 +571,6 @@ { "Title": "HTTPClient", "Datatype": "*http.Client" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -659,10 +595,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -690,10 +622,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -729,10 +657,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -760,10 +684,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -799,10 +719,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -826,10 +742,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -849,10 +761,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -917,10 +825,6 @@ { "Title": "PollingInterval", "Datatype": "time.Duration" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -956,10 +860,6 @@ { "Title": "PollingInterval", "Datatype": "time.Duration" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -972,10 +872,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -1126,10 +1022,6 @@ { "Title": "PollingInterval", "Datatype": "time.Duration" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -1150,10 +1042,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -1177,10 +1065,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -1259,10 +1143,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -1325,10 +1205,6 @@ "Title": "SequenceInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -1356,10 +1232,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -1397,10 +1269,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -1428,10 +1296,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -1459,10 +1323,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -1509,10 +1369,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -1540,10 +1396,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -1567,10 +1419,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -1598,10 +1446,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -1625,10 +1469,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -1668,10 +1508,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPTimeout", "Datatype": "time.Duration" @@ -1702,10 +1538,6 @@ { "Title": "PollingInterval", "Datatype": "time.Duration" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -1733,10 +1565,6 @@ { "Title": "PollingInterval", "Datatype": "time.Duration" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -1784,10 +1612,6 @@ { "Title": "PollingInterval", "Datatype": "time.Duration" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -1812,10 +1636,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -1843,10 +1663,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -1881,10 +1697,6 @@ { "Title": "PollingInterval", "Datatype": "time.Duration" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -1905,10 +1717,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -1963,10 +1771,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -2010,10 +1814,6 @@ "Title": "SequenceInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -2029,10 +1829,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -2087,10 +1883,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPTimeout", "Datatype": "time.Duration" @@ -2118,10 +1910,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PollingInterval", "Datatype": "time.Duration" @@ -2161,10 +1949,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -2192,10 +1976,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -2249,10 +2029,6 @@ { "Title": "PollingInterval", "Datatype": "time.Duration" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -2334,10 +2110,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -2368,10 +2140,6 @@ { "Title": "PollingInterval", "Datatype": "time.Duration" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -2388,10 +2156,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -2427,10 +2191,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -2462,10 +2222,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -2509,10 +2265,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -2544,10 +2296,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -2571,10 +2319,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -2598,10 +2342,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -2625,10 +2365,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -2672,10 +2408,6 @@ "Title": "SequenceInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -2706,10 +2438,6 @@ { "Title": "ID", "Datatype": "int64" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -2742,10 +2470,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -2777,10 +2501,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -2808,10 +2528,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -2843,10 +2559,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -2870,10 +2582,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -2909,10 +2617,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -2948,10 +2652,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "SequenceInterval", "Datatype": "time.Duration" @@ -2979,10 +2679,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -3030,10 +2726,6 @@ "Title": "WaitForRecordSetsChanged", "Datatype": "bool" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -3057,10 +2749,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -3096,10 +2784,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -3130,10 +2814,6 @@ { "Title": "PollingInterval", "Datatype": "time.Duration" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -3158,10 +2838,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -3189,10 +2865,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -3234,10 +2906,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -3272,10 +2940,6 @@ { "Title": "SequenceInterval", "Datatype": "time.Duration" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -3296,10 +2960,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -3339,10 +2999,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPTimeout", "Datatype": "time.Duration" @@ -3411,10 +3067,6 @@ "Title": "SequenceInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -3445,10 +3097,6 @@ { "Title": "PollingInterval", "Datatype": "time.Duration" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -3465,10 +3113,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -3500,10 +3144,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -3539,10 +3179,6 @@ } ], "HiddenFields": [ - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "PropagationTimeout", "Datatype": "time.Duration" @@ -3589,10 +3225,6 @@ { "Title": "PollingInterval", "Datatype": "time.Duration" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -3617,10 +3249,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -3644,10 +3272,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -3706,10 +3330,6 @@ "Title": "SequenceInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -3737,10 +3357,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -3764,10 +3380,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -3795,10 +3407,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" @@ -3825,10 +3433,6 @@ { "Title": "PollingInterval", "Datatype": "time.Duration" - }, - { - "Title": "TTL", - "Datatype": "int" } ] }, @@ -3880,10 +3484,6 @@ "Title": "PollingInterval", "Datatype": "time.Duration" }, - { - "Title": "TTL", - "Datatype": "int" - }, { "Title": "HTTPClient", "Datatype": "*http.Client" diff --git a/src/start.sh b/src/start.sh new file mode 100644 index 0000000..5d96635 --- /dev/null +++ b/src/start.sh @@ -0,0 +1,2 @@ +#/bin/bash +sudo ./zoraxy \ No newline at end of file