190 lines
5.9 KiB
HCL
190 lines
5.9 KiB
HCL
resource "coder_app" "code_server" {
|
|
agent_id = coder_agent.main.id
|
|
slug = "code-server"
|
|
display_name = "VS Code"
|
|
url = "http://localhost:13337?folder=/workspaces"
|
|
icon = "/icon/code.svg"
|
|
subdomain = false
|
|
share = "owner"
|
|
|
|
healthcheck {
|
|
url = "http://localhost:13337/healthz"
|
|
interval = 10
|
|
threshold = 5
|
|
}
|
|
}
|
|
|
|
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/dashboard"
|
|
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"
|
|
|
|
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"
|
|
group = "Development Services"
|
|
|
|
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 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
|
|
}
|