Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added ProtonVPN container #186

Open
wants to merge 25 commits into
base: 0.0.x
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
4c070ce
ref: change branch to dev for tests
Mar 3, 2022
f1b5c6d
ref: change repo to dmpanch for tests
Mar 3, 2022
217f5a5
Merge pull request #3 from opengs/master
dmpanch Mar 3, 2022
d96e193
ref: disabled proxy
Mar 3, 2022
cbda8fe
ref: changed branch to master
Mar 3, 2022
a6c4c8f
ref: added --no-cache option to the docker-compose
Mar 3, 2022
79a2309
ref: added image name to the docker-compose
Mar 3, 2022
8022539
ref: added step for removing old uashield images and containers
Mar 3, 2022
3f8d5b8
ref: added -f key for approving images/containers removing
Mar 3, 2022
cdb6fe2
ref: replaced image/container prune command with system prune
Mar 3, 2022
1763724
ref: added check step if docker-compose installed
Mar 3, 2022
1e1d6c2
ref: removed build/no-cache/force-recreate keys
Mar 3, 2022
471cb02
ref: remove only uashield image/container insted of all before running
Mar 3, 2022
3f8a581
ref: removed container removing step
Mar 3, 2022
79b1449
ref: changed repo URL to original
Mar 3, 2022
fd6f1c3
ref: enable proxy
Mar 3, 2022
64819dc
ref: removed pip installatino, installing docker compose with curl
Mar 3, 2022
6bcc9fc
Merge branch 'master' of https://github.com/opengs/uashield into open…
Mar 6, 2022
e67801e
0.0.x (#15)
dmpanch Mar 8, 2022
de04bd7
Feat/ansible autoupdate (#16)
dmpanch Mar 8, 2022
856806c
Feat/ansible autoupdate (#19)
dmpanch Mar 8, 2022
236a2d7
Merge branch '0.0.x' into 0.0.x
dmpanch Mar 8, 2022
efb0d96
feat: added docker-compose with protonvpn
dmpanch Mar 9, 2022
d806d19
feat: added healthcheck for protonvpn before uashield run. Docker-com…
dmpanch Mar 9, 2022
2b93e6c
ref: typo fix
dmpanch Mar 9, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion tools/ansible/hosts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[servers]
10.10.10.10
10.10.10.11
10.10.10.11
57 changes: 24 additions & 33 deletions tools/ansible/roles/uashield/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -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"
18 changes: 18 additions & 0 deletions tools/ansible/update-build.sh
Original file line number Diff line number Diff line change
@@ -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
2 changes: 0 additions & 2 deletions tools/ansible/vars/vars.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@
#Docker

docker_version: 5.0.3
docker_install_compose: true
docker_users: []
docker_pip_executable: pip3

#Uashield

Expand Down
21 changes: 21 additions & 0 deletions tools/protonvpn/README.MD
Original file line number Diff line number Diff line change
@@ -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`

45 changes: 45 additions & 0 deletions tools/protonvpn/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -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: