| name | coder-hahomelabs |
| description | Coder workspace environment for hahomelabs.com deployments. Includes networking, ports, convex config, nhost config |
Coder Workspace Environment (hahomelabs.com)
Context for projects running in this Coder workspace environment at hahomelabs.com.
Environment
You are running in a Coder development workspace:
| Property | Value |
|---|
| OS | Linux (Ubuntu/Debian-based) |
| Architecture | x86_64 |
| Container Runtime | Docker-in-Docker capability via envbox |
| Infrastructure | Kubernetes-managed workspace with persistent storage |
| Networking | Internal cluster networking with port forwarding capabilities |
| Shell | Bash |
| System Package Manager | apt/apt-get |
Available Tools
The following tools are pre-installed and available in this workspace:
| Tool | Command | Description |
|---|
| Docker | docker, docker-compose | Full container management capability |
| Kubernetes CLI | kubectl | Cluster access and management (requires VPN) |
| GitHub CLI | gh | Pre-configured with auto OAuth token refresh |
| VS Code Server | IDE with extensions | |
| Coder CLI | coder | Coder-specific workspace operations |
| PM2 | pm2 | Process manager for keeping Node.js services running in the background |
| Node.js (with pnpm) | node, pnpm | Node.js runtime and pnpm package manager |
| Convex CLI | npx convex | Available when Convex feature is enabled |
| Claude Code | claude | AI-powered CLI (custom installation via base image) |
| ccusage | ccusage | Claude Code usage monitoring utility |
| OpenCode | opencode | AI CLI tool |
Service URLs
Services use this URL pattern:
https://<service>--<workspace-name>--<username>.coder.hahomelabs.com
| Service | Port | URL Example |
|---|
| Dev server | 3000 | https://app--myproject--johndoe.coder.hahomelabs.com |
| Prod/preview | 3010 | https://app-prod--myproject--johndoe.coder.hahomelabs.com |
IMPORTANT: Always use full URLs. Do NOT use localhost: URLs as they cause issues with remote services, authentication, cookies, and cross-origin requests.
Optional Features (Enabled at Workspace Creation)
PostgreSQL (CloudNativePG)
When enabled, these environment variables are available:
POSTGRES_HOST
POSTGRES_PORT
POSTGRES_DATABASE
POSTGRES_USER
POSTGRES_PASSWORD
DATABASE_URL
DIRECT_URL
Database details:
- Database name:
app
- User:
app
- Read-write service:
${workspace_full_name}-db-rw
- Supports workspace-to-workspace cloning (same user only)
- Backup bucket:
workspace-cnpg-${owner}-${name}-${short_id}
S3 Storage (Ceph)
When enabled, these environment variables are available:
S3_ENDPOINT
S3_REGION
S3_BUCKET
AWS_S3_ENDPOINT
AWS_BUCKET
S3_BACKUP_ENDPOINT
S3_BACKUP_BUCKET
S3 details:
- Endpoint:
https://s3.us-central-1.hahomelabs.com
- Region:
us-central-1
- Max bucket size: 5GB
- Supports workspace-to-workspace cloning
Convex Backend
When enabled:
- Dashboard (
/convex): https://convex--<workspace>--<user>.coder.hahomelabs.com
- API (
/convex-api): https://convex-api--<workspace>--<user>.coder.hahomelabs.com
- Site Proxy (
/convex-site): https://convex-site--<workspace>--<user>.coder.hahomelabs.com
- S3 Proxy (
/convex-s3-proxy): https://convex-s3-proxy--<workspace>--<user>.coder.hahomelabs.com
- Convex CLI available via
npx convex
- Uses internal PostgreSQL and S3
Nhost Backend
When enabled:
- Dashboard (
/nhost-dashboard): https://nhost-dashboard--<workspace>--<user>.coder.hahomelabs.com
- Hasura Console (
/hasura): https://hasura--<workspace>--<user>.coder.hahomelabs.com
- MailHog (
/mailhog): https://mailhog--<workspace>--<user>.coder.hahomelabs.com
- Auth (hidden):
https://nhost-auth--<workspace>--<user>.coder.hahomelabs.com
- Functions (hidden):
https://nhost-functions--<workspace>--<user>.coder.hahomelabs.com
- Storage (hidden):
https://nhost-storage--<workspace>--<user>.coder.hahomelabs.com
- GraphQL (hidden):
https://nhost-graphql--<workspace>--<user>.coder.hahomelabs.com
- Uses internal PostgreSQL and S3
LLM Gateway
AI requests route through LiteLLM proxy with budget controls:
OPENAI_BASE_URL
LITELLM_BASE_URL
ANTHROPIC_AUTH_TOKEN
LITELLM_APP_API_KEY
Model mapping:
- Haiku → "small" (fast, low cost)
- Sonnet → "medium" (balanced)
- Opus → "large" (max capability)
Package Managers
System packages
sudo apt-get update
sudo apt-get install <package>
Node.js
Check lockfile to determine which to use:
pnpm-lock.yaml → Use pnpm
yarn.lock → Use yarn
package-lock.json → Use npm
bun.lockb → Use bun
Background Services
PM2 (Node.js processes)
pm2 status
pm2 logs
pm2 logs <app>
pm2 logs --lines 50 --nostream
pm2 restart <app>
Docker
docker ps
docker logs <container>
docker logs -f <container>
Workspace Scripts
| Script | Location | When it runs |
|---|
| Startup | start.sh | Workspace starts |
| Shutdown | stop.sh | Workspace stops |
Scripts are executed automatically by the Coder agent. Use them for:
- Starting development servers with PM2
- Running database migrations
- Setting up environment-specific configurations
- Graceful shutdown of services
Note: Startup script runs with 60-second timeout, then backgrounds if still running.
Platform-Specific Considerations
Docker Usage
- Docker commands work normally (this is not Docker Desktop)
- No special port mapping or host configurations needed
- Docker-in-Docker means containers run inside the workspace environment
File Paths
- Use standard Linux paths (not Windows or macOS formats)
- Relative paths for project files:
src/components/Header.tsx
- Absolute paths for system files:
/usr/local/bin/tool
Hardware Optimizations
- Target x86_64 architecture for any hardware-specific optimizations
- Do NOT use ARM/Apple Silicon-specific flags or binaries
- Modern Intel/AMD processor features are available
Environment Variables
CRITICAL: Before using or changing ANY environment variable, you MUST:
- Ask the user for permission - "May I check the environment variables?" or "May I use/change the X environment variable?"
- Explain what you need - Describe which variable(s) you need to access and why
- Wait for explicit approval - Do not proceed without user consent
To check available environment variables:
env | grep -i <pattern>
env
printenv
echo $VAR_NAME
Never modify environment variables without explicit user permission, as they may affect:
- API authentication and routing
- Service connections
- Model selection behavior
- Workspace functionality
Network Services
- Services run on standard Linux ports
- No macOS/Windows port conflicts to consider
- Internal cluster networking with port forwarding for external access
Workspace Cloning
- PostgreSQL cloning: Restores from source workspace backup
- S3 cloning: Syncs data from source workspace bucket
- Restriction: Can only clone from own workspaces (same user)
- Limitation: Source workspace name cannot contain hyphens
GitHub CLI
GitHub CLI (gh) is pre-configured with automatic OAuth token refresh. The token refreshes automatically via a wrapper function in .bashrc.
Gotchas
- File paths: Use standard Linux paths (
/home/coder/project)
- Architecture: x86_64 only (no ARM binaries)
- Environment variables: Ask user before accessing
- Service URLs: Use full URLs, not localhost
- Disk space: Home directory is persistent, size configurable
- Workspace cloning: Source workspaces with hyphens in name cannot be used
- Database: PostgreSQL database name is always
app, user is always app
Capabilities
You can help with:
- Code Development: Writing, reviewing, and debugging code
- Concept Explanations: Explaining complex programming concepts
- Best Practices: Suggesting optimizations and patterns
- Architecture: Helping with design decisions
- Troubleshooting: Debugging technical issues
- Documentation: Providing comments and docs
- DevOps: Infrastructure and deployment tasks
- Containers: Docker and Kubernetes operations
Response Guidelines
- Provide clear, concise, and accurate responses
- Consider the context of the workspace and the user's current task
- Account for the Linux x86_64 environment in all recommendations
- For Coder CLI commands and workspace management, reference the
coder-workspace-management skill