Unify installation environment

This commit is contained in:
Vladimir Dubrovin 2026-05-29 20:29:25 +03:00
parent 01dad546b7
commit f0a672b16a
19 changed files with 185 additions and 220 deletions

View file

@ -1,4 +0,0 @@
#!/usr/local/bin/3proxy
#use standard syslog logging
log @3proxy

31
scripts/3proxy.cfg.in Normal file
View file

@ -0,0 +1,31 @@
# use standard syslog logging
log @3proxy
#log /logs/3proxy-%y%m%d.log D
#rotate 60
#nscache 65536
#nserver 8.8.8.8
#nserver 8.8.4.4
#config @CMAKE_INSTALL_FULL_SYSCONFDIR@/3proxy/3proxy.cfg
#monitor @CMAKE_INSTALL_FULL_SYSCONFDIR@/3proxy/3proxy.cfg
#monitor @3PROXY_CONFDIR@/passwd
#counter @3PROXY_COUNTERDIR@/3proxy.3cf
#users $@3PROXY_CONFDIR@/passwd
#include @3PROXY_CONFDIR@/counters
#include @3PROXY_CONFDIR@/bandlimiters
#auth strong
#deny * * 127.0.0.0/8
#allow *
#proxy -n
#socks
#flush
#allow admin
#admin -p8080

View file

@ -5,8 +5,10 @@ nserver 8.8.4.4
config /conf/3proxy.cfg
monitor /conf/3proxy.cfg
log /logs/3proxy-%y%m%d.log D
rotate 60
log @3proxy
#log /logs/3proxy-%y%m%d.log D
#rotate 60
counter /count/3proxy.3cf
users $/conf/passwd

View file

@ -1,19 +0,0 @@
[Unit]
Description=3proxy tiny proxy server
Documentation=man:3proxy(1)
After=network.target
[Service]
Environment=CONFIGFILE=/etc/3proxy/3proxy.cfg
ExecStart=/bin/3proxy ${CONFIGFILE}
ExecReload=/bin/kill -SIGUSR1 $MAINPID
KillMode=process
Restart=on-failure
RestartSec=60s
LimitNOFILE=65536
LimitNPROC=32768
RuntimeDirectory=3proxy
[Install]
WantedBy=multi-user.target
Alias=3proxy.service

View file

@ -7,7 +7,7 @@ After=network.target
Type=simple
User=proxy
Group=proxy
Environment=CONFIGFILE=/etc/3proxy/3proxy.cfg
Environment=CONFIGFILE=@CMAKE_INSTALL_FULL_SYSCONFDIR@/3proxy/3proxy.cfg
ExecStart=@CMAKE_INSTALL_FULL_BINDIR@/3proxy ${CONFIGFILE}
ExecReload=/bin/kill -SIGUSR1 $MAINPID
KillMode=process

View file

@ -1,3 +0,0 @@
# tmpfiles.d configuration for 3proxy
# This creates the runtime directory for 3proxy
d /run/3proxy 0755 proxy proxy -

View file

@ -1,15 +0,0 @@
#!/bin/sh
if [ $4 ]; then
echo bandlimin $4 $1 >> /etc/3proxy/conf/bandlimiters
fi
if [ $3 ]; then
echo countin \"`wc -l /etc/3proxy/conf/counters|awk '{print $1}'`/$1\" D $3 $1 >> /etc/3proxy/conf/counters
fi
if [ $2 ]; then
echo $1:`/bin/3proxy_crypt $$ $2` >> /etc/3proxy/conf/passwd
else
echo usage: $0 username password [day_limit] [bandwidth]
echo " "day_limit - traffic limit in MB per day
echo " "bandwidth - bandwidth in bits per second 1048576 = 1Mbps
fi

View file

@ -0,0 +1,14 @@
#!/bin/sh
if [ $4 ]; then
echo bandlimin $4 $1 >> @3PROXY_CONFDIR@/bandlimiters
fi
if [ $3 ]; then
echo countall \"`wc -l @3PROXY_CONFDIR@/counters|awk '{print $1}'`/$1\" D $3 $1 >> @3PROXY_CONFDIR@/counters
fi
if [ $2 ]; then
echo $1:`@CMAKE_INSTALL_FULL_BINDIR@/@CRYPT_PREFIX@crypt $$ $2` >> @3PROXY_CONFDIR@/passwd
else
echo usage: $0 username password [day_limit] [bandwidth]
echo " "day_limit - traffic limit in MB per day
echo " "bandwidth - bandwidth in bits per second 1048576 = 1Mbps
fi

View file

@ -14,7 +14,7 @@
# description: 3proxy tiny proxy server
DAEMON=@CMAKE_INSTALL_FULL_BINDIR@/3proxy
CONFIGFILE=/etc/3proxy/3proxy.cfg
CONFIGFILE=@CMAKE_INSTALL_FULL_SYSCONFDIR@/3proxy/3proxy.cfg
PIDFILE=/var/run/3proxy/3proxy.pid
USER=proxy
GROUP=proxy

View file

@ -1,56 +0,0 @@
#!/bin/sh
### BEGIN INIT INFO
# Provides: 3proxy
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/stop 3proxy
# Description: Start/stop 3proxy, tiny proxy server
### END INIT INFO
# chkconfig: 2345 20 80
# description: 3proxy tiny proxy server
case "$1" in
start)
echo Starting 3Proxy
/bin/mkdir -p /var/run/3proxy
/bin/3proxy /etc/3proxy/3proxy.cfg &
RETVAL=$?
echo
[ $RETVAL ]
;;
stop)
echo Stopping 3Proxy
if [ -f /var/run/3proxy/3proxy.pid ]; then
/bin/kill `cat /var/run/3proxy/3proxy.pid`
else
/usr/bin/killall 3proxy
fi
RETVAL=$?
echo
[ $RETVAL ]
;;
restart|reload)
echo Reloading 3Proxy
if [ -f /var/run/3proxy/3proxy.pid ]; then
/bin/kill -s USR1 `cat /var/run/3proxy/3proxy.pid`
else
/usr/bin/killall -s USR1 3proxy
fi
;;
*)
echo Usage: $0 "{start|stop|restart}"
exit 1
esac
exit 0

View file

@ -4,11 +4,12 @@
set -e
PREFIX="${1-/usr/local}"
# Check if user already exists
if id proxy >/dev/null 2>&1; then
echo "User 'proxy' already exists"
exit 0
fi
else
echo "Creating proxy user and group..."
@ -33,7 +34,6 @@ elif command -v dscl >/dev/null 2>&1; then
dscl . create /Users/proxy NFSHomeDirectory /var/run/3proxy 2>/dev/null || true
else
echo "Warning: Could not create proxy user - no suitable user management tool found"
exit 0
fi
if id proxy >/dev/null 2>&1; then
@ -42,4 +42,7 @@ else
echo "Warning: Failed to create user 'proxy'"
fi
fi
chown -R proxy:proxy ${PREFIX}/etc/3proxy/
exit 0

View file

@ -1,27 +0,0 @@
#!/bin/sh
# PROVIDE: 3proxy
# REQUIRE: LOGIN DAEMON
# KEYWORD: shutdown
. /etc/rc.subr
name="3proxy"
rcvar="3proxy_enable"
command="/usr/local/3proxy/bin/3proxy"
pidfile="/var/run/3proxy/${name}.pid"
command_args="${3proxy_config:-/usr/local/etc/3proxy/3proxy.cfg}"
required_files="${3proxy_config:-/usr/local/etc/3proxy/3proxy.cfg}"
start_precmd="3proxy_precmd"
3proxy_precmd()
{
if [ ! -d /var/run/3proxy ]; then
mkdir -p /var/run/3proxy
fi
}
load_rc_config $name
run_rc_command "$1"

View file

@ -1,7 +1,7 @@
#!/bin/sh
# PROVIDE: 3proxy
# REQUIRE: LOGIN DAEMON
# REQUIRE: LOGIN DAEMON NETWORKING
# KEYWORD: shutdown
. /etc/rc.subr
@ -11,8 +11,8 @@ rcvar="3proxy_enable"
command="@CMAKE_INSTALL_FULL_BINDIR@/3proxy"
pidfile="/var/run/3proxy/${name}.pid"
command_args="${3proxy_config:-/etc/3proxy/3proxy.cfg}"
required_files="${3proxy_config:-/etc/3proxy/3proxy.cfg}"
command_args="${3proxy_config:-@CMAKE_INSTALL_FULL_SYSCONFDIR@/3proxy/3proxy.cfg}"
required_files="${3proxy_config:-@CMAKE_INSTALL_FULL_SYSCONFDIR@/3proxy/3proxy.cfg}"
command_user="proxy:proxy"
start_precmd="3proxy_precmd"

View file

@ -41,12 +41,12 @@ make clean
/bin/3proxy_tcppm
/bin/3proxy_tlspr
/bin/3proxy_udppm
/bin/add3proxyuser
%config(noreplace) /etc/3proxy/3proxy.cfg
/etc/3proxy/conf
/etc/init.d/3proxy
/usr/lib/systemd/system/3proxy.service
%config(noreplace) /usr/local/3proxy/conf/3proxy.cfg
%config(noreplace) /usr/local/3proxy/conf/add3proxyuser.sh
%config(noreplace) /usr/local/3proxy/conf/bandlimiters
%config(noreplace) /usr/local/3proxy/conf/counters
/usr/local/3proxy/libexec/*.ld.so
@ -66,10 +66,17 @@ fi
if [ ! -f /usr/local/3proxy/conf/passwd ]; then \
touch /usr/local/3proxy/conf/passwd;\
fi
chown -R proxy:proxy /usr/local/3proxy
chmod 550 /usr/local/3proxy/
chmod 550 /usr/local/3proxy/conf/
chmod 440 /usr/local/3proxy/conf/*
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; \
sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|/etc|g' /etc/init.d/3proxy; \
sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|/etc|g' /usr/lib/systemd/system/3proxy.service; \
if [ -d /etc/3proxy ]; then \
chown -R proxy:proxy /etc/3proxy; \
chmod -R o-rwx /etc/3proxy; \
fi
if [ -d /usr/local/3proxy ]; then \
chown -R proxy:proxy /usr/local/3proxy; \
chmod -R o-rwx /usr/local/3proxy; \
fi
if /bin/systemctl >/dev/null 2>&1; then \
/usr/sbin/update-rc.d 3proxy disable || true; \
/usr/sbin/chkconfig 3proxy off || true; \
@ -84,8 +91,8 @@ fi
echo ""
echo 3proxy installed.
if /bin/systemctl >/dev/null 2>&1; then \
/bin/systemctl stop 3proxy.service \
/bin/systemctl start 3proxy.service \
/bin/systemctl stop 3proxy.service ; \
/bin/systemctl start 3proxy.service ; \
echo use ;\
echo " "systemctl start 3proxy.service ;\
echo to start proxy ;\
@ -99,10 +106,10 @@ elif [ -x /usr/sbin/service ]; then \
echo " "service 3proxy stop ;\
echo to stop proxy ;\
fi
echo " "/usr/local/3proxy/conf/add3proxyuser.sh
echo " "/bin/add3proxyuser
echo to add users
echo ""
echo Default config uses Google\'s DNS.
echo It\'s recommended to use provider supplied DNS or install local recursor, e.g. pdns-recursor.
echo Configure preferred DNS in /usr/local/3proxy/conf/3proxy.cfg.
echo run \'/usr/local/3proxy/conf/add3proxyuser.sh admin password\' to configure \'admin\' user
echo run \'/bin/add3proxyuser admin password\' to configure \'admin\' user