75 lines
1.6 KiB
HCL
75 lines
1.6 KiB
HCL
|
|
locals {
|
|
emby_labels = merge(var.traefik-labels, {
|
|
"traefik.frontend.rule" = "Host:emby.in.${var.domain},emby.${var.domain}"
|
|
"traefik.frontend.passHostHeader" = "true"
|
|
"traefik.port" = 8096
|
|
})
|
|
}
|
|
|
|
resource "docker_container" "emby" {
|
|
name = "emby"
|
|
image = docker_image.emby.image_id
|
|
|
|
# SSD holds both the cache and data
|
|
volumes {
|
|
host_path = "/mnt/zwing/config/emby"
|
|
container_path = "/config"
|
|
}
|
|
|
|
# We keep the cache separate
|
|
# So the config directory isn't bloated
|
|
volumes {
|
|
host_path = "/mnt/zwing/cache/emby"
|
|
container_path = "/config/cache"
|
|
}
|
|
|
|
# We want backups on the HDD
|
|
volumes {
|
|
host_path = "/mnt/xwing/backups/config/emby"
|
|
container_path = "/backups"
|
|
}
|
|
|
|
# And mount the media as well
|
|
volumes {
|
|
host_path = "/mnt/xwing/media"
|
|
container_path = "/media"
|
|
}
|
|
|
|
dynamic "labels" {
|
|
for_each = local.emby_labels
|
|
content {
|
|
label = labels.key
|
|
value = labels.value
|
|
}
|
|
}
|
|
|
|
networks = [docker_network.media.id, var.traefik-network-id]
|
|
|
|
memory = 2048
|
|
restart = "unless-stopped"
|
|
destroy_grace_seconds = 10
|
|
must_run = true
|
|
|
|
# This breaks every time we upgrade the kernel
|
|
# or the nvidia driver, and needs a reboot.
|
|
gpus = "all"
|
|
|
|
# Running as lounge:tatooine
|
|
env = [
|
|
"UID=1004",
|
|
"GID=1003",
|
|
"GIDLIST=1003"
|
|
]
|
|
}
|
|
|
|
resource "docker_image" "emby" {
|
|
name = data.docker_registry_image.emby.name
|
|
pull_triggers = [data.docker_registry_image.emby.sha256_digest]
|
|
}
|
|
|
|
data "docker_registry_image" "emby" {
|
|
name = "emby/embyserver:latest"
|
|
}
|
|
|