locals { module_dir = "../modules" root_volume = module.system_globals.volume_host volume_host = "${module.system_globals.volume_host}/appdata" data_host = "${module.system_globals.volume_host}/data" } module "system_globals" { source = "${local.module_dir}/00-globals/system" } // Docker network used for modules that needs to be exposed to the internet // using Cloudflared module "homelab_docker_network" { source = "${local.module_dir}/01-networking/docker-network" name = "homelab-network" driver = "bridge" attachable = true subnet = "10.100.0.0/16" } // Docker network used for media services module "media_docker_network" { source = "${local.module_dir}/01-networking/docker-network" name = "media-network" driver = "bridge" attachable = true subnet = "10.110.0.0/16" } module "calibre" { source = "${local.module_dir}/20-services-apps/calibre" volume_path = "${local.volume_host}/calibre" networks = [module.homelab_docker_network.name] } module "glance" { source = "${local.module_dir}/20-services-apps/glance" volume_path = "${local.volume_host}/glance" networks = [module.homelab_docker_network.name] } module "immich" { source = "${local.module_dir}/20-services-apps/immich" appdata_path = "${local.volume_host}/immich" library_path = "${local.data_host}/media/photos" networks = [module.homelab_docker_network.name] } module "jellyfin" { source = "${local.module_dir}/20-services-apps/jellyfin" volume_path = "${local.volume_host}/jellyfin" data_path = "${local.data_host}" networks = [module.media_docker_network.name, module.homelab_docker_network.name] } module "linkwarden" { source = "${local.module_dir}/20-services-apps/linkwarden" volume_path = "${local.volume_host}/linkwarden" networks = [module.homelab_docker_network.name] } module "portainer" { source = "${local.module_dir}/20-services-apps/portainer" volume_path = "${local.volume_host}/portainer" networks = [module.homelab_docker_network.name] }