pritunl ПО лентяйски — docker-compose

docker prinunl

Pritunl — это многофункциональная оболочка управления VPN-сервером с красивой web-мордой, которая позволяет легко устанавливается и управляет учетными записями пользователей.

Зада­ча быст­ро под­нять pritunl и выдать доступ пользователям.

для успешного использования сценария на вашем сер­ве­ре уже дол­жен быть установлен докер и docker-compose

Ста­вим docker:

yum remove docker docker-engine docker.io
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce -y
systemctl start docker
systemctl enable docker

ста­вим docker-compose

https://github.com/docker/compose/releases
на теку­щий момент самая послед­няя версия:
2,6,1

https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-linux-x86_64

выка­чи­ва­ем её:

curl -L «https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-linux-x86_64» -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

успешного скачали выставили права.

 

Следующим шагом выкача­ем репозиторий:

git clone https://github.com/midnight47/docker-compose.git

пере­хо­дим в директорию:

cd docker-compose/pritunl/

запус­ка­ем:

docker-compose up -d

Далее ждём когда собе­рёт­ся образ, после чего по ip можем войти в вэб панель.

Чтобы полу­чить login password необходимо войти в кон­тей­нер и выпол­нить коман­ду для полу­че­ния доступов:

YAML docker exec -ti pritunl_pritunl_1 bash

root@f8c91b8c82a9:/# pritunl default-password1234

docker exec -ti pritunl_pritunl_1 bash

root@f8c91b8c82a9:/# pritunl default-password

полу­чим такой вывод:

YAML[undefined][2022-07-17 14:39:37,596][INFO] Getting default administrator passwordAdministrator default password: username: "pritunl" password: "RNQg3alBwWEM"12345[undefined][2022-07-17 14:39:37,596][INFO] Getting default administrator passwordAdministrator default password:  username: "pritunl"  password: "RNQg3alBwWEM"

cat Dockerfile

YAMLFROM ubuntu:18.04ARG PRITUNL_VERSION="1.30.3226.71"ENV PRITUNL_VERSION=${PRITUNL_VERSION}ARG MONGODB_VERSION="*"ENV MONGODB_VERSION=${MONGODB_VERSION}COPY --chown=root:root ["docker-install.sh", "/root"]RUN bash /root/docker-install.shADD start-pritunl /bin/start-pritunlEXPOSE 80EXPOSE 443EXPOSE 1194EXPOSE 1194/udpENTRYPOINT ["/bin/start-pritunl"]CMD ["/usr/bin/tail", "-f","/var/log/pritunl.log"]12345678910111213141516171819202122FROM ubuntu:18.04 ARG PRITUNL_VERSION="1.30.3226.71"ENV PRITUNL_VERSION=${PRITUNL_VERSION} ARG MONGODB_VERSION="*"ENV MONGODB_VERSION=${MONGODB_VERSION} COPY --chown=root:root ["docker-install.sh", "/root"]RUN bash /root/docker-install.sh ADD start-pritunl /bin/start-pritunl EXPOSE 80EXPOSE 443EXPOSE 1194EXPOSE 1194/udp ENTRYPOINT ["/bin/start-pritunl"] CMD ["/usr/bin/tail", "-f","/var/log/pritunl.log"]

cat docker-install.sh

YAMLset -exapt-get update -qapt-get install -y gnupg wgetif [ "${MONGODB_VERSION}" != "no" ]; then wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add - echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.4.listfiecho 'deb http://repo.pritunl.com/stable/apt bionic main' > /etc/apt/sources.list.d/pritunl.listecho "deb http://build.openvpn.net/debian/openvpn/stable bionic main" > /etc/apt/sources.list.d/openvpn-aptrepo.listapt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 7568D9BB55FF9E5287D586017AE645C0CF8E292Aapt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 8E6DA8B4E158C569apt-get update -qapt-get install -y locales iptables wgetlocale-gen en_US en_US.UTF-8dpkg-reconfigure localesln -sf /usr/share/zoneinfo/UTC /etc/localtimeapt-get upgrade -y -qapt-get dist-upgrade -y -qwget --quiet https://github.com/pritunl/pritunl/releases/download/${PRITUNL_VERSION}/pritunl_${PRITUNL_VERSION}-0ubuntu1.bionic_amd64.debdpkg -i pritunl_${PRITUNL_VERSION}-0ubuntu1.bionic_amd64.deb || apt-get -f -y installrm pritunl_${PRITUNL_VERSION}-0ubuntu1.bionic_amd64.debif [ "${MONGODB_VERSION}" != "no" ]; then apt-get -y install mongodb-org=${MONGODB_VERSION};fiapt-get --purge autoremove -y wgetapt-get cleanapt-get -y -q autocleanapt-get -y -q autoremoverm -rf /tmp/*1234567891011121314151617181920212223242526272829303132333435363738set -ex apt-get update -qapt-get install -y gnupg wget if [ "${MONGODB_VERSION}" != "no" ]; then    wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -    echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.4.listfi echo 'deb http://repo.pritunl.com/stable/apt bionic main' > /etc/apt/sources.list.d/pritunl.listecho "deb http://build.openvpn.net/debian/openvpn/stable bionic main" > /etc/apt/sources.list.d/openvpn-aptrepo.list apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 7568D9BB55FF9E5287D586017AE645C0CF8E292Aapt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 8E6DA8B4E158C569 apt-get update -qapt-get install -y locales iptables wgetlocale-gen en_US en_US.UTF-8dpkg-reconfigure localesln -sf /usr/share/zoneinfo/UTC /etc/localtimeapt-get upgrade -y -qapt-get dist-upgrade -y -q wget --quiet https://github.com/pritunl/pritunl/releases/download/${PRITUNL_VERSION}/pritunl_${PRITUNL_VERSION}-0ubuntu1.bionic_amd64.debdpkg -i pritunl_${PRITUNL_VERSION}-0ubuntu1.bionic_amd64.deb || apt-get -f -y installrm pritunl_${PRITUNL_VERSION}-0ubuntu1.bionic_amd64.deb if [ "${MONGODB_VERSION}" != "no" ]; then    apt-get -y install mongodb-org=${MONGODB_VERSION};fi apt-get --purge autoremove -y wgetapt-get cleanapt-get -y -q autocleanapt-get -y -q autoremoverm -rf /tmp/*

cat start-pritunl

YAML#!/bin/shset -e[ -d /dev/net ] || mkdir -p /dev/net[ -c /dev/net/tun ] || mknod /dev/net/tun c 10 200touch /var/log/pritunl.logtouch /var/run/pritunl.pid/bin/rm /var/run/pritunl.pidif [ "$1" = "bash" ]; then exec "$@" exit $?fi# allow changing debug modeif [ -z "$PRITUNL_DEBUG" ]; then PRITUNL_DEBUG="false"fi# allow changing bind addrif [ -z "$PRITUNL_BIND_ADDR" ]; then PRITUNL_BIND_ADDR="0.0.0.0"fi## start a local mongodb instance if no mongodb specified through envif [ -z "$PRITUNL_MONGODB_URI" ]; then /usr/bin/mongod -f /etc/mongod.conf & PRITUNL_MONGODB_URI="mongodb://localhost:27017/pritunl"fiif [ -z "$PRITUNL_DONT_WRITE_CONFIG" ]; then cat << EOF > /etc/pritunl.conf { "mongodb_uri": "$PRITUNL_MONGODB_URI", "server_key_path": "/var/lib/pritunl/pritunl.key", "log_path": "/var/log/pritunl.log", "static_cache": true, "server_cert_path": "/var/lib/pritunl/pritunl.crt", "temp_path": "/tmp/pritunl_%r", "bind_addr": "$PRITUNL_BIND_ADDR", "debug": $PRITUNL_DEBUG, "www_path": "/usr/share/pritunl/www", "local_address_interface": "auto" }EOFfiexec /usr/bin/pritunl start -c /etc/pritunl.conf123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#!/bin/shset -e [ -d /dev/net ] ||    mkdir -p /dev/net[ -c /dev/net/tun ] ||    mknod /dev/net/tun c 10 200 touch /var/log/pritunl.logtouch /var/run/pritunl.pid/bin/rm /var/run/pritunl.pid if [ "$1" = "bash" ]; then    exec "$@"    exit $?fi # allow changing debug modeif [ -z "$PRITUNL_DEBUG" ]; then    PRITUNL_DEBUG="false"fi # allow changing bind addrif [ -z "$PRITUNL_BIND_ADDR" ]; then    PRITUNL_BIND_ADDR="0.0.0.0"fi  ## start a local mongodb instance if no mongodb specified through envif [ -z "$PRITUNL_MONGODB_URI" ]; then  /usr/bin/mongod -f /etc/mongod.conf &  PRITUNL_MONGODB_URI="mongodb://localhost:27017/pritunl"fi if [ -z "$PRITUNL_DONT_WRITE_CONFIG" ]; then    cat << EOF > /etc/pritunl.conf    {        "mongodb_uri": "$PRITUNL_MONGODB_URI",        "server_key_path": "/var/lib/pritunl/pritunl.key",        "log_path": "/var/log/pritunl.log",        "static_cache": true,        "server_cert_path": "/var/lib/pritunl/pritunl.crt",        "temp_path": "/tmp/pritunl_%r",        "bind_addr": "$PRITUNL_BIND_ADDR",        "debug": $PRITUNL_DEBUG,        "www_path": "/usr/share/pritunl/www",        "local_address_interface": "auto"    }EOF fi exec /usr/bin/pritunl start -c /etc/pritunl.conf

cat docker-compose.yml

YAMLversion: '3'services: pritunl: build: dockerfile: ./Dockerfile context: . image: 'pritunll:latest' privileged: true ports: - '80:80' - '443:443' - '1194:1194/udp' - '1194:1194/tcp' volumes: - 'pritunl_data:/var/lib/pritunl' - 'pritunl_db:/var/lib/mongodb'volumes: pritunl_data: driver: local pritunl_db: driver: local123456789101112131415161718192021222324version: '3' services:  pritunl:    build:      dockerfile: ./Dockerfile      context: .    image: 'pritunll:latest'    privileged: true    ports:      - '80:80'      - '443:443'      - '1194:1194/udp'      - '1194:1194/tcp'    volumes:      - 'pritunl_data:/var/lib/pritunl'      - 'pritunl_db:/var/lib/mongodb' volumes:  pritunl_data:    driver: local  pritunl_db:    driver: local

==============================================================================

вот ещё ком­поз­ник вполне рабочий:

cat docker-compose.yml

YAMLversion: '3'services: mongo: image: mongo:latest container_name: pritunldb hostname: pritunldb network_mode: bridge volumes: - ./db:/data/db pritunl: image: goofball222/pritunl:latest container_name: pritunl hostname: pritunl depends_on: - mongo network_mode: bridge privileged: true sysctls: - net.ipv6.conf.all.disable_ipv6=0 links: - mongo volumes: - /etc/localtime:/etc/localtime:ro ports: - 80:80 - 443:443 - 1194:1194 - 1194:1194/udp - 1195:1195/udp environment: - TZ=UTC12345678910111213141516171819202122232425262728293031323334version: '3' services:  mongo:    image: mongo:latest    container_name: pritunldb    hostname: pritunldb    network_mode: bridge    volumes:      - ./db:/data/db   pritunl:    image: goofball222/pritunl:latest    container_name: pritunl    hostname: pritunl    depends_on:        - mongo    network_mode: bridge    privileged: true    sysctls:      - net.ipv6.conf.all.disable_ipv6=0    links:      - mongo    volumes:      - /etc/localtime:/etc/localtime:ro    ports:      - 80:80      - 443:443      - 1194:1194      - 1194:1194/udp      - 1195:1195/udp    environment:      - TZ=UTC
Друзья помогите этому контенту стать доступнее в социальных сетях.

Не проходи мимо жмакни по кнопке возможно кому то еще он будет полезен!