resource "coder_app" "code_server" { agent_id = coder_agent.main.id slug = "code-server" display_name = "VS Code" url = "http://localhost:8080" icon = "/icon/code.svg" subdomain = true share = "owner" healthcheck { url = "http://localhost:8080/healthz" interval = 10 threshold = 5 } } resource "coder_app" "terminal" { agent_id = coder_agent.main.id slug = "terminal" display_name = "Terminal" icon = "/icon/terminal.svg" command = "bash" } resource "coder_app" "pgadmin" { count = local.services_enabled && data.coder_parameter.enable_pgadmin.value ? 1 : 0 agent_id = coder_agent.main.id slug = "pgadmin" display_name = "pgAdmin" url = "http://localhost:5050" icon = "/icon/postgres.svg" subdomain = true share = "owner" healthcheck { url = "http://localhost:5050" interval = 15 threshold = 5 } } resource "coder_app" "qdrant" { count = local.services_enabled ? 1 : 0 agent_id = coder_agent.main.id slug = "qdrant" display_name = "Qdrant" url = "http://localhost:6333" icon = "/icon/database.svg" subdomain = false share = "owner" healthcheck { url = "http://localhost:6333/health" interval = 30 threshold = 10 } } resource "coder_app" "jupyter" { count = data.coder_parameter.enable_jupyter.value ? 1 : 0 agent_id = coder_agent.main.id slug = "jupyter" display_name = "JupyterLab" url = "http://localhost:8888" icon = "/icon/jupyter.svg" subdomain = true share = "owner" healthcheck { url = "http://localhost:8888" interval = 20 threshold = 10 } } locals { dev_ports = { "dev-3000" = { display = "Web Dev (3000)" url = "http://localhost:3000" icon = "/icon/javascript.svg" } "api-8000" = { display = "API (8000)" url = "http://localhost:8000" icon = "/icon/node.svg" } "vite-5173" = { display = "Vite (5173)" url = "http://localhost:5173" icon = "/icon/typescript.svg" } } } resource "coder_app" "dev_ports" { for_each = local.dev_ports agent_id = coder_agent.main.id slug = each.key display_name = each.value.display url = each.value.url icon = each.value.icon subdomain = true share = "owner" healthcheck { url = each.value.url interval = 10 threshold = 10 } } resource "coder_app" "claude_cli" { count = data.coder_parameter.enable_ai_tools.value ? 1 : 0 agent_id = coder_agent.main.id slug = "claude-cli" display_name = "Claude CLI" icon = "/icon/claude.svg" command = "bash -lc 'claude --dangerously-skip-permissions'" group = "AI Tools" order = 10 } resource "coder_app" "codex_cli" { count = data.coder_parameter.enable_ai_tools.value ? 1 : 0 agent_id = coder_agent.main.id slug = "codex-cli" display_name = "Codex CLI" icon = "/icon/code.svg" command = "bash -lc 'codex --dangerously-bypass-approvals-and-sandbox'" group = "AI Tools" order = 20 }