diff --git a/.gitignore b/.gitignore index 4781b59..5b9a0bd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,8 @@ # Docker secrets .secrets -# Ignore -.vpn.env +# Volumes +.volumes # VS Code .vscode diff --git a/.gitmodules b/.gitmodules index 5672fe2..e3ef3b6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,9 @@ [submodule "request"] path = request url = ssh://git@git.dlii.tech:222/Autoplex/request.git +[submodule "seeker"] + path = seeker + url = ssh://git@git.dlii.tech:222/Autoplex/seeker.git +[submodule "vpn"] + path = vpn + url = ssh://git@git.dlii.tech:222/Autoplex/vpn.git diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index c774562..51d4668 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -11,6 +11,14 @@ services: entrypoint: "/bin/sh" tty: true + seeker: + build: + target: base + volumes: + - ./seeker:/app + entrypoint: "/bin/sh" + tty: true + torrent_webui: build: target: base @@ -24,8 +32,6 @@ services: torrent_client: build: target: base - ports: - - 9229:9229 volumes: - ./torrent-client:/app # ulimits: diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index ccf4b76..0788175 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -7,7 +7,8 @@ services: environment: NODE_ENV: production -# torrent_webui: + torrent_webui: + restart: unless-stopped # build: # target: base # ports: @@ -17,7 +18,8 @@ services: # entrypoint: "/bin/sh" # tty: true -# torrent_client: + torrent_client: + restart: unless-stopped # build: # target: base # ports: diff --git a/docker-compose.yml b/docker-compose.yml index 3b29774..25e6b39 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,6 +14,7 @@ services: - "torrent_client" ports: - 3200:3200 + restart: unless-stopped secrets: - app_key - discord_bot_key @@ -24,6 +25,23 @@ services: volumes: - tmp:/tmp + seeker: + build: + context: ./seeker + depends_on: + - "database" + - "torrent_client" + env_file: + - ./seeker/.env + links: + - "database" + - "torrent_client" + restart: unless-stopped + secrets: + - mysql_root_password + volumes: + - tmp:/tmp + torrent_webui: build: context: ./torrent-webui @@ -47,10 +65,17 @@ services: context: ./torrent-client depends_on: - "database" + - "vpn" env_file: - ./torrent-client/.env - links: - - "database" + healthcheck: + test: ["CMD", "ping", "-q", "-c1", "google.com"] + interval: 5m + timeout: 10s + retries: 3 + start_period: 5m + network_mode: service:vpn + restart: unless-stopped secrets: - mysql_root_password volumes: @@ -59,11 +84,11 @@ services: database: image: mysql command: --default-authentication-plugin=mysql_native_password - restart: always environment: MYSQL_ROOT_PASSWORD_FILE: /run/secrets/mysql_root_password ports: - 33060:3306 + restart: unless-stopped security_opt: - seccomp=unconfined secrets: @@ -72,6 +97,34 @@ services: - ./database/init:/docker-entrypoint-initdb.d - mysql:/var/lib/mysql + vpn: + build: + context: ./vpn + cap_add: + - net_admin + command: + - '-f ""' + environment: + TZ: "CST6CDT" + links: + - "database" + networks: + - default + read_only: true + tmpfs: + - /run + - /tmp + restart: unless-stopped + secrets: + - vpn_auth + security_opt: + - label:disable + stdin_open: true + tty: true + volumes: + - /dev/net:/dev/net:z + - ./.volumes/vpn:/vpn + secrets: app_key: file: ./.secrets/app_key @@ -85,6 +138,8 @@ secrets: file: ./.secrets/tvdb_key tvdb_pin: file: ./.secrets/tvdb_pin + vpn_auth: + file: ./.secrets/vpn_auth volumes: mysql: diff --git a/generate_secrets.sh b/generate_secrets.sh index 66169de..28aa5e6 100755 --- a/generate_secrets.sh +++ b/generate_secrets.sh @@ -15,6 +15,7 @@ API_KEYS=( discord_bot_key tvdb_key tvdb_pin + vpn_auth ) # Store new API keys if available diff --git a/seeker b/seeker new file mode 160000 index 0000000..f36dd35 --- /dev/null +++ b/seeker @@ -0,0 +1 @@ +Subproject commit f36dd350fea3303944cf2f0ea095d4f6ced5fe49 diff --git a/vpn b/vpn new file mode 160000 index 0000000..4719b21 --- /dev/null +++ b/vpn @@ -0,0 +1 @@ +Subproject commit 4719b210c6991ee3110afa4883829d7db9d4bb65