diff --git a/tools/ansible/hosts b/tools/ansible/hosts index 1565853..707c89c 100644 --- a/tools/ansible/hosts +++ b/tools/ansible/hosts @@ -1,3 +1,3 @@ [servers] 10.10.10.10 -10.10.10.11 +10.10.10.11 \ No newline at end of file diff --git a/tools/ansible/roles/uashield/tasks/main.yml b/tools/ansible/roles/uashield/tasks/main.yml index ae35d6d..74c8c49 100644 --- a/tools/ansible/roles/uashield/tasks/main.yml +++ b/tools/ansible/roles/uashield/tasks/main.yml @@ -1,52 +1,43 @@ --- -- name: Check if repo is exist - stat: - path: "{{uashield_work_dir}}" - failed_when: false - changed_when: false - register: check_uashield_repo - -- name: Clone repo +- name: Clone uashield repo git: repo: "{{uashield_git_url}}" dest: "{{uashield_work_dir}}" accept_hostkey: true force: true version: "master" - when: not check_uashield_repo.stat.exists -- name: Pull Latest Changes - shell: "git pull" +- name: Stop all containers + shell: "docker-compose down" args: chdir: "{{uashield_work_dir}}" - when: check_uashield_repo.stat.exists -- name: Get Running Docker Containers - shell: "docker ps -aq" - register: docker_info - -- name: Stop Running Docker Containers - shell: "docker stop $(docker ps -aq)" - when: docker_info.stdout - -- name: Remove Docker Containers - shell: "docker rm $(docker ps -aq)" - when: docker_info.stdout - -- name: Remove Old Docker Image +- name: Remove old uashield images shell: "docker rmi -f uashield" -- name: Build Docker Image - shell: "docker build . -t uashield" +- name: Run uashield + shell: "docker-compose up -d" args: chdir: "{{uashield_work_dir}}" -- name: Run Instance - shell: "docker run -d uashield {{ uashield_threads }} {{ uashield_proxy }}" - -- name: Check Docker is started - command: "docker ps" +- name: Check docker started + shell: "docker ps" + args: + chdir: "{{uashield_work_dir}}" register: output - ansible.builtin.debug: - var: output.stdout_lines + var: output + +- name: Chmod bash script for image update + shell: "chmod +x /root/uashield/tools/ansible/update-build.sh" + +- name: Remove /root/cronjob file if exists + shell: "rm /root/cronjob" + ignore_errors: yes + +- name: Add every 30 minutes image update as a cronjob + shell: "sudo echo '*/3 * * * * /root/uashield/tools/ansible/update-build.sh' >> /root/cronjob" + +- name: Add every reboot image update as a cronjob + shell: "sudo echo '@reboot /root/uashield/tools/ansible/update-build.sh' >> /root/cronjob && crontab /root/cronjob" diff --git a/tools/ansible/update-build.sh b/tools/ansible/update-build.sh new file mode 100644 index 0000000..2fdcb56 --- /dev/null +++ b/tools/ansible/update-build.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +cd /root/uashield/ + +if git checkout master && + git fetch origin master && + [ `git rev-list HEAD...origin/master --count` != 0 ] && + git merge origin/master +then + echo 'Updated!' + sudo chmod +x /root/uashield/tools/ansible/update-build.sh + sudo docker-compose down -t 1 + sudo docker rmi -f uashield + sudo docker-compose up -d + docker ps +else + echo 'Not updated.' +fi \ No newline at end of file diff --git a/tools/ansible/vars/vars.yaml b/tools/ansible/vars/vars.yaml index ec4b48b..fc8f673 100644 --- a/tools/ansible/vars/vars.yaml +++ b/tools/ansible/vars/vars.yaml @@ -4,9 +4,7 @@ #Docker docker_version: 5.0.3 -docker_install_compose: true docker_users: [] -docker_pip_executable: pip3 #Uashield diff --git a/tools/protonvpn/README.MD b/tools/protonvpn/README.MD new file mode 100644 index 0000000..44a00df --- /dev/null +++ b/tools/protonvpn/README.MD @@ -0,0 +1,21 @@ +Run uashield under ProtonVPN. + +[Original docs for ProtonVPN in docker](https://tprasadtp.github.io/protonvpn-docker/#/README). + +## 1. Change settings in docker-compose.yml +- `PROTONVPN_USERNAME` - set username from OpenVPN/IKEv2 username account settings in ProtonVPN web interface +- `PROTONVPN_PASSWORD` - set password from OpenVPN/IKEv2 username account settings in ProtonVPN web interface +- `PROTONVPN_SERVER` - set server connect to. You can set `RANDOM` for random server from your plan +- `PROTONVPN_TIER` - Proton VPN Tier (0=Free, 1=Basic, 2=Pro, 3=Visionary) + +## 2. Run service + +`docker-compose up -d` - if you already have previously built uashield image +`docker-compose up -d --build` - if you want to build an image from scratch + +For checking your IP inside uashield container please run `docker exec -ti uashield-protonpvn wget -qO- https://ipecho.net/plain ;echo` + +## 3. Restart service + +`docker-compose down -t 15 && docker-compose up -d` + diff --git a/tools/protonvpn/docker-compose.yml b/tools/protonvpn/docker-compose.yml new file mode 100644 index 0000000..d52e58d --- /dev/null +++ b/tools/protonvpn/docker-compose.yml @@ -0,0 +1,45 @@ +version: '2.1' +services: + + protonvpn: + container_name: protonvpn + environment: + # Credentials + PROTONVPN_USERNAME: vWOBT489uo86CP3G + PROTONVPN_PASSWORD: zkM7hplVGpOrFx0rHHnWW708QBDQoALn + # Override these where applicable + PROTONVPN_SERVER: NL + PROTONVPN_TIER: 0 + # Always use semver tags, avoid using tag latest! + image: ghcr.io/tprasadtp/protonvpn:latest + restart: unless-stopped + networks: + - internet + cap_add: + - NET_ADMIN + devices: + - /dev/net/tun:/dev/net/tun + healthcheck: + test: ["CMD", "curl", "-f", "https://google.com"] + interval: 10s + timeout: 10s + retries: 3 + start_period: 15s + + uashield: + depends_on: + protonvpn: + condition: service_healthy + build: + context: ../../ + dockerfile: ./Dockerfile + restart: always + container_name: uashield-protonvpn + image: uashield:latest + environment: + WORKERS: '256' + USEPROXY: 'false' + network_mode: service:protonvpn + +networks: + internet: \ No newline at end of file