149 lines
3.6 KiB
HCL
149 lines
3.6 KiB
HCL
terraform {
|
|
required_providers {
|
|
dotenv = {
|
|
source = "germanbrew/dotenv"
|
|
}
|
|
}
|
|
}
|
|
|
|
locals {
|
|
monitoring = true
|
|
|
|
# Define common healthcheck settings
|
|
healthcheck_interval = "30s"
|
|
healthcheck_retries = 10
|
|
}
|
|
|
|
# Create dedicated network for media server components
|
|
module "media_server_network" {
|
|
source = "../../01-networking/docker-network"
|
|
name = "media-server"
|
|
subnet = "11.102.0.0/16"
|
|
driver = "bridge"
|
|
}
|
|
|
|
# Import service modules
|
|
module "sonarr" {
|
|
source = "./services/sonarr"
|
|
|
|
user_id = var.user_id
|
|
group_id = var.group_id
|
|
timezone = var.timezone
|
|
volume_path = var.volume_path
|
|
data_root = var.data_root
|
|
networks = concat([module.media_server_network.name], var.networks)
|
|
monitoring = local.monitoring
|
|
}
|
|
|
|
module "radarr" {
|
|
source = "./services/radarr"
|
|
|
|
user_id = var.user_id
|
|
group_id = var.group_id
|
|
timezone = var.timezone
|
|
volume_path = var.volume_path
|
|
data_root = var.data_root
|
|
networks = concat([module.media_server_network.name], var.networks)
|
|
monitoring = local.monitoring
|
|
}
|
|
|
|
module "readarr" {
|
|
source = "./services/readarr"
|
|
|
|
user_id = var.user_id
|
|
group_id = var.group_id
|
|
timezone = var.timezone
|
|
volume_path = var.volume_path
|
|
data_root = var.data_root
|
|
networks = concat([module.media_server_network.name], var.networks)
|
|
monitoring = local.monitoring
|
|
}
|
|
|
|
module "jellyseerr" {
|
|
source = "./services/jellyseerr"
|
|
|
|
timezone = var.timezone
|
|
volume_path = var.volume_path
|
|
networks = concat([module.media_server_network.name], var.networks)
|
|
monitoring = local.monitoring
|
|
}
|
|
|
|
module "prowlarr" {
|
|
source = "./services/prowlarr"
|
|
|
|
user_id = var.user_id
|
|
group_id = var.group_id
|
|
timezone = var.timezone
|
|
volume_path = var.volume_path
|
|
networks = concat([module.media_server_network.name], var.networks)
|
|
monitoring = local.monitoring
|
|
}
|
|
|
|
module "qbittorrent" {
|
|
source = "./services/qbittorrent"
|
|
|
|
user_id = var.user_id
|
|
group_id = var.group_id
|
|
timezone = var.timezone
|
|
volume_path = var.volume_path
|
|
download_root = var.download_root
|
|
networks = concat([module.media_server_network.name], var.networks)
|
|
monitoring = local.monitoring
|
|
}
|
|
|
|
module "unpackerr" {
|
|
source = "./services/unpackerr"
|
|
|
|
user_id = var.user_id
|
|
group_id = var.group_id
|
|
timezone = var.timezone
|
|
download_root = var.download_root
|
|
sonarr_api_key = var.sonarr_api_key
|
|
radarr_api_key = var.radarr_api_key
|
|
networks = concat([module.media_server_network.name], var.networks)
|
|
monitoring = local.monitoring
|
|
}
|
|
|
|
module "jellyfin" {
|
|
source = "./services/jellyfin"
|
|
|
|
user_id = var.user_id
|
|
group_id = var.group_id
|
|
timezone = var.timezone
|
|
volume_path = var.volume_path
|
|
data_root = var.data_root
|
|
hostname = var.hostname
|
|
networks = concat([module.media_server_network.name], var.networks)
|
|
monitoring = local.monitoring
|
|
}
|
|
|
|
module "sabnzbd" {
|
|
source = "./services/sabnzbd"
|
|
|
|
user_id = var.user_id
|
|
group_id = var.group_id
|
|
timezone = var.timezone
|
|
volume_path = var.volume_path
|
|
data_root = var.data_root
|
|
networks = concat([module.media_server_network.name], var.networks)
|
|
monitoring = local.monitoring
|
|
}
|
|
|
|
module "flaresolverr" {
|
|
source = "./services/flaresolverr"
|
|
|
|
timezone = var.timezone
|
|
log_level = "info"
|
|
log_html = "false"
|
|
captcha_solver = "none"
|
|
networks = concat([module.media_server_network.name], var.networks)
|
|
monitoring = local.monitoring
|
|
}
|
|
|
|
module "autoheal" {
|
|
source = "./services/autoheal"
|
|
|
|
networks = concat([module.media_server_network.name], var.networks)
|
|
monitoring = local.monitoring
|
|
}
|