Compare commits

...

12 Commits

Author SHA1 Message Date
Patrick Asmus (ws06-vm)
4a3948a995 change
Some checks failed
📚 Documentation / Docker Hub Description (push) Has been cancelled
2025-06-08 20:31:02 +02:00
Patrick Asmus (ws06-vm)
a6a3a667ac Merge branch 'master' of https://git.techniverse.net/scriptos/3proxy-docker
Some checks failed
📚 Documentation / Docker Hub Description (push) Has been cancelled
🧪 Tests / Check for GitLeaks (push) Has been cancelled
🧪 Tests / Lint the chart (push) Has been cancelled
🧪 Tests / Build the docker image (push) Has been cancelled
🧪 Tests / Try to use the docker image (auth no) (push) Has been cancelled
🧪 Tests / Try to use the docker image (auth yes) (push) Has been cancelled
2025-06-08 20:29:37 +02:00
Patrick Asmus (ws06-vm)
006e4b0fb8 first commit - enable ipv6 2025-06-08 20:28:47 +02:00
dependabot[bot]
5d1c1ff91b Enable ipv6 2025-06-08 20:28:41 +02:00
dependabot[bot]
62aa4d4d4e
Bump library/gcc from 14.2.0 to 15.1.0 in the docker group (#73) 2025-05-07 09:43:27 +00:00
Pаramtamtām
df2468d8de
Update release.yml 2025-03-14 14:02:17 +04:00
dependabot[bot]
53e8111ec3
Bump library/gcc from 13.3.0 to 14.2.0 in the docker group (#69)
Bumps the docker group with 1 update: library/gcc.


Updates `library/gcc` from 13.3.0 to 14.2.0

---
updated-dependencies:
- dependency-name: library/gcc
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: docker
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-10 14:52:36 +04:00
Pаramtamtām
821281d71f
⬆️ chore(docker): Bump 3proxy version to 0.9.5 (#70) 2025-03-10 14:50:20 +04:00
Pаramtamtām
e646bd801e
fix(helm): Fix for values that supports templating (#67) 2025-02-03 20:42:08 +04:00
Pаramtamtām
9791f4a007
Update release.yml 2025-02-03 17:50:29 +04:00
Pаramtamtām
29d2351597
dockerfile improving (#66) 2025-02-02 19:30:22 +04:00
Paramtamtam
46cfd03a37
fix the CI 2025-02-02 17:06:10 +04:00
7 changed files with 63 additions and 68 deletions

View File

@ -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 }}"

View File

@ -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

View File

@ -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 }}
proxy -6 -a -p{{ ports.proxy }}
socks -6 -a -p{{ ports.socks }}
flush

View File

@ -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" \

View File

@ -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]

View File

@ -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
View 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"