diff --git a/main.tf b/main.tf index 97cb5ac..a8288f6 100644 --- a/main.tf +++ b/main.tf @@ -49,6 +49,13 @@ module "tt-rss" { traefik-labels = "${var.traefik-common-labels}" } +module "resilio" { + source = "resilio" + domain = "sync.bb8.fun" + traefik-labels = "${var.traefik-common-labels}" + ips = "${var.ips}" +} + module "heimdall" { source = "heimdall" domain = "bb8.fun" diff --git a/media/ombi.tf b/media/ombi.tf index 5effb67..0227eef 100644 --- a/media/ombi.tf +++ b/media/ombi.tf @@ -33,6 +33,6 @@ resource docker_container "ombi" { links = [ "${var.links-emby}", "${docker_container.sonarr.name}", - "${docker_container.radarr.name}" + "${docker_container.radarr.name}", ] } diff --git a/resilio/main.tf b/resilio/main.tf new file mode 100644 index 0000000..f3c4576 --- /dev/null +++ b/resilio/main.tf @@ -0,0 +1,51 @@ +data "docker_registry_image" "resilio-sync" { + name = "linuxserver/resilio-sync:latest" +} + +resource "docker_image" "resilio-sync" { + name = "${data.docker_registry_image.resilio-sync.name}" + pull_triggers = ["${data.docker_registry_image.resilio-sync.sha256_digest}"] +} + +resource "docker_container" "resilio-sync" { + name = "resilio-sync" + image = "${docker_image.resilio-sync.latest}" + + restart = "unless-stopped" + destroy_grace_seconds = 30 + must_run = true + + ports { + internal = 8888 + external = 8888 + ip = "${var.ips["eth0"]}" + } + + ports { + internal = 55555 + external = 55555 + ip = "${var.ips["eth0"]}" + } + + volumes { + host_path = "/mnt/xwing/data/resilio-sync" + container_path = "/sync" + } + + volumes { + host_path = "/mnt/xwing/config/resilio-sync" + container_path = "/config" + } + + volumes { + host_path = "/mnt/xwing/media/DL" + container_path = "/downloads" + } + + labels = "${merge( + var.traefik-labels, + map( + "traefik.frontend.rule", "Host:${var.domain}", + "traefik.port", 8888, + ))}" +} diff --git a/resilio/variables.tf b/resilio/variables.tf new file mode 100644 index 0000000..4ba20d6 --- /dev/null +++ b/resilio/variables.tf @@ -0,0 +1,9 @@ +variable "traefik-labels" { + type = "map" +} + +variable "ips" { + type = "map" +} + +variable "domain" {}