Compare commits

..

6 Commits

Author SHA1 Message Date
Vladimir Dubrovin
74d5b67ef4 riscv64 removed due to lack of gcc image
Some checks are pending
C/C++ CI Linux / ${{ matrix.target }} (ubuntu-24.04-arm) (push) Waiting to run
C/C++ CI Linux / ${{ matrix.target }} (ubuntu-latest) (push) Waiting to run
C/C++ CI MacOS / ${{ matrix.target }} (macos-15) (push) Waiting to run
C/C++ CI Windows / ${{ matrix.target }} (windows-2022) (push) Waiting to run
C/C++ CI cmake / ${{ matrix.target }} (macos-15) (push) Waiting to run
C/C++ CI cmake / ${{ matrix.target }} (ubuntu-24.04-arm) (push) Waiting to run
C/C++ CI cmake / ${{ matrix.target }} (ubuntu-latest) (push) Waiting to run
C/C++ CI cmake / ${{ matrix.target }} (windows-2022) (push) Waiting to run
2026-06-01 20:27:47 +03:00
dependabot[bot]
6d8643b70e
Bump actions/checkout from 5 to 6 (#1234)
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-01 20:22:52 +03:00
dependabot[bot]
9e7246e864
Bump open-watcom/setup-watcom from 0 to 1 (#1233)
Bumps [open-watcom/setup-watcom](https://github.com/open-watcom/setup-watcom) from 0 to 1.
- [Changelog](https://github.com/open-watcom/setup-watcom/blob/master/release.py)
- [Commits](https://github.com/open-watcom/setup-watcom/compare/v0...v1)

---
updated-dependencies:
- dependency-name: open-watcom/setup-watcom
  dependency-version: '1'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-01 20:22:03 +03:00
dependabot[bot]
c5affd2db4
Bump actions/upload-artifact from 6 to 7 (#1232)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-01 20:21:37 +03:00
Vladimir Dubrovin
794f667eea Add more docker platforms 2026-06-01 20:16:19 +03:00
Vladimir Dubrovin
0259b58b95 Start proxy as root in chroot 2026-06-01 19:18:51 +03:00
17 changed files with 57 additions and 47 deletions

11
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,11 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
- package-ecosystem: docker
directory: /
schedule:
interval: weekly

View File

@ -17,7 +17,7 @@ jobs:
- ubuntu-24.04-arm - ubuntu-24.04-arm
runs-on: ${{ matrix.target }} runs-on: ${{ matrix.target }}
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v6
- name: env - name: env
run: | run: |
pwd pwd
@ -48,7 +48,7 @@ jobs:
cd $ret cd $ret
mv ~/rpmbuild/RPMS/aarch64/3proxy-$RELEASE-1.aarch64.rpm 3proxy-$RELEASE.arm64.rpm mv ~/rpmbuild/RPMS/aarch64/3proxy-$RELEASE-1.aarch64.rpm 3proxy-$RELEASE.arm64.rpm
- name: Get artifact rpm - name: Get artifact rpm
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: "3proxy-${{ env.RELEASE }}-arm64.rpm" name: "3proxy-${{ env.RELEASE }}-arm64.rpm"
path: "*.rpm" path: "*.rpm"
@ -74,7 +74,7 @@ jobs:
cd $ret cd $ret
cp ~/debian/3proxy_$RELEASE-"$VERSION"_arm64.deb ./3proxy-$RELEASE.arm64.deb cp ~/debian/3proxy_$RELEASE-"$VERSION"_arm64.deb ./3proxy-$RELEASE.arm64.deb
- name: Get artifact deb - name: Get artifact deb
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: "3proxy-${{ env.RELEASE }}-arm64.deb" name: "3proxy-${{ env.RELEASE }}-arm64.deb"
path: "*.deb" path: "*.deb"

View File

@ -17,7 +17,7 @@ jobs:
- ubuntu-latest - ubuntu-latest
runs-on: ${{ matrix.target }} runs-on: ${{ matrix.target }}
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v6
- name: env - name: env
run: | run: |
pwd pwd
@ -75,7 +75,7 @@ jobs:
cd $ret cd $ret
mv ~/rpmbuild/RPMS/arm/3proxy-$RELEASE-1.arm.rpm 3proxy-$RELEASE.arm.rpm mv ~/rpmbuild/RPMS/arm/3proxy-$RELEASE-1.arm.rpm 3proxy-$RELEASE.arm.rpm
- name: Get artifact rpm - name: Get artifact rpm
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: "3proxy-${{ env.RELEASE }}-arm.rpm" name: "3proxy-${{ env.RELEASE }}-arm.rpm"
path: "*.rpm" path: "*.rpm"
@ -107,7 +107,7 @@ jobs:
cd $ret cd $ret
cp ~/debian/3proxy_$RELEASE-"$VERSION"_armhf.deb ./3proxy-$RELEASE.arm.deb cp ~/debian/3proxy_$RELEASE-"$VERSION"_armhf.deb ./3proxy-$RELEASE.arm.deb
- name: Get artifact deb - name: Get artifact deb
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: "3proxy-${{ env.RELEASE }}-arm.deb" name: "3proxy-${{ env.RELEASE }}-arm.deb"
path: "*.deb" path: "*.deb"

View File

@ -17,7 +17,7 @@ jobs:
- ubuntu-latest - ubuntu-latest
runs-on: ${{ matrix.target }} runs-on: ${{ matrix.target }}
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v6
- name: env - name: env
run: | run: |
pwd pwd
@ -48,7 +48,7 @@ jobs:
cd $ret cd $ret
mv ~/rpmbuild/RPMS/x86_64/3proxy-$RELEASE-1.x86_64.rpm 3proxy-$RELEASE.x86_64.rpm mv ~/rpmbuild/RPMS/x86_64/3proxy-$RELEASE-1.x86_64.rpm 3proxy-$RELEASE.x86_64.rpm
- name: Get artifact rpm - name: Get artifact rpm
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: "3proxy-${{ env.RELEASE }}-x86_64.rpm" name: "3proxy-${{ env.RELEASE }}-x86_64.rpm"
path: "*.rpm" path: "*.rpm"
@ -74,7 +74,7 @@ jobs:
cd $ret cd $ret
cp ~/debian/3proxy_$RELEASE-"$VERSION"_amd64.deb ./3proxy-$RELEASE.x86_64.deb cp ~/debian/3proxy_$RELEASE-"$VERSION"_amd64.deb ./3proxy-$RELEASE.x86_64.deb
- name: Get artifact deb - name: Get artifact deb
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: "3proxy-${{ env.RELEASE }}-x86_64.deb" name: "3proxy-${{ env.RELEASE }}-x86_64.deb"
path: "*.deb" path: "*.deb"

View File

@ -17,11 +17,11 @@ jobs:
- windows-2022 - windows-2022
runs-on: ${{ matrix.target }} runs-on: ${{ matrix.target }}
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v6
# - name: configure # - name: configure
# run: ./configure # run: ./configure
- name: Setup Open Watcom - name: Setup Open Watcom
uses: open-watcom/setup-watcom@v0 uses: open-watcom/setup-watcom@v1
- name: set date - name: set date
run: | run: |
$NOW = Get-Date -Format "yyMMddHHmmss" $NOW = Get-Date -Format "yyMMddHHmmss"
@ -78,7 +78,7 @@ jobs:
copy README.md dist\3proxy\ copy README.md dist\3proxy\
copy rus.3ps dist\3proxy\ copy rus.3ps dist\3proxy\
- name: Get artifact - name: Get artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: "3proxy-${{ env.RELEASE }}-lite" name: "3proxy-${{ env.RELEASE }}-lite"
path: dist/ path: dist/

View File

@ -17,7 +17,7 @@ jobs:
- windows-2022 - windows-2022
runs-on: ${{ matrix.target }} runs-on: ${{ matrix.target }}
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v6
# - name: configure # - name: configure
# run: ./configure # run: ./configure
- name: set date - name: set date
@ -84,7 +84,7 @@ jobs:
copy README.md dist\3proxy\ copy README.md dist\3proxy\
copy rus.3ps dist\3proxy\ copy rus.3ps dist\3proxy\
- name: Get artifact - name: Get artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: "3proxy-${{ env.RELEASE }}" name: "3proxy-${{ env.RELEASE }}"
path: dist/ path: dist/

View File

@ -17,7 +17,7 @@ jobs:
- windows-2022 - windows-2022
runs-on: ${{ matrix.target }} runs-on: ${{ matrix.target }}
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v6
# - name: configure # - name: configure
# run: ./configure # run: ./configure
- name: set date - name: set date
@ -85,7 +85,7 @@ jobs:
copy README.md dist\3proxy\ copy README.md dist\3proxy\
copy rus.3ps dist\3proxy\ copy rus.3ps dist\3proxy\
- name: Get artifact - name: Get artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: "3proxy-${{ env.RELEASE }}-x64" name: "3proxy-${{ env.RELEASE }}-x64"
path: dist/ path: dist/

View File

@ -17,7 +17,7 @@ jobs:
- windows-2022 - windows-2022
runs-on: ${{ matrix.target }} runs-on: ${{ matrix.target }}
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v6
# - name: configure # - name: configure
# run: ./configure # run: ./configure
- name: set date - name: set date
@ -84,7 +84,7 @@ jobs:
copy README.md dist\3proxy\ copy README.md dist\3proxy\
copy rus.3ps dist\3proxy\ copy rus.3ps dist\3proxy\
- name: Get artifact - name: Get artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v7
with: with:
name: "3proxy-${{ env.RELEASE }}-arm64" name: "3proxy-${{ env.RELEASE }}-arm64"
path: dist/ path: dist/

View File

@ -20,7 +20,7 @@ jobs:
- ubuntu-24.04-arm - ubuntu-24.04-arm
runs-on: ${{ matrix.target }} runs-on: ${{ matrix.target }}
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v6
# - name: configure # - name: configure
# run: ./configure # run: ./configure
- name: Linux libraries - name: Linux libraries

View File

@ -19,7 +19,7 @@ jobs:
- macos-15 - macos-15
runs-on: ${{ matrix.target }} runs-on: ${{ matrix.target }}
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v6
# - name: configure # - name: configure
# run: ./configure # run: ./configure
- name: Mac libraries - name: Mac libraries

View File

@ -19,7 +19,7 @@ jobs:
- windows-2022 - windows-2022
runs-on: ${{ matrix.target }} runs-on: ${{ matrix.target }}
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v6
- name: install Windows libraries - name: install Windows libraries
run: vcpkg install pcre2:x64-windows && c:\msys64\usr\bin\pacman.exe -S --noconfirm mingw-w64-x86_64-pcre2 mingw-w64-x86_64-openssl run: vcpkg install pcre2:x64-windows && c:\msys64\usr\bin\pacman.exe -S --noconfirm mingw-w64-x86_64-pcre2 mingw-w64-x86_64-openssl
- name: make Windows - name: make Windows

View File

@ -22,7 +22,7 @@ jobs:
- windows-2022 - windows-2022
runs-on: ${{ matrix.target }} runs-on: ${{ matrix.target }}
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v6
# - name: configure # - name: configure
# run: ./configure # run: ./configure
- name: Linux libraries - name: Linux libraries

View File

@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v5 uses: actions/checkout@v6
- name: Determine tags - name: Determine tags
id: tags id: tags
@ -55,29 +55,29 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push minimal - name: Build and push minimal
uses: docker/build-push-action@v6 uses: docker/build-push-action@v7
with: with:
context: . context: .
file: Dockerfile.minimal file: Dockerfile.minimal
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64,linux/arm/v7,ppc64le
push: ${{ github.event_name != 'pull_request' }} push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.tags.outputs.minimal }} tags: ${{ steps.tags.outputs.minimal }}
- name: Build and push busybox - name: Build and push busybox
uses: docker/build-push-action@v6 uses: docker/build-push-action@v7
with: with:
context: . context: .
file: Dockerfile.busybox file: Dockerfile.busybox
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64,linux/arm/v7,ppc64le
push: ${{ github.event_name != 'pull_request' }} push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.tags.outputs.busybox }} tags: ${{ steps.tags.outputs.busybox }}
- name: Build and push full - name: Build and push full
uses: docker/build-push-action@v6 uses: docker/build-push-action@v7
with: with:
context: . context: .
file: Dockerfile.full file: Dockerfile.full
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64,linux/arm/v7,ppc64le
push: ${{ github.event_name != 'pull_request' }} push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.tags.outputs.full }} tags: ${{ steps.tags.outputs.full }}

View File

@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v5 uses: actions/checkout@v6
- name: Determine tags - name: Determine tags
id: tags id: tags
@ -52,28 +52,28 @@ jobs:
password: ${{ secrets.DOCKERHUB_TOKEN }} password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push minimal - name: Build and push minimal
uses: docker/build-push-action@v6 uses: docker/build-push-action@v7
with: with:
context: . context: .
file: Dockerfile.minimal file: Dockerfile.minimal
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64,linux/arm/v7,ppc64le
push: ${{ github.event_name != 'pull_request' }} push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.tags.outputs.minimal }} tags: ${{ steps.tags.outputs.minimal }}
- name: Build and push busybox - name: Build and push busybox
uses: docker/build-push-action@v6 uses: docker/build-push-action@v7
with: with:
context: . context: .
file: Dockerfile.busybox file: Dockerfile.busybox
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64,linux/arm/v7,ppc64le
push: ${{ github.event_name != 'pull_request' }} push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.tags.outputs.busybox }} tags: ${{ steps.tags.outputs.busybox }}
- name: Build and push full - name: Build and push full
uses: docker/build-push-action@v6 uses: docker/build-push-action@v7
with: with:
context: . context: .
file: Dockerfile.full file: Dockerfile.full
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64,linux/arm/v7,ppc64le
push: ${{ github.event_name != 'pull_request' }} push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.tags.outputs.full }} tags: ${{ steps.tags.outputs.full }}

View File

@ -38,15 +38,14 @@ Full installation requires to mount /etc/3proxy directory with 3proxy.cfg files.
to run: to run:
``` ```
echo log >/path/to/local/config/directory/3proxy.cfg echo "
echo nserver 8.8.8.8 >>/path/to/local/config/directory/3proxy.cfg log
echo nscache 65536 >>/path/to/local/config/directory/3proxy.cfg nserver 8.8.8.8
echo proxy -p3129 >>/path/to/local/config/directory/3proxy.cfg nscache 65536
docker run --read-only -p 3129:3129 -v /path/to/local/config/directory:/etc/3proxy --name 3proxy.full docker.io/3proxy/3proxy proxy -p3129" | docker config create 3proxy
docker run --read-only -p 3129:3129 --config source=3proxy,target=/etc/3proxy/3proxy.cfg --name 3proxy.full docker.io/3proxy/3proxy
``` ```
/path/to/local/config/directory in this example must contain 3proxy.cfg
use `log` without pathname in config to log to stdout. use `log` without pathname in config to log to stdout.
plugins are located in /usr/local/3proxy/libexec (/libexec for chroot config) and since 0.9.6 symlinked by /lib and /lib64 in both chroot and non-chroot configurations, so no full path is required in `plugin` command. Use e.g. `plugin SSLPlugin.ls.so ssl_plugin`. SSLPlugin is supported since 0.9.6. Some proxy types (e.g. SOCKSv5 UDPASSCOC, SOCKSv5 BIND functionality, ftp proxy) require access to ephemeral port, you may use e.g. -`-network host` mode or `-P` for `docker run`. plugins are located in /usr/local/3proxy/libexec (/libexec for chroot config) and since 0.9.6 symlinked by /lib and /lib64 in both chroot and non-chroot configurations, so no full path is required in `plugin` command. Use e.g. `plugin SSLPlugin.ls.so ssl_plugin`. SSLPlugin is supported since 0.9.6. Some proxy types (e.g. SOCKSv5 UDPASSCOC, SOCKSv5 BIND functionality, ftp proxy) require access to ephemeral port, you may use e.g. -`-network host` mode or `-P` for `docker run`.

4
debian/postinst vendored
View File

@ -1,6 +1,6 @@
[ -f /bin/add3proxyuser ] && sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@3PROXY_CONFDIR@|/etc/3proxy/conf|g' -e 's|@CRYPT_PREFIX@|3proxy_|g' /bin/add3proxyuser; \ [ -f /bin/add3proxyuser ] && sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@3PROXY_CONFDIR@|/etc/3proxy/conf|g' -e 's|@CRYPT_PREFIX@|3proxy_|g' /bin/add3proxyuser; \
[ -f /etc/init.d/3proxy ] && sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|/etc|g' /etc/init.d/3proxy; \ [ -f /etc/init.d/3proxy ] && sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|/etc|g' -e 's|USER=proxy|USER=root|g' /etc/init.d/3proxy; \
[ -f /usr/lib/systemd/system/3proxy.service ] && sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|/etc|g' /usr/lib/systemd/system/3proxy.service; \ [ -f /usr/lib/systemd/system/3proxy.service ] && sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|/etc|g' -e 's|User=proxy|User=root|g' /usr/lib/systemd/system/3proxy.service; \
if [ -d /etc/3proxy ]; then \ if [ -d /etc/3proxy ]; then \
chmod -R o-rwx /etc/3proxy; \ chmod -R o-rwx /etc/3proxy; \

View File

@ -67,8 +67,8 @@ if [ ! -f /usr/local/3proxy/conf/passwd ]; then \
touch /usr/local/3proxy/conf/passwd;\ touch /usr/local/3proxy/conf/passwd;\
fi fi
[ -f /bin/add3proxyuser ] && sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@3PROXY_CONFDIR@|/etc/3proxy/conf|g' -e 's|@CRYPT_PREFIX@|3proxy_|g' /bin/add3proxyuser; \ [ -f /bin/add3proxyuser ] && sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@3PROXY_CONFDIR@|/etc/3proxy/conf|g' -e 's|@CRYPT_PREFIX@|3proxy_|g' /bin/add3proxyuser; \
[ -f /etc/init.d/3proxy ] && sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|/etc|g' /etc/init.d/3proxy; \ [ -f /etc/init.d/3proxy ] && sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|/etc|g' -e 's|USER=proxy|USER=root|g' /etc/init.d/3proxy; \
[ -f /usr/lib/systemd/system/3proxy.service ] && sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|/etc|g' /usr/lib/systemd/system/3proxy.service; \ [ -f /usr/lib/systemd/system/3proxy.service ] && sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|/etc|g' -e 's|User=proxy|User=root|g' /usr/lib/systemd/system/3proxy.service; \
if [ -d /etc/3proxy ]; then \ if [ -d /etc/3proxy ]; then \
chown -R proxy:proxy /etc/3proxy; \ chown -R proxy:proxy /etc/3proxy; \
chmod -R o-rwx /etc/3proxy; \ chmod -R o-rwx /etc/3proxy; \