mirror of
https://github.com/Alexey71/opera-proxy.git
synced 2026-05-14 06:30:59 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8952eae4e2 | |||
| b98d32971f |
@@ -1 +0,0 @@
|
||||
bin/
|
||||
@@ -1,51 +0,0 @@
|
||||
name: docker-ci
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*.*.*'
|
||||
|
||||
jobs:
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
# list of Docker images to use as base name for tags
|
||||
images: |
|
||||
${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }}
|
||||
# generate Docker tags based on the following events/attributes
|
||||
tags: |
|
||||
type=semver,pattern={{version}}
|
||||
type=semver,pattern={{major}}.{{minor}}
|
||||
type=semver,pattern={{major}}
|
||||
type=sha
|
||||
-
|
||||
name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
-
|
||||
name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
-
|
||||
name: Login to DockerHub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
-
|
||||
name: Build and push
|
||||
id: docker_build
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
platforms: linux/amd64,linux/arm64,linux/386,linux/arm/v7
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
-12
@@ -1,12 +0,0 @@
|
||||
FROM --platform=$BUILDPLATFORM golang:1 AS build
|
||||
|
||||
WORKDIR /go/src/github.com/Alexey71/opera-proxy
|
||||
COPY . .
|
||||
ARG TARGETOS TARGETARCH
|
||||
RUN GOOS=$TARGETOS GOARCH=$TARGETARCH CGO_ENABLED=0 go build -a -tags netgo -ldflags '-s -w -extldflags "-static"'
|
||||
|
||||
FROM scratch
|
||||
COPY --from=build /go/src/github.com/Alexey71/opera-proxy/opera-proxy /
|
||||
USER 9999:9999
|
||||
EXPOSE 18080/tcp
|
||||
ENTRYPOINT ["/opera-proxy", "-bind-address", "0.0.0.0:18080"]
|
||||
@@ -1,8 +1,6 @@
|
||||
opera-proxy
|
||||
===========
|
||||
|
||||
[](https://snapcraft.io/opera-proxy)
|
||||
|
||||
Standalone Opera VPN client.
|
||||
|
||||
Just run it and it'll start a plain HTTP proxy server forwarding traffic through "Opera VPN" proxies of your choice.
|
||||
@@ -29,27 +27,6 @@ Alternatively, you may install opera-proxy from source. Run the following within
|
||||
make install
|
||||
```
|
||||
|
||||
#### Docker
|
||||
|
||||
A docker image is available as well. Here is an example of running opera-proxy as a background service:
|
||||
|
||||
```sh
|
||||
docker run -d \
|
||||
--security-opt no-new-privileges \
|
||||
-p 127.0.0.1:18080:18080 \
|
||||
--restart unless-stopped \
|
||||
--name opera-proxy \
|
||||
yarmak/opera-proxy
|
||||
```
|
||||
|
||||
#### Snap Store
|
||||
|
||||
[](https://snapcraft.io/opera-proxy)
|
||||
|
||||
```bash
|
||||
sudo snap install opera-proxy
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
List available countries:
|
||||
@@ -118,6 +95,3 @@ eu3.sec-tunnel.com,77.111.244.22,443
|
||||
| version | - | show program version and exit |
|
||||
| socks-mode | - | listen for SOCKS requests instead of HTTP |
|
||||
|
||||
## See also
|
||||
|
||||
* [Community in Telegram](https://t.me/alternative_proxy)
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/hashicorp/go-multierror"
|
||||
"github.com/Alexey71/go-multierror"
|
||||
)
|
||||
|
||||
type ServerSelection int
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
module github.com/Alexey71/opera-proxy
|
||||
|
||||
go 1.24.1
|
||||
go 1.25.0
|
||||
|
||||
toolchain go1.24.2
|
||||
toolchain go1.25.9
|
||||
|
||||
require (
|
||||
github.com/Alexey71/go-http-digest-auth-client v1.1.3
|
||||
github.com/hashicorp/go-multierror v1.1.1
|
||||
github.com/ncruces/go-dns v1.3.2
|
||||
github.com/things-go/go-socks5 v0.1.0
|
||||
golang.org/x/crypto/x509roots/fallback v0.0.0-20251210140736-7dacc380ba00
|
||||
golang.org/x/net v0.48.0
|
||||
github.com/Alexey71/go-multierror v1.1.3
|
||||
github.com/ncruces/go-dns v1.3.3
|
||||
github.com/things-go/go-socks5 v0.1.1
|
||||
golang.org/x/crypto/x509roots/fallback v0.0.0-20260413170323-a8e9237a216b
|
||||
golang.org/x/net v0.53.0
|
||||
)
|
||||
|
||||
require github.com/hashicorp/errwrap v1.1.0 // indirect
|
||||
|
||||
@@ -1,23 +1,20 @@
|
||||
github.com/Alexey71/go-http-digest-auth-client v1.1.3 h1:+S1vynZ/v4655Ee4z3+thNsIWxYk/8DG62QGmnK2y1M=
|
||||
github.com/Alexey71/go-http-digest-auth-client v1.1.3/go.mod h1:L+M7T00XYeSSOxHn1hgWbgXYhipNSQUzXh2MHGyIYqY=
|
||||
github.com/Alexey71/go-multierror v1.1.3 h1:lasWoAiRTKbqyLsr1C2I4DlEPir20ne1VGuCCZablz8=
|
||||
github.com/Alexey71/go-multierror v1.1.3/go.mod h1:7KiRIv1ScKVHZWPdy97WTw41LKEDQnc0P/hPbZasnbA=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
|
||||
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
|
||||
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
|
||||
github.com/ncruces/go-dns v1.3.2 h1:kBLuUZBgkQ4qF4WDXZRQ4rG0Gk6sLVJQ5tESkWrxUa0=
|
||||
github.com/ncruces/go-dns v1.3.2/go.mod h1:tuzixNY8PY/M7yUzcvRbUaeLs3ifIdydpi5H2bfRU+s=
|
||||
github.com/ncruces/go-dns v1.3.3 h1:59OV7XoJrTCoUMZjWRVs4GOjtntMTZqiQ5Mn+BT13hk=
|
||||
github.com/ncruces/go-dns v1.3.3/go.mod h1:tuzixNY8PY/M7yUzcvRbUaeLs3ifIdydpi5H2bfRU+s=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/stretchr/testify v1.11.0 h1:ib4sjIrwZKxE5u/Japgo/7SJV3PvgjGiRNAvTVGqQl8=
|
||||
github.com/stretchr/testify v1.11.0/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
|
||||
github.com/things-go/go-socks5 v0.1.0 h1:4f5dz0iMQ6cA4wseFmyLmCHmg3SWJTW92ndrKS6oERg=
|
||||
github.com/things-go/go-socks5 v0.1.0/go.mod h1:Riabiyu52kLsla0YmJqunt1c1JEl6iXSr4bRd7swFEA=
|
||||
golang.org/x/crypto/x509roots/fallback v0.0.0-20251210140736-7dacc380ba00 h1:qObov2/X4yIpr98j5t6samg3mMF12Rl4taUJd1rWj+c=
|
||||
golang.org/x/crypto/x509roots/fallback v0.0.0-20251210140736-7dacc380ba00/go.mod h1:MEIPiCnxvQEjA4astfaKItNwEVZA5Ki+3+nyGbJ5N18=
|
||||
golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU=
|
||||
golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY=
|
||||
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
|
||||
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
|
||||
github.com/things-go/go-socks5 v0.1.1 h1:48hy9cHEXPKeG91G/g4n8zW4uynzPUQy/FkcrJ7r5AY=
|
||||
github.com/things-go/go-socks5 v0.1.1/go.mod h1:1YBHVYG7Oli5ae+Pwkp630cPAwY1pjUPmohO1n0Emg0=
|
||||
golang.org/x/crypto/x509roots/fallback v0.0.0-20260413170323-a8e9237a216b h1:ZG2SxTKsx1w3pUpOMD9dliRYnhWC5R5jmL6UDPCbYj4=
|
||||
golang.org/x/crypto/x509roots/fallback v0.0.0-20260413170323-a8e9237a216b/go.mod h1:+UoQFNBq2p2wO+Q6ddVtYc25GZ6VNdOMyyrd4nrqrKs=
|
||||
golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA=
|
||||
golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ import (
|
||||
"fmt"
|
||||
"net/netip"
|
||||
|
||||
"github.com/hashicorp/go-multierror"
|
||||
"github.com/Alexey71/go-multierror"
|
||||
)
|
||||
|
||||
type LookupNetIPer interface {
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
name: opera-proxy
|
||||
summary: Standalone Opera VPN proxies client.
|
||||
description: |
|
||||
Standalone Opera VPN proxies client. Just run it and it'll start plain HTTP proxy server forwarding traffic via proxies of your choice.
|
||||
|
||||
confinement: strict
|
||||
base: core22
|
||||
adopt-info: opera-proxy
|
||||
|
||||
parts:
|
||||
opera-proxy:
|
||||
plugin: go
|
||||
build-snaps: [go/latest/stable]
|
||||
build-packages:
|
||||
- make
|
||||
- git-core
|
||||
source: https://github.com/Alexey71/opera-proxy
|
||||
source-type: git
|
||||
override-pull: |
|
||||
craftctl default
|
||||
craftctl set version="$(git describe --long --tags --always --match=v*.*.* | sed 's/v//')"
|
||||
override-build:
|
||||
make &&
|
||||
cp bin/opera-proxy "$SNAPCRAFT_PART_INSTALL"
|
||||
stage:
|
||||
- opera-proxy
|
||||
|
||||
apps:
|
||||
opera-proxy:
|
||||
command: opera-proxy
|
||||
plugs:
|
||||
- network
|
||||
- network-bind
|
||||
Reference in New Issue
Block a user