diff --git a/modules/01-networking/cloudflared-tunnel/main.tf b/modules/01-networking/cloudflared-tunnel/main.tf index c0c083a..2865d95 100644 --- a/modules/01-networking/cloudflared-tunnel/main.tf +++ b/modules/01-networking/cloudflared-tunnel/main.tf @@ -73,7 +73,7 @@ resource "cloudflare_zero_trust_tunnel_cloudflared_config" "this" { } module "dns_records" { - source = "../../10-services-generic/cloudflare-dns" + source = "../../10-services-generic/cloudflare-dns" zone_id = var.cloudflare_zone_id hostnames = [ for rule in local.all_ingress_rules : diff --git a/modules/10-services-generic/docker-service/main.tf b/modules/10-services-generic/docker-service/main.tf index ec8ad30..14d09f3 100644 --- a/modules/10-services-generic/docker-service/main.tf +++ b/modules/10-services-generic/docker-service/main.tf @@ -71,7 +71,7 @@ resource "docker_container" "service_container" { # Set the network mode (bridge, host, etc.) network_mode = local.network_mode - + # Add host mappings (entries for /etc/hosts) dynamic "host" { for_each = var.host_mappings @@ -139,15 +139,15 @@ resource "docker_container" "service_container" { cpu_shares = var.cpu_shares # Other container options - dns = var.dns - dns_search = var.dns_search - hostname = var.hostname - domainname = var.domainname - user = var.user - working_dir = var.working_dir - command = var.command - entrypoint = var.entrypoint - privileged = var.privileged + dns = var.dns + dns_search = var.dns_search + hostname = var.hostname + domainname = var.domainname + user = var.user + working_dir = var.working_dir + command = var.command + entrypoint = var.entrypoint + privileged = var.privileged destroy_grace_seconds = var.destroy_grace_seconds # Set log options diff --git a/modules/10-services-generic/docker-service/variables.tf b/modules/10-services-generic/docker-service/variables.tf index 281bef3..fd1cb3a 100644 --- a/modules/10-services-generic/docker-service/variables.tf +++ b/modules/10-services-generic/docker-service/variables.tf @@ -201,8 +201,8 @@ variable "log_driver" { variable "log_opts" { description = "Log driver options" type = map(string) - default = { - max-size = "10m" - max-file = "3" + default = { + max-size = "10m" + max-file = "3" } } diff --git a/modules/20-services-apps/actualbudget/main.tf b/modules/20-services-apps/actualbudget/main.tf index cc9adf3..f1cf633 100644 --- a/modules/20-services-apps/actualbudget/main.tf +++ b/modules/20-services-apps/actualbudget/main.tf @@ -46,7 +46,7 @@ output "service_definition" { name = local.container_name primary_port = local.exposed_port endpoint = "http://${local.container_name}:${local.exposed_port}" - subdomains = local.subdomains - publish_via = "tunnel" + subdomains = local.subdomains + publish_via = "tunnel" } } diff --git a/modules/20-services-apps/calibre/main.tf b/modules/20-services-apps/calibre/main.tf index 5dfb224..aa7cbb2 100644 --- a/modules/20-services-apps/calibre/main.tf +++ b/modules/20-services-apps/calibre/main.tf @@ -42,13 +42,13 @@ variable "timezone" { } locals { - container_name = "calibre-web-automated" - calibre_image = "crocodilestick/calibre-web-automated" - calibre_tag = var.image_tag - monitoring = true - env_file = "${path.module}/.env" - calibre_internal_port = 8083 - docker_mods = "lscr.io/linuxserver/mods:universal-calibre-v7.16.0" + container_name = "calibre-web-automated" + calibre_image = "crocodilestick/calibre-web-automated" + calibre_tag = var.image_tag + monitoring = true + env_file = "${path.module}/.env" + calibre_internal_port = 8083 + docker_mods = "lscr.io/linuxserver/mods:universal-calibre-v7.16.0" # Define volumes calibre_volumes = [ diff --git a/modules/20-services-apps/copyparty/main.tf b/modules/20-services-apps/copyparty/main.tf index 1f7e581..ffb05ea 100644 --- a/modules/20-services-apps/copyparty/main.tf +++ b/modules/20-services-apps/copyparty/main.tf @@ -58,17 +58,17 @@ locals { } module "copyparty" { - source = "../../10-services-generic/docker-service" - container_name = local.container_name - image = local.image - tag = local.tag - user = local.user - volumes = local.volumes - env_vars = local.env_vars - networks = var.networks - monitoring = local.monitoring + source = "../../10-services-generic/docker-service" + container_name = local.container_name + image = local.image + tag = local.tag + user = local.user + volumes = local.volumes + env_vars = local.env_vars + networks = var.networks + monitoring = local.monitoring destroy_grace_seconds = 15 - ports = [ + ports = [ { internal = local.internal_port external = local.internal_port diff --git a/modules/20-services-apps/crawl4ai/main.tf b/modules/20-services-apps/crawl4ai/main.tf index 61200be..d16ce66 100644 --- a/modules/20-services-apps/crawl4ai/main.tf +++ b/modules/20-services-apps/crawl4ai/main.tf @@ -24,13 +24,13 @@ variable "networks" { } locals { - container_name = "crawl4ai" - image = "unclecode/crawl4ai" - image_tag = var.image_tag - monitoring = true - service_port = provider::dotenv::get_by_key("PORT", local.env_file) - env_file = "${path.module}/.env" - + container_name = "crawl4ai" + image = "unclecode/crawl4ai" + image_tag = var.image_tag + monitoring = true + service_port = provider::dotenv::get_by_key("PORT", local.env_file) + env_file = "${path.module}/.env" + # Define volumes default_volumes = [ { @@ -56,15 +56,15 @@ locals { # Environment variables env_vars = { - OPENAI_API_KEY = provider::dotenv::get_by_key("OPENAI_API_KEY", local.env_file) - DEEPSEEK_API_KEY = provider::dotenv::get_by_key("DEEPSEEK_API_KEY", local.env_file) + OPENAI_API_KEY = provider::dotenv::get_by_key("OPENAI_API_KEY", local.env_file) + DEEPSEEK_API_KEY = provider::dotenv::get_by_key("DEEPSEEK_API_KEY", local.env_file) ANTHROPIC_API_KEY = provider::dotenv::get_by_key("ANTHROPIC_API_KEY", local.env_file) - GROQ_API_KEY = provider::dotenv::get_by_key("GROQ_API_KEY", local.env_file) - TOGETHER_API_KEY = provider::dotenv::get_by_key("TOGETHER_API_KEY", local.env_file) - MISTRAL_API_KEY = provider::dotenv::get_by_key("MISTRAL_API_KEY", local.env_file) - GEMINI_API_TOKEN = provider::dotenv::get_by_key("GEMINI_API_TOKEN", local.env_file) + GROQ_API_KEY = provider::dotenv::get_by_key("GROQ_API_KEY", local.env_file) + TOGETHER_API_KEY = provider::dotenv::get_by_key("TOGETHER_API_KEY", local.env_file) + MISTRAL_API_KEY = provider::dotenv::get_by_key("MISTRAL_API_KEY", local.env_file) + GEMINI_API_TOKEN = provider::dotenv::get_by_key("GEMINI_API_TOKEN", local.env_file) } - + # Healthcheck configuration healthcheck = { test = ["CMD", "curl", "-f", "http://localhost:${local.service_port}/health"] diff --git a/modules/20-services-apps/n8n/main.tf b/modules/20-services-apps/n8n/main.tf index 59258b5..361c0e9 100644 --- a/modules/20-services-apps/n8n/main.tf +++ b/modules/20-services-apps/n8n/main.tf @@ -133,17 +133,17 @@ locals { ] n8n_mcp_env_vars = { - MCP_MODE = "http" - USE_FIXED_HTTP = "true" - AUTH_TOKEN = provider::dotenv::get_by_key("N8N_MCP_AUTH_TOKEN", local.env_file) - N8N_API_URL = "http://${local.container_name}:${local.n8n_internal_port}" - N8N_API_KEY = provider::dotenv::get_by_key("N8N_API_KEY", local.env_file) - NODE_ENV = "production" - LOG_LEVEL = "info" - PORT = local.n8n_mcp_internal_port - NODE_DB_PATH = "/app/data/nodes.db" - REBUILD_ON_START = "false" - GENERIC_TIMEZONE = module.system_globals.timezone + MCP_MODE = "http" + USE_FIXED_HTTP = "true" + AUTH_TOKEN = provider::dotenv::get_by_key("N8N_MCP_AUTH_TOKEN", local.env_file) + N8N_API_URL = "http://${local.container_name}:${local.n8n_internal_port}" + N8N_API_KEY = provider::dotenv::get_by_key("N8N_API_KEY", local.env_file) + NODE_ENV = "production" + LOG_LEVEL = "info" + PORT = local.n8n_mcp_internal_port + NODE_DB_PATH = "/app/data/nodes.db" + REBUILD_ON_START = "false" + GENERIC_TIMEZONE = module.system_globals.timezone } n8n_mcp_healthcheck = { diff --git a/modules/20-services-apps/nocodb/main.tf b/modules/20-services-apps/nocodb/main.tf index 1c2488b..6ad0501 100644 --- a/modules/20-services-apps/nocodb/main.tf +++ b/modules/20-services-apps/nocodb/main.tf @@ -42,7 +42,7 @@ locals { postgres_user = provider::dotenv::get_by_key("DB_USERNAME", local.env_file) postgres_password = provider::dotenv::get_by_key("DB_PASSWORD", local.env_file) postgres_db = provider::dotenv::get_by_key("DB_DATABASE", local.env_file) - + # Define volumes nocodb_volumes = [ { @@ -51,7 +51,7 @@ locals { read_only = false } ] - + postgres_volumes = [ { host_path = "${var.volume_path}/postgres/data" @@ -62,9 +62,9 @@ locals { # Environment variables for postgres postgres_env_vars = { - POSTGRES_USER = local.postgres_user - POSTGRES_PASSWORD = local.postgres_password - POSTGRES_DB = local.postgres_db + POSTGRES_USER = local.postgres_user + POSTGRES_PASSWORD = local.postgres_password + POSTGRES_DB = local.postgres_db POSTGRES_INITDB_ARGS = "--data-checksums" POSTGRES_HOST_AUTH_METHOD = "trust" } diff --git a/services/main.tf b/services/main.tf index 36002fa..fa316b0 100755 --- a/services/main.tf +++ b/services/main.tf @@ -39,8 +39,8 @@ module "calibre" { } module "copyparty" { - source = "${local.module_dir}/20-services-apps/copyparty" - fileshare_path = "${local.root_volume}" + source = "${local.module_dir}/20-services-apps/copyparty" + fileshare_path = local.root_volume config_path = "${local.volume_host}/copyparty" networks = [module.homelab_docker_network.name] }