add doc; fix dockerfile

This commit is contained in:
Vladislav Yarmak
2021-06-25 21:07:29 +03:00
parent f3d2b06f48
commit 07faf6dfea
3 changed files with 84 additions and 30 deletions

View File

@@ -7,13 +7,15 @@ COPY . .
RUN CGO_ENABLED=0 go build -a -tags netgo -ldflags '-s -w -extldflags "-static" -X main.version='"$GIT_DESC"
ADD https://curl.haxx.se/ca/cacert.pem /certs.crt
RUN chmod 0644 /certs.crt
RUN mkdir /state
FROM scratch AS arrange
COPY --from=build /go/src/github.com/Snawoot/windscribe-proxy/windscribe-proxy /
COPY --from=build /certs.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=build --chown=9999:9999 /state /
FROM scratch
COPY --from=arrange / /
USER 9999:9999
EXPOSE 18080/tcp
ENTRYPOINT ["/windscribe-proxy", "-bind-address", "0.0.0.0:28080"]
ENTRYPOINT ["/windscribe-proxy", "-state-file", "/state/wndstate.json", "-bind-address", "0.0.0.0:28080"]

View File

@@ -1,3 +1,82 @@
# windscribe-proxy
windscribe-proxy
================
Work in progress...
Standalone Windscribe proxy client. Younger brother of [opera-proxy](https://github.com/Snawoot/opera-proxy/).
Just run it and it'll start a plain HTTP proxy server forwarding traffic through Windscribe proxies of your choice.
By default the application listens on 127.0.0.1:28080.
## Features
* Cross-platform (Windows/Mac OS/Linux/Android (via shell)/\*BSD)
* Uses TLS for secure communication with upstream proxies
* Zero configuration
* Simple and straightforward
## Installation
#### Binaries
Pre-built binaries are available [here](https://github.com/Snawoot/windscribe-proxy/releases/latest).
#### Build from source
Alternatively, you may install windscribe-proxy from source. Run the following within the source directory:
```
make install
```
#### Docker
A docker image is available as well. Here is an example of running windscribe-proxy as a background service:
```sh
docker run -d \
--security-opt no-new-privileges \
-p 127.0.0.1:28080:28080 \
--restart unless-stopped \
--name windscribe-proxy \
yarmak/windscribe-proxy
```
## Usage
List available locations:
```
windscribe-proxy -list-locations
```
Run proxy via location of your choice:
```
windscribe-proxy -location Germany/Frankfurt
```
Also it is possible to export proxy addresses and credentials:
```
windscribe-proxy -list-proxies
```
## List of arguments
| Argument | Type | Description |
| -------- | ---- | ----------- |
| auth-secret | String | client auth secret (default `952b4412f002315aa50751032fcaab03`) |
| bind-address | String | HTTP proxy listen address (default `127.0.0.1:28080`) |
| cafile | String | use custom CA certificate bundle file |
| list-locations | - | list available locations and exit |
| list-proxies | - | output proxy list and exit |
| location | String | desired proxy location. Default: best location |
| proxy | String | sets base proxy to use for all dial-outs. Format: `<http\|https\|socks5\|socks5h>://[login:password@]host[:port]` Examples: `http://user:password@192.168.1.1:3128`, `socks5://10.0.0.1:1080` |
| resolver | String | Use DNS/DoH/DoT/DoQ resolver for all dial-outs. See https://github.com/ameshkov/dnslookup/ for upstream DNS URL format. Examples: `https://1.1.1.1/dns-query`, `quic://dns.adguard.com` |
| state-file | String | file name used to persist Windscribe API client state. Default: `wndstate.json` |
| timeout | Duration | timeout for network operations. Default: `10s` |
| verbosity | Number | logging verbosity (10 - debug, 20 - info, 30 - warning, 40 - error, 50 - critical). Default: `20` |
| version | - | show program version and exit |
## See also
* [Project wiki](https://github.com/Snawoot/windscribe-proxy/wiki)

View File

@@ -1,27 +0,0 @@
name: windscribe-proxy
version: '1.0.0'
summary: Standalone Windscribe proxies client.
description: |
Standalone Windscribe proxies client. Just run it and it'll start plain HTTP proxy server forwarding traffic via proxies of your choice.
confinement: strict
base: core18
parts:
windscribe-proxy:
plugin: go
source: .
build-packages:
- gcc
override-build:
make &&
cp bin/windscribe-proxy "$SNAPCRAFT_PART_INSTALL"
stage:
- windscribe-proxy
apps:
windscribe-proxy:
command: windscribe-proxy
plugs:
- network
- network-bind