50 lines
1.3 KiB
HCL
50 lines
1.3 KiB
HCL
// Root module that orchestrates all environments
|
|
// This unified approach keeps a single entry point while organizing by function
|
|
|
|
// Network infrastructure
|
|
module "network" {
|
|
source = "./environments/network"
|
|
|
|
// Cloudflare variables
|
|
cloudflare_api_token = var.cloudflare_api_token
|
|
cloudflare_account_id = var.cloudflare_account_id
|
|
cloudflare_zone_id = var.cloudflare_zone_id
|
|
domain = var.domain
|
|
}
|
|
|
|
// Core infrastructure (monitoring, globals)
|
|
module "core" {
|
|
source = "./environments/core"
|
|
|
|
depends_on = [module.network]
|
|
|
|
timezone = var.timezone
|
|
|
|
// Watchtower variables
|
|
watchtower_enable_notifications = var.watchtower_enable_notifications
|
|
watchtower_notification_url = var.watchtower_notification_url
|
|
}
|
|
|
|
// Application services
|
|
module "services" {
|
|
source = "./environments/services"
|
|
|
|
depends_on = [module.core, module.network]
|
|
|
|
timezone = var.timezone
|
|
puid = var.puid
|
|
pgid = var.pgid
|
|
data_dir = var.data_dir
|
|
|
|
// ActualBudget variables
|
|
actualbudget_port = var.actualbudget_port
|
|
|
|
// EmulatorJS variables
|
|
emulatorjs_frontend_port = var.emulatorjs_frontend_port
|
|
emulatorjs_config_port = var.emulatorjs_config_port
|
|
emulatorjs_backend_port = var.emulatorjs_backend_port
|
|
|
|
// Docker network variables
|
|
default_networks = [module.network.homelab_docker_network_name]
|
|
}
|