Files
code-tools/terraform/apps.tf
2025-09-29 14:14:30 +00:00

162 lines
5.3 KiB
HCL

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://pgadmin-${local.workspace_id}:5050"
icon = "/icon/postgres.svg"
subdomain = false
share = "owner"
healthcheck {
url = "http://pgadmin-${local.workspace_id}: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://qdrant-${local.workspace_id}:6333"
icon = "/icon/database.svg"
subdomain = false
share = "owner"
healthcheck {
url = "http://qdrant-${local.workspace_id}:6333/health"
interval = 30
threshold = 10
}
}
resource "coder_app" "marimo" {
count = data.coder_parameter.enable_marimo.value ? 1 : 0
agent_id = coder_agent.main.id
slug = "marimo"
display_name = "Marimo"
url = "http://localhost:8888"
icon = "/icon/python.svg"
subdomain = false
share = "owner"
group = "Development Services"
}
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_endpoints_enabled ? 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"
group = "Development Services"
}
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 Code"
icon = "/icon/claude.svg"
command = "bash -lc 'exec sudo -u coder -i bash -c \"export GEM_HOME=/home/coder/.gem; export GEM_PATH=/home/coder/.gem; cd /workspaces && 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"
icon = "/icon/openai.svg"
command = "bash -lc 'exec sudo -u coder -i bash -c \"export GEM_HOME=/home/coder/.gem; export GEM_PATH=/home/coder/.gem; cd /workspaces && codex --dangerously-bypass-approvals-and-sandbox\"'"
group = "AI Tools"
order = 20
}
resource "coder_app" "gemini_cli" {
count = data.coder_parameter.enable_ai_tools.value ? 1 : 0
agent_id = coder_agent.main.id
slug = "gemini-cli"
display_name = "Gemini CLI"
icon = "/icon/google.svg"
command = "bash -lc 'exec sudo -u coder -i bash -c \"export GEM_HOME=/home/coder/.gem; export GEM_PATH=/home/coder/.gem; cd /workspaces && gemini\"'"
group = "AI Tools"
order = 30
}
resource "coder_app" "superfile" {
agent_id = coder_agent.main.id
slug = "superfile"
display_name = "File Explorer"
icon = "/icon/folder.svg"
command = "bash -lc 'exec sudo -u coder -i bash -c \"export GEM_HOME=/home/coder/.gem; export GEM_PATH=/home/coder/.gem; cd /workspaces && spf\"'"
group = "Terminal Tools"
order = 10
}
resource "coder_app" "lazygit" {
agent_id = coder_agent.main.id
slug = "lazygit"
display_name = "Git Manager"
icon = "/icon/git.svg"
command = "bash -lc 'exec sudo -u coder -i bash -c \"export GEM_HOME=/home/coder/.gem; export GEM_PATH=/home/coder/.gem; cd /workspaces && lazygit\"'"
group = "Terminal Tools"
order = 20
}
resource "coder_app" "lazydocker" {
agent_id = coder_agent.main.id
slug = "lazydocker"
display_name = "Docker Manager"
icon = "/icon/docker.svg"
command = "bash -lc 'exec sudo -u coder -i bash -c \"export GEM_HOME=/home/coder/.gem; export GEM_PATH=/home/coder/.gem; cd /workspaces && lazydocker\"'"
group = "Terminal Tools"
order = 30
}
resource "coder_app" "btop" {
agent_id = coder_agent.main.id
slug = "btop"
display_name = "System Monitor"
icon = "/icon/chart.svg"
command = "bash -lc 'exec sudo -u coder -i bash -c \"export GEM_HOME=/home/coder/.gem; export GEM_PATH=/home/coder/.gem; btop\"'"
group = "Terminal Tools"
order = 40
}
resource "coder_app" "logs_viewer" {
agent_id = coder_agent.main.id
slug = "logs-viewer"
display_name = "Log Viewer"
icon = "/icon/terminal.svg"
command = "bash -lc 'exec sudo -u coder -i bash -c \"export GEM_HOME=/home/coder/.gem; export GEM_PATH=/home/coder/.gem; echo \\\"=== Workspace Logs ===\\\" && tail -f /tmp/*.log 2>/dev/null || echo \\\"No log files found in /tmp/\\\"\"'"
group = "Terminal Tools"
order = 50
}