refactor: simplify project structure
This commit is contained in:
59
main.tf
59
main.tf
@@ -1,49 +1,24 @@
|
||||
// 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
|
||||
module "cloudflare_globals" {
|
||||
source = "./modules/00-globals/cloudflare"
|
||||
}
|
||||
|
||||
// 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
|
||||
module "watchtower" {
|
||||
source = "./modules/20-services-apps/watchtower"
|
||||
}
|
||||
|
||||
// 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]
|
||||
source = "./services"
|
||||
}
|
||||
|
||||
module "homelab_cloudflared_tunnel" {
|
||||
source = "./modules/01-networking/cloudflared-tunnel"
|
||||
cloudflare_account_id = module.cloudflare_globals.cloudflare_account_id
|
||||
cloudflare_zone_id = module.cloudflare_globals.cloudflare_zone_id
|
||||
domain = module.cloudflare_globals.domain
|
||||
tunnel_name = "homelab"
|
||||
container_name = "cloudflared-homelab"
|
||||
service_definitions = module.services.service_definitions
|
||||
networks = [module.services.homelab_docker_network_name]
|
||||
monitoring = true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user