135 lines
3.3 KiB
HCL
135 lines
3.3 KiB
HCL
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
|
|
}
|