2 Commits

Author SHA1 Message Date
Alexey 8952eae4e2 Update go 2026-04-13 21:23:26 +03:00
Alexey b98d32971f Remove not used snap store and docker 2026-03-28 09:11:34 +03:00
9 changed files with 21 additions and 149 deletions
-1
View File
@@ -1 +0,0 @@
bin/
-51
View File
@@ -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
View File
@@ -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"]
-26
View File
@@ -1,8 +1,6 @@
opera-proxy opera-proxy
=========== ===========
[![opera-proxy](https://snapcraft.io//opera-proxy/badge.svg)](https://snapcraft.io/opera-proxy)
Standalone Opera VPN client. 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. 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 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
[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/opera-proxy)
```bash
sudo snap install opera-proxy
```
## Usage ## Usage
List available countries: List available countries:
@@ -118,6 +95,3 @@ eu3.sec-tunnel.com,77.111.244.22,443
| version | - | show program version and exit | | version | - | show program version and exit |
| socks-mode | - | listen for SOCKS requests instead of HTTP | | socks-mode | - | listen for SOCKS requests instead of HTTP |
## See also
* [Community in Telegram](https://t.me/alternative_proxy)
+1 -1
View File
@@ -11,7 +11,7 @@ import (
"strings" "strings"
"time" "time"
"github.com/hashicorp/go-multierror" "github.com/Alexey71/go-multierror"
) )
type ServerSelection int type ServerSelection int
+7 -9
View File
@@ -1,16 +1,14 @@
module github.com/Alexey71/opera-proxy module github.com/Alexey71/opera-proxy
go 1.24.1 go 1.25.0
toolchain go1.24.2 toolchain go1.25.9
require ( require (
github.com/Alexey71/go-http-digest-auth-client v1.1.3 github.com/Alexey71/go-http-digest-auth-client v1.1.3
github.com/hashicorp/go-multierror v1.1.1 github.com/Alexey71/go-multierror v1.1.3
github.com/ncruces/go-dns v1.3.2 github.com/ncruces/go-dns v1.3.3
github.com/things-go/go-socks5 v0.1.0 github.com/things-go/go-socks5 v0.1.1
golang.org/x/crypto/x509roots/fallback v0.0.0-20251210140736-7dacc380ba00 golang.org/x/crypto/x509roots/fallback v0.0.0-20260413170323-a8e9237a216b
golang.org/x/net v0.48.0 golang.org/x/net v0.53.0
) )
require github.com/hashicorp/errwrap v1.1.0 // indirect
+12 -15
View File
@@ -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 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-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 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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/ncruces/go-dns v1.3.3 h1:59OV7XoJrTCoUMZjWRVs4GOjtntMTZqiQ5Mn+BT13hk=
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/ncruces/go-dns v1.3.3/go.mod h1:tuzixNY8PY/M7yUzcvRbUaeLs3ifIdydpi5H2bfRU+s=
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/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 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/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.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.11.0/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/things-go/go-socks5 v0.1.0 h1:4f5dz0iMQ6cA4wseFmyLmCHmg3SWJTW92ndrKS6oERg= github.com/things-go/go-socks5 v0.1.1 h1:48hy9cHEXPKeG91G/g4n8zW4uynzPUQy/FkcrJ7r5AY=
github.com/things-go/go-socks5 v0.1.0/go.mod h1:Riabiyu52kLsla0YmJqunt1c1JEl6iXSr4bRd7swFEA= github.com/things-go/go-socks5 v0.1.1/go.mod h1:1YBHVYG7Oli5ae+Pwkp630cPAwY1pjUPmohO1n0Emg0=
golang.org/x/crypto/x509roots/fallback v0.0.0-20251210140736-7dacc380ba00 h1:qObov2/X4yIpr98j5t6samg3mMF12Rl4taUJd1rWj+c= golang.org/x/crypto/x509roots/fallback v0.0.0-20260413170323-a8e9237a216b h1:ZG2SxTKsx1w3pUpOMD9dliRYnhWC5R5jmL6UDPCbYj4=
golang.org/x/crypto/x509roots/fallback v0.0.0-20251210140736-7dacc380ba00/go.mod h1:MEIPiCnxvQEjA4astfaKItNwEVZA5Ki+3+nyGbJ5N18= golang.org/x/crypto/x509roots/fallback v0.0.0-20260413170323-a8e9237a216b/go.mod h1:+UoQFNBq2p2wO+Q6ddVtYc25GZ6VNdOMyyrd4nrqrKs=
golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA=
golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= 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 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"fmt" "fmt"
"net/netip" "net/netip"
"github.com/hashicorp/go-multierror" "github.com/Alexey71/go-multierror"
) )
type LookupNetIPer interface { type LookupNetIPer interface {
-33
View File
@@ -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