From 4200d701057ff43cefd332adfbe6e79eb0f46787 Mon Sep 17 00:00:00 2001 From: Luigi Oliveira Date: Tue, 26 Nov 2024 04:10:17 -0300 Subject: [PATCH] deluge deployment --- terraform-lab/main.tf | 6 +++ terraform-lab/modules/deluge/conf/deluge.hcl | 56 ++++++++++++++++++++ terraform-lab/modules/deluge/job.tf | 4 ++ terraform-lab/modules/deluge/providers.tf | 9 ++++ terraform-lab/modules/freqtrade/job.tf | 3 ++ 5 files changed, 78 insertions(+) create mode 100644 terraform-lab/modules/deluge/conf/deluge.hcl create mode 100644 terraform-lab/modules/deluge/job.tf create mode 100644 terraform-lab/modules/deluge/providers.tf diff --git a/terraform-lab/main.tf b/terraform-lab/main.tf index 01a15ff..64825f6 100644 --- a/terraform-lab/main.tf +++ b/terraform-lab/main.tf @@ -12,3 +12,9 @@ module "freqtrade" { username = var.username password = var.password } +module "deluge" { + source = "./modules/deluge" + providers = { + nomad = nomad + } +} diff --git a/terraform-lab/modules/deluge/conf/deluge.hcl b/terraform-lab/modules/deluge/conf/deluge.hcl new file mode 100644 index 0000000..b8350ca --- /dev/null +++ b/terraform-lab/modules/deluge/conf/deluge.hcl @@ -0,0 +1,56 @@ +job "deluge" { + datacenters = ["marioverde"] + type = "service" + + group "deluge" { + count = 1 + + network { + port "http" { static = 8112 } + port "tcp1" { static = 58846 } + port "tcp2" { static = 58946 } + } + + service { + port = "http" + name = "deluge" + provider = "nomad" + tags = [ + "traefik.enable=true", + "traefik.http.routers.deluge_http.entrypoints=web,websecure", + "traefik.http.routers.deluge_http.rule=Host(`deluge.marioverde.com.br`)", + ] + check { + type = "http" + path = "/" + interval = "10s" + timeout = "2s" + } + } + + task "deluge" { + driver = "podman" + + config { + image = "docker.io/linuxserver/deluge:2.1.1" + network_mode = "host" + ports = ["http", "tcp1", "tcp2"] + privileged = "true" + volumes = [ + "/etc/deluge:/config", + "/opt/media/deluge:/downloads", + ] + } + + env { + PUID = "0" + PGID = "0" + } + + resources { + cpu = 2000 + memory = 2048 + } + } + } +} \ No newline at end of file diff --git a/terraform-lab/modules/deluge/job.tf b/terraform-lab/modules/deluge/job.tf new file mode 100644 index 0000000..85d9baa --- /dev/null +++ b/terraform-lab/modules/deluge/job.tf @@ -0,0 +1,4 @@ +resource "nomad_job" "app" { + jobspec = templatefile("${path.module}/conf/deluge.hcl", {}) + +} \ No newline at end of file diff --git a/terraform-lab/modules/deluge/providers.tf b/terraform-lab/modules/deluge/providers.tf new file mode 100644 index 0000000..9744cce --- /dev/null +++ b/terraform-lab/modules/deluge/providers.tf @@ -0,0 +1,9 @@ +terraform { + required_providers { + nomad = { + source = "hashicorp/nomad" + version = "2.4.0" + } + } + required_version = ">= 0.14" +} \ No newline at end of file diff --git a/terraform-lab/modules/freqtrade/job.tf b/terraform-lab/modules/freqtrade/job.tf index d7800a3..d47c115 100644 --- a/terraform-lab/modules/freqtrade/job.tf +++ b/terraform-lab/modules/freqtrade/job.tf @@ -7,6 +7,9 @@ resource "nomad_job" "app" { exchange_password = var.exchange_password, telegram_token = var.telegram_token, telegram_chat_id = var.telegram_chat_id + jwt_secret_key = var.jwt_secret_key + username = var.username + password = var.password }) STRATEGY_NAME = file("${path.module}/conf/strategy.py") })