Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
4a3948a995 | ||
|
a6a3a667ac | ||
|
006e4b0fb8 | ||
|
5d1c1ff91b | ||
|
62aa4d4d4e | ||
|
df2468d8de | ||
|
53e8111ec3 | ||
|
821281d71f | ||
|
e646bd801e | ||
|
9791f4a007 | ||
|
29d2351597 | ||
|
46cfd03a37 |
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
@ -43,6 +43,7 @@ jobs:
|
||||
helm-pack:
|
||||
name: Pack the Helm chart
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-docker-image]
|
||||
defaults: {run: {working-directory: ./deployments/helm}}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@ -75,8 +76,7 @@ jobs:
|
||||
--merge \
|
||||
./helm-charts/index.yaml \
|
||||
./helm-charts
|
||||
- uses: yKicchan/generate-directory-listing-action@v1
|
||||
with: {target: ., ignore: "**/index.html", override: true}
|
||||
- {uses: gacts/directory-listing@v1, with: {overwrite: true}}
|
||||
- name: Commit and push the changes
|
||||
run: |
|
||||
git config user.name "${{ github.actor }}"
|
||||
|
21
.github/workflows/tests.yml
vendored
21
.github/workflows/tests.yml
vendored
@ -24,26 +24,9 @@ jobs:
|
||||
- {uses: actions/checkout@v4, with: {fetch-depth: 0}}
|
||||
- uses: gacts/gitleaks@v1
|
||||
|
||||
filter:
|
||||
name: Filter files
|
||||
runs-on: ubuntu-latest
|
||||
permissions: {pull-requests: read}
|
||||
outputs:
|
||||
docker: ${{ steps.filter.outputs.docker }}
|
||||
helm: ${{ steps.filter.outputs.helm }}
|
||||
steps:
|
||||
- uses: dorny/paths-filter@v3
|
||||
id: filter
|
||||
with:
|
||||
filters: |
|
||||
docker: [Dockerfile, '*docker*', '*3proxy*']
|
||||
helm: ['deployments/helm/**', '*kube*']
|
||||
|
||||
lint-charts:
|
||||
name: Lint the chart
|
||||
runs-on: ubuntu-latest
|
||||
needs: [filter]
|
||||
if: needs.filter.outputs.helm == 'true'
|
||||
defaults: {run: {working-directory: ./deployments/helm}}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@ -55,8 +38,6 @@ jobs:
|
||||
build-image:
|
||||
name: Build the docker image
|
||||
runs-on: ubuntu-latest
|
||||
needs: [filter] # since this is the initial step, we can filter out the rest of the jobs right here to skip them
|
||||
if: needs.filter.outputs.docker == 'true'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- run: docker build -f ./Dockerfile --tag 3proxy:local .
|
||||
@ -68,7 +49,7 @@ jobs:
|
||||
retention-days: 1
|
||||
|
||||
try-to-use:
|
||||
name: Build and use the docker image (auth ${{ matrix.auth }})
|
||||
name: Try to use the docker image (auth ${{ matrix.auth }})
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
|
@ -1,39 +1,44 @@
|
||||
#!/bin/3proxy
|
||||
config /etc/3proxy/3proxy.cfg
|
||||
|
||||
# you may use system to execute some external command if proxy starts
|
||||
system "echo `which 3proxy`': Starting 3proxy'"
|
||||
|
||||
# We can configure nservers to avoid unsafe gethostbyname() usage (max 5 servers)
|
||||
{{#name_servers}}
|
||||
nserver {{ . }}
|
||||
{{/name_servers}}
|
||||
|
||||
# nscache is good to save speed, traffic and bandwidth
|
||||
nscache {{ name_servers_cache }}
|
||||
|
||||
# Here we can change timeout values
|
||||
timeouts 1 5 30 60 180 1800 15 60
|
||||
|
||||
# Logging docs: <https://3proxy.org/doc/howtor.html#LOGFORMAT>
|
||||
log {{ log.output }}
|
||||
logformat "-\""+_G{""time_unix"":%t, ""proxy"":{""type:"":""%N"", ""port"":%p}, ""error"":{""code"":""%E""}, ""auth"":{""user"":""%U""}, ""client"":{""ip"":""%C"", ""port"":%c}, ""server"":{""ip"":""%R"", ""port"":%r}, ""bytes"":{""sent"":%O, ""received"":%I}, ""request"":{""hostname"":""%n""}, ""message"":""%T""}"
|
||||
|
||||
maxconn {{ max_connections }}
|
||||
|
||||
{{^auth.login=}}{{^auth.password=}}
|
||||
users {{ auth.login }}:CL:{{ auth.password }}{{#auth.extra_accounts.*}} {{ * }}:CL:{{ . }}{{/auth.extra_accounts.*}}
|
||||
{{#auth.login}}
|
||||
{{#auth.password}}
|
||||
users {{ auth.login }}:CL:{{ auth.password }}
|
||||
auth strong
|
||||
allow {{ auth.login }}{{#auth.extra_accounts.*}},{{ * }}{{/auth.extra_accounts.*}}
|
||||
{{/auth.password=}}{{/auth.login=}}
|
||||
allow {{ auth.login }}
|
||||
{{/auth.password}}
|
||||
{{/auth.login}}
|
||||
|
||||
{{^extra_config=}}
|
||||
# Listen on both IPv4 and IPv6 for incoming and outgoing traffic
|
||||
external 0.0.0.0
|
||||
external ::
|
||||
internal 0.0.0.0
|
||||
internal ::
|
||||
|
||||
{{#extra_config}}
|
||||
# Additional configuration
|
||||
{{extra_config}}
|
||||
{{/extra_config=}}
|
||||
{{/extra_config}}
|
||||
|
||||
# IPv4 & IPv6 Support for SOCKS5 & HTTP
|
||||
proxy -a -p{{ ports.proxy }}
|
||||
socks -a -p{{ ports.socks }}
|
||||
|
||||
flush
|
||||
proxy -6 -a -p{{ ports.proxy }}
|
||||
socks -6 -a -p{{ ports.socks }}
|
||||
|
||||
flush
|
13
Dockerfile
13
Dockerfile
@ -1,9 +1,9 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
FROM gcc:13.3.0 AS builder
|
||||
FROM docker.io/library/gcc:15.1.0 AS builder
|
||||
|
||||
# renovate: source=github-tags name=3proxy/3proxy
|
||||
ARG Z3PROXY_VERSION=0.9.4
|
||||
ARG Z3PROXY_VERSION=0.9.5
|
||||
|
||||
# Fetch 3proxy sources
|
||||
RUN set -x \
|
||||
@ -34,10 +34,11 @@ RUN set -x \
|
||||
&& strip ./bin/TrafficPlugin.ld.so \
|
||||
&& strip ./bin/PCREPlugin.ld.so \
|
||||
&& strip ./bin/TransparentPlugin.ld.so \
|
||||
&& strip ./bin/SSLPlugin.ld.so
|
||||
&& strip ./bin/SSLPlugin.ld.so \
|
||||
&& cp /lib/$(gcc -dumpmachine)/libdl.so.* /tmp/3proxy/
|
||||
|
||||
# Prepare filesystem for 3proxy running
|
||||
FROM alpine:latest AS buffer
|
||||
FROM docker.io/library/alpine:latest AS buffer
|
||||
|
||||
# create a directory for the future root filesystem
|
||||
WORKDIR /tmp/rootfs
|
||||
@ -53,7 +54,7 @@ RUN set -x \
|
||||
&& chmod +x ./bin/dumb-init \
|
||||
&& apk del .build-deps
|
||||
|
||||
COPY --from=builder /lib/*-linux-gnu/libdl.so.* ./lib/
|
||||
COPY --from=builder /tmp/3proxy/libdl.so.* ./lib/
|
||||
COPY --from=builder /tmp/3proxy/bin/3proxy ./bin/3proxy
|
||||
COPY --from=builder /tmp/3proxy/bin/*.ld.so ./usr/local/3proxy/libexec/
|
||||
COPY --from=ghcr.io/tarampampam/mustpl:0.1.1 /bin/mustpl ./bin/mustpl
|
||||
@ -63,7 +64,7 @@ COPY 3proxy.cfg.mustach ./etc/3proxy/3proxy.cfg.mustach
|
||||
RUN chown -R 10001:10001 ./etc/3proxy
|
||||
|
||||
# Merge into a single layer
|
||||
FROM busybox:stable-glibc
|
||||
FROM docker.io/library/busybox:stable-glibc
|
||||
|
||||
LABEL \
|
||||
org.opencontainers.image.title="3proxy" \
|
||||
|
17
README.md
17
README.md
@ -1,19 +1,6 @@
|
||||
<p align="center">
|
||||
<a href="https://github.com/tarampampam/3proxy-docker#readme">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://socialify.git.ci/tarampampam/3proxy-docker/image?description=1&font=Raleway&forks=1&issues=1&logo=https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F023186cf-b153-459c-8417-038fd87a2065&owner=1&pulls=1&pattern=Solid&stargazers=1&theme=Dark">
|
||||
<img align="center" src="https://socialify.git.ci/tarampampam/3proxy-docker/image?description=1&font=Raleway&forks=1&issues=1&logo=https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F023186cf-b153-459c-8417-038fd87a2065&owner=1&pulls=1&pattern=Solid&stargazers=1&theme=Light">
|
||||
</picture>
|
||||
</a>
|
||||
</p>
|
||||
# This is a fork of
|
||||
https://github.com/tarampampam/3proxy-docker
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/tarampampam/3proxy-docker/actions"><img src="https://img.shields.io/github/actions/workflow/status/tarampampam/3proxy-docker/tests.yml?branch=master&maxAge=30&label=tests&logo=github&style=flat-square" alt="" /></a>
|
||||
<a href="https://github.com/tarampampam/3proxy-docker/actions"><img src="https://img.shields.io/github/actions/workflow/status/tarampampam/3proxy-docker/release.yml?maxAge=30&label=release&logo=github&style=flat-square" alt="" /></a>
|
||||
<a href="https://hub.docker.com/r/tarampampam/3proxy"><img src="https://img.shields.io/docker/pulls/tarampampam/3proxy.svg?maxAge=30&label=pulls&logo=docker&logoColor=white&style=flat-square" alt="" /></a>
|
||||
<a href="https://hub.docker.com/r/tarampampam/3proxy"><img src="https://img.shields.io/docker/image-size/tarampampam/3proxy/latest?maxAge=30&label=size&logo=docker&logoColor=white&style=flat-square" alt="" /></a>
|
||||
<a href="https://github.com/tarampampam/3proxy-docker/blob/master/LICENSE"><img src="https://img.shields.io/github/license/tarampampam/3proxy-docker.svg?maxAge=30&style=flat-square" alt="" /></a>
|
||||
</p>
|
||||
|
||||
# Docker image with [3proxy][link_3proxy]
|
||||
|
||||
|
@ -72,14 +72,14 @@ spec:
|
||||
- name: {{ $authLoginEnvName }}
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: "{{ tpl (toYaml .fromSecret.secretName) $ }}"
|
||||
key: "{{ tpl (toYaml .fromSecret.secretKey) $ }}"
|
||||
name: {{ tpl .fromSecret.secretName $ | quote }}
|
||||
key: {{ tpl .fromSecret.secretKey $ | quote }}
|
||||
{{- else if .fromConfigMap.enabled }}
|
||||
- name: {{ $authLoginEnvName }}
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: "{{ tpl (toYaml .fromConfigMap.configMapName) $ }}"
|
||||
key: "{{ tpl (toYaml .fromConfigMap.configMapKey) $ }}"
|
||||
name: {{ tpl .fromConfigMap.configMapName $ | quote }}
|
||||
key: {{ tpl .fromConfigMap.configMapKey $ | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
@ -91,14 +91,14 @@ spec:
|
||||
- name: {{ $authPasswordEnvName }}
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: "{{ tpl (toYaml .fromSecret.secretName) $ }}"
|
||||
key: "{{ tpl (toYaml .fromSecret.secretKey) $ }}"
|
||||
name: {{ tpl .fromSecret.secretName $ | quote }}
|
||||
key: {{ tpl .fromSecret.secretKey $ | quote }}
|
||||
{{- else if .fromConfigMap.enabled }}
|
||||
- name: {{ $authPasswordEnvName }}
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: "{{ tpl (toYaml .fromConfigMap.configMapName) $ }}"
|
||||
key: "{{ tpl (toYaml .fromConfigMap.configMapKey) $ }}"
|
||||
name: {{ tpl .fromConfigMap.configMapName $ | quote }}
|
||||
key: {{ tpl .fromConfigMap.configMapKey $ | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
@ -112,14 +112,14 @@ spec:
|
||||
- name: {{ $extraAuthAccountsEnvName }}
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: "{{ tpl (toYaml .fromSecret.secretName) $ }}"
|
||||
key: "{{ tpl (toYaml .fromSecret.secretKey) $ }}"
|
||||
name: {{ tpl .fromSecret.secretName $ | quote }}
|
||||
key: {{ tpl .fromSecret.secretKey $ | quote }}
|
||||
{{- else if .fromConfigMap.enabled }}
|
||||
- name: {{ $extraAuthAccountsEnvName }}
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: "{{ tpl (toYaml .fromConfigMap.configMapName) $ }}"
|
||||
key: "{{ tpl (toYaml .fromConfigMap.configMapKey) $ }}"
|
||||
name: {{ tpl .fromConfigMap.configMapName $ | quote }}
|
||||
key: {{ tpl .fromConfigMap.configMapKey $ | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
|
21
docker-compose.yaml
Normal file
21
docker-compose.yaml
Normal file
@ -0,0 +1,21 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
3proxy-docker:
|
||||
container_name: 3proxy-server
|
||||
hostname: 3proxy-server
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
network_mode: host
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
PROXY_LOGIN: username
|
||||
PROXY_PASSWORD: "Password"
|
||||
PRIMARY_RESOLVER: 1.1.1.1
|
||||
SECONDARY_RESOLVER: 152.53.118.246
|
||||
MAX_CONNECTIONS: 1024
|
||||
PROXY_PORT: 3128
|
||||
SOCKS_PORT: 1080
|
||||
labels:
|
||||
com.centurylinklabs.watchtower.enable: "false"
|
Loading…
x
Reference in New Issue
Block a user