Compare commits

...

4 Commits

Author SHA1 Message Date
Chris Farhood 1b0fd73d9b Merge pull request #55 from farhoodliquor/fix/init-home-before-git-config
fix(init-repo): create $HOME before git config on fresh volumes
2026-03-18 23:28:50 -04:00
Chris Farhood ed0ca39976 Merge pull request #57 from farhoodliquor/fix/update-cpfarhood-to-farhoodliquor
fix: replace stale cpfarhood references with farhoodliquor
2026-03-18 23:25:48 -04:00
Nick "Goose" Bradshaw 55c2afaeb1 fix: replace all stale cpfarhood references with farhoodliquor
After repo transfer from cpfarhood to farhoodliquor org, update all
references across docs, CI workflows, Makefile, Helm chart configs,
and memory files.

Closes #56

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 02:13:40 +00:00
DevContainer User d3365a71f6 feat: bump dependencies and add kubectl, k9s, Flux CLI
Update pinned versions: Node.js 22→24 LTS, Helm 3.17→4.1, Go 1.23→1.26.
Add kubectl, k9s, and Flux CLI to the container image.
Update MCP sidecars: kubernetes v0.0.59, flux-operator v0.45.0,
mcp-helm v1.3.3, homeassistant 7.1.0.
Bump chart version to 2.7.0.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 15:00:54 +00:00
13 changed files with 53 additions and 36 deletions
+3 -3
View File
@@ -4,7 +4,7 @@
### 1️⃣ For Releases → **Unified Release** ### 1️⃣ For Releases → **Unified Release**
Use this for all version releases: Use this for all version releases:
1. Go to [Actions → Unified Release](https://github.com/cpfarhood/devcontainer/actions/workflows/release-unified.yaml) 1. Go to [Actions → Unified Release](https://github.com/farhoodliquor/devcontainer/actions/workflows/release-unified.yaml)
2. Click "Run workflow" 2. Click "Run workflow"
3. Either: 3. Either:
- Enter specific version (e.g., `0.2.1`), OR - Enter specific version (e.g., `0.2.1`), OR
@@ -15,12 +15,12 @@ Use this for all version releases:
- ✅ Updates chart version - ✅ Updates chart version
- ✅ Creates git tag - ✅ Creates git tag
- ✅ Builds Docker image with all proper tags - ✅ Builds Docker image with all proper tags
- ✅ Publishes Helm chart to GitHub Pages (`https://cpfarhood.github.io/devcontainer`) - ✅ Publishes Helm chart to GitHub Pages (`https://farhoodliquor.github.io/devcontainer`)
- ✅ Creates GitHub Release with changelog - ✅ Creates GitHub Release with changelog
### 2️⃣ For Quick Fixes → **Quick Fix Build** ### 2️⃣ For Quick Fixes → **Quick Fix Build**
Use this for emergency fixes without version changes: Use this for emergency fixes without version changes:
1. Go to [Actions → Quick Fix Build](https://github.com/cpfarhood/devcontainer/actions/workflows/quick-fix.yaml) 1. Go to [Actions → Quick Fix Build](https://github.com/farhoodliquor/devcontainer/actions/workflows/quick-fix.yaml)
2. Click "Run workflow" 2. Click "Run workflow"
3. Enter tag (default: `latest`) 3. Enter tag (default: `latest`)
4. Click "Run workflow" 4. Click "Run workflow"
+4 -4
View File
@@ -130,7 +130,7 @@ jobs:
<body> <body>
<h1>Dev Container Helm Chart Repository</h1> <h1>Dev Container Helm Chart Repository</h1>
<p>Add this repository to Helm:</p> <p>Add this repository to Helm:</p>
<pre>helm repo add devcontainer https://cpfarhood.github.io/devcontainer</pre> <pre>helm repo add devcontainer https://farhoodliquor.github.io/devcontainer</pre>
<p>Install the chart:</p> <p>Install the chart:</p>
<pre>helm install mydev devcontainer/devcontainer --set name=mydev</pre> <pre>helm install mydev devcontainer/devcontainer --set name=mydev</pre>
</body> </body>
@@ -144,9 +144,9 @@ jobs:
# Copy chart package and rebuild index # Copy chart package and rebuild index
cp "$CHART_TGZ" "$PAGES_DIR/" cp "$CHART_TGZ" "$PAGES_DIR/"
if [ -f "$PAGES_DIR/index.yaml" ]; then if [ -f "$PAGES_DIR/index.yaml" ]; then
helm repo index "$PAGES_DIR" --url https://cpfarhood.github.io/devcontainer --merge "$PAGES_DIR/index.yaml" helm repo index "$PAGES_DIR" --url https://farhoodliquor.github.io/devcontainer --merge "$PAGES_DIR/index.yaml"
else else
helm repo index "$PAGES_DIR" --url https://cpfarhood.github.io/devcontainer helm repo index "$PAGES_DIR" --url https://farhoodliquor.github.io/devcontainer
fi fi
# Commit and push # Commit and push
@@ -181,7 +181,7 @@ jobs:
### Helm Chart ### Helm Chart
\`\`\`bash \`\`\`bash
helm repo add devcontainer https://cpfarhood.github.io/devcontainer helm repo add devcontainer https://farhoodliquor.github.io/devcontainer
helm repo update helm repo update
helm install mydev devcontainer/devcontainer --version ${VERSION} --set name=mydev helm install mydev devcontainer/devcontainer --version ${VERSION} --set name=mydev
\`\`\` \`\`\`
+1 -1
View File
@@ -95,4 +95,4 @@ Use this template for future releases:
- Vulnerability fixes - Vulnerability fixes
``` ```
[Unreleased]: https://github.com/cpfarhood/devcontainer/compare/v1.0.0...HEAD [Unreleased]: https://github.com/farhoodliquor/devcontainer/compare/v1.0.0...HEAD
+5 -5
View File
@@ -21,7 +21,7 @@ The stack is primarily **Bash scripts + YAML** — there is no Node.js package,
```bash ```bash
make build # Build Docker image make build # Build Docker image
make build REGISTRY=ghcr.io/myuser IMAGE_TAG=v1.0 # Custom registry/tag make build REGISTRY=ghcr.io/myuser IMAGE_TAG=v1.0 # Custom registry/tag
docker build -t ghcr.io/cpfarhood/devcontainer:latest . # Direct build docker build -t ghcr.io/farhoodliquor/devcontainer:latest . # Direct build
``` ```
### Running Locally ### Running Locally
@@ -70,7 +70,7 @@ Container start
| File | Purpose | | File | Purpose |
|------|---------| |------|---------|
| `Dockerfile` | Image definition — installs Chrome, VSCode, Helm, gh CLI, kubeseal, Claude Code, OpenCode, Crush, LSP servers (pyright, typescript-language-server, gopls, clangd, rust-analyzer, lua-language-server, jdtls, kotlin-language-server, intelephense); creates non-root user (UID 1000) | | `Dockerfile` | Image definition — installs Chrome, VSCode, Helm, gh CLI, kubectl, k9s, Flux CLI, kubeseal, Claude Code, OpenCode, Crush, LSP servers (pyright, typescript-language-server, gopls, clangd, rust-analyzer, lua-language-server, jdtls, kotlin-language-server, intelephense); creates non-root user (UID 1000) |
| `scripts/init-repo.sh` | Configures git credentials, clones GitHub repo(s), generates multi-root workspace file | | `scripts/init-repo.sh` | Configures git credentials, clones GitHub repo(s), generates multi-root workspace file |
| `scripts/startapp.sh` | Calls init-repo.sh then opens VSCode in the workspace | | `scripts/startapp.sh` | Calls init-repo.sh then opens VSCode in the workspace |
| `chart/` | Helm chart for Kubernetes deployment | | `chart/` | Helm chart for Kubernetes deployment |
@@ -197,11 +197,11 @@ helm install my-devcontainer ./chart -f custom-values.yaml
### CI/CD ### CI/CD
- **`build-and-push.yaml`** — Builds and pushes to GHCR on every push to `main`, version tags (`v*`), and PRs. Tags: `latest` (main), semver, branch name, commit SHA. - **`build-and-push.yaml`** — Builds and pushes to GHCR on every push to `main`, version tags (`v*`), and PRs. Tags: `latest` (main), semver, branch name, commit SHA.
- **`release-unified.yaml`** — Manual release workflow: bumps chart version, builds Docker image, publishes Helm chart to GitHub Pages (`https://cpfarhood.github.io/devcontainer`), and creates GitHub Release. - **`release-unified.yaml`** — Manual release workflow: bumps chart version, builds Docker image, publishes Helm chart to GitHub Pages (`https://farhoodliquor.github.io/devcontainer`), and creates GitHub Release.
- **`dependabot.yml`** — Weekly updates for GitHub Actions and Docker base image. - **`dependabot.yml`** — Weekly updates for GitHub Actions and Docker base image.
Image registry: `ghcr.io/cpfarhood/devcontainer` Image registry: `ghcr.io/farhoodliquor/devcontainer`
Helm repo: `https://cpfarhood.github.io/devcontainer` Helm repo: `https://farhoodliquor.github.io/devcontainer`
## Kubernetes Notes ## Kubernetes Notes
+3 -3
View File
@@ -15,7 +15,7 @@ This guide provides step-by-step instructions for deploying the Antigravity Dev
### 1. Clone the Repository ### 1. Clone the Repository
```bash ```bash
git clone https://github.com/cpfarhood/devcontainer.git git clone https://github.com/farhoodliquor/devcontainer.git
cd devcontainer cd devcontainer
``` ```
@@ -433,5 +433,5 @@ kubectl run backup --image=busybox --restart=Never --rm -i --tty \
## Support ## Support
For issues or questions: For issues or questions:
- GitHub Issues: https://github.com/cpfarhood/devcontainer/issues - GitHub Issues: https://github.com/farhoodliquor/devcontainer/issues
- Documentation: https://github.com/cpfarhood/devcontainer - Documentation: https://github.com/farhoodliquor/devcontainer
+20 -3
View File
@@ -60,7 +60,7 @@ exec /usr/bin/google-chrome-stable \\\n\
chmod +x /usr/local/bin/google-chrome chmod +x /usr/local/bin/google-chrome
# Install Node.js LTS via NodeSource # Install Node.js LTS via NodeSource
ARG NODE_MAJOR=22 ARG NODE_MAJOR=24
RUN curl -fsSL https://deb.nodesource.com/setup_${NODE_MAJOR}.x | bash - && \ RUN curl -fsSL https://deb.nodesource.com/setup_${NODE_MAJOR}.x | bash - && \
apt-get install -y nodejs && \ apt-get install -y nodejs && \
rm -rf /var/lib/apt/lists/* && \ rm -rf /var/lib/apt/lists/* && \
@@ -91,7 +91,7 @@ RUN CRUSH_VERSION=$(curl -sL https://api.github.com/repos/charmbracelet/crush/re
rm -rf /tmp/crush* rm -rf /tmp/crush*
# Install Helm CLI for Kubernetes chart management # Install Helm CLI for Kubernetes chart management
ARG HELM_VERSION=3.17.1 ARG HELM_VERSION=4.1.3
RUN curl -fsSL "https://get.helm.sh/helm-v${HELM_VERSION}-linux-amd64.tar.gz" | \ RUN curl -fsSL "https://get.helm.sh/helm-v${HELM_VERSION}-linux-amd64.tar.gz" | \
tar -xz --strip-components=1 -C /usr/local/bin linux-amd64/helm && \ tar -xz --strip-components=1 -C /usr/local/bin linux-amd64/helm && \
chmod +x /usr/local/bin/helm chmod +x /usr/local/bin/helm
@@ -117,13 +117,30 @@ RUN KUBESEAL_VERSION=$(curl -sL https://api.github.com/repos/bitnami-labs/sealed
tar -xz -C /usr/local/bin kubeseal && \ tar -xz -C /usr/local/bin kubeseal && \
chmod +x /usr/local/bin/kubeseal chmod +x /usr/local/bin/kubeseal
# Install kubectl CLI for Kubernetes cluster management
RUN KUBECTL_VERSION=$(curl -sL https://dl.k8s.io/release/stable.txt) && \
curl -fsSL "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl" -o /usr/local/bin/kubectl && \
chmod +x /usr/local/bin/kubectl
# Install k9s terminal UI for Kubernetes
RUN K9S_VERSION=$(curl -sL https://api.github.com/repos/derailed/k9s/releases/latest | jq -r '.tag_name') && \
curl -fsSL "https://github.com/derailed/k9s/releases/download/${K9S_VERSION}/k9s_Linux_amd64.tar.gz" | \
tar -xz -C /usr/local/bin k9s && \
chmod +x /usr/local/bin/k9s
# Install Flux CLI for GitOps operations
RUN FLUX_VERSION=$(curl -sL https://api.github.com/repos/fluxcd/flux2/releases/latest | jq -r '.tag_name' | sed 's/^v//') && \
curl -fsSL "https://github.com/fluxcd/flux2/releases/download/v${FLUX_VERSION}/flux_${FLUX_VERSION}_linux_amd64.tar.gz" | \
tar -xz -C /usr/local/bin flux && \
chmod +x /usr/local/bin/flux
# ── LSP servers for Claude Code language intelligence ── # ── LSP servers for Claude Code language intelligence ──
# npm-based LSP servers: Python (pyright), TypeScript/JavaScript, PHP # npm-based LSP servers: Python (pyright), TypeScript/JavaScript, PHP
RUN npm install -g pyright typescript-language-server typescript intelephense RUN npm install -g pyright typescript-language-server typescript intelephense
# Install Go runtime and gopls LSP server # Install Go runtime and gopls LSP server
ARG GO_VERSION=1.23.6 ARG GO_VERSION=1.26.1
RUN curl -fsSL "https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar -xz -C /usr/local && \ RUN curl -fsSL "https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar -xz -C /usr/local && \
/usr/local/go/bin/go install golang.org/x/tools/gopls@latest && \ /usr/local/go/bin/go install golang.org/x/tools/gopls@latest && \
mv /root/go/bin/gopls /usr/local/bin/gopls && \ mv /root/go/bin/gopls /usr/local/bin/gopls && \
+2 -2
View File
@@ -1,7 +1,7 @@
.PHONY: build push run stop clean help .PHONY: build push run stop clean help
# Variables # Variables
REGISTRY ?= ghcr.io/cpfarhood REGISTRY ?= ghcr.io/farhoodliquor
IMAGE_NAME ?= devcontainer IMAGE_NAME ?= devcontainer
IMAGE_TAG ?= latest IMAGE_TAG ?= latest
FULL_IMAGE = $(REGISTRY)/$(IMAGE_NAME):$(IMAGE_TAG) FULL_IMAGE = $(REGISTRY)/$(IMAGE_NAME):$(IMAGE_TAG)
@@ -99,7 +99,7 @@ help:
@echo " helm-port-forward - Port forward to localhost" @echo " helm-port-forward - Port forward to localhost"
@echo "" @echo ""
@echo "Variables:" @echo "Variables:"
@echo " REGISTRY - Docker registry (default: ghcr.io/cpfarhood)" @echo " REGISTRY - Docker registry (default: ghcr.io/farhoodliquor)"
@echo " IMAGE_NAME - Image name (default: devcontainer)" @echo " IMAGE_NAME - Image name (default: devcontainer)"
@echo " IMAGE_TAG - Image tag (default: latest)" @echo " IMAGE_TAG - Image tag (default: latest)"
@echo " RELEASE_NAME - Helm release name (default: mydev)" @echo " RELEASE_NAME - Helm release name (default: mydev)"
+6 -6
View File
@@ -1,6 +1,6 @@
# Dev Container # Dev Container
![Build and Push](https://github.com/cpfarhood/devcontainer/actions/workflows/build-and-push.yaml/badge.svg) ![Build and Push](https://github.com/farhoodliquor/devcontainer/actions/workflows/build-and-push.yaml/badge.svg)
A containerized cloud development environment with web-based GUI access, featuring: A containerized cloud development environment with web-based GUI access, featuring:
- **VSCode or Google Antigravity** via browser-based VNC (port 5800) - **VSCode or Google Antigravity** via browser-based VNC (port 5800)
@@ -18,7 +18,7 @@ A containerized cloud development environment with web-based GUI access, featuri
```bash ```bash
# Add the Helm repository # Add the Helm repository
helm repo add devcontainer https://cpfarhood.github.io/devcontainer helm repo add devcontainer https://farhoodliquor.github.io/devcontainer
helm repo update helm repo update
# Deploy with one command # Deploy with one command
@@ -131,7 +131,7 @@ The Helm chart uses a logical organization with these main sections:
| `ide.type` | `vscode` | IDE to launch — `vscode`, `antigravity`, or `none` (see below) | | `ide.type` | `vscode` | IDE to launch — `vscode`, `antigravity`, or `none` (see below) |
| `ssh.enabled` | `false` | Also start an OpenSSH server on port 22 (additive, any IDE) | | `ssh.enabled` | `false` | Also start an OpenSSH server on port 22 (additive, any IDE) |
| `fileManager.enabled` | `false` | Enable the built-in web file manager for upload/download | | `fileManager.enabled` | `false` | Enable the built-in web file manager for upload/download |
| `image.repository` | `ghcr.io/cpfarhood/devcontainer` | Container image | | `image.repository` | `ghcr.io/farhoodliquor/devcontainer` | Container image |
| `image.tag` | `latest` | Image tag | | `image.tag` | `latest` | Image tag |
### IDE choice ### IDE choice
@@ -418,7 +418,7 @@ docker run -d \
-e GITHUB_TOKEN="ghp_..." \ -e GITHUB_TOKEN="ghp_..." \
-e VNC_PASSWORD="changeme" \ -e VNC_PASSWORD="changeme" \
-v $(pwd)/home:/home \ -v $(pwd)/home:/home \
ghcr.io/cpfarhood/devcontainer:latest ghcr.io/farhoodliquor/devcontainer:latest
``` ```
--- ---
@@ -426,8 +426,8 @@ docker run -d \
## Building ## Building
```bash ```bash
docker build -t ghcr.io/cpfarhood/devcontainer:latest . docker build -t ghcr.io/farhoodliquor/devcontainer:latest .
docker push ghcr.io/cpfarhood/devcontainer:latest docker push ghcr.io/farhoodliquor/devcontainer:latest
``` ```
The image is also built and pushed automatically by CI on every push to `main` and on version tags (`v*`). The image is also built and pushed automatically by CI on every push to `main` and on version tags (`v*`).
+1 -1
View File
@@ -37,7 +37,7 @@ Complete reference for all configurable values in the Antigravity Dev Container
### image.repository ### image.repository
- **Type:** String - **Type:** String
- **Default:** `ghcr.io/cpfarhood/devcontainer` - **Default:** `ghcr.io/farhoodliquor/devcontainer`
- **Description:** Container image repository - **Description:** Container image repository
### image.tag ### image.tag
+1 -1
View File
@@ -2,7 +2,7 @@ apiVersion: v2
name: devcontainer name: devcontainer
description: Dev Container with AI coding agents and MCP sidecars description: Dev Container with AI coding agents and MCP sidecars
type: application type: application
version: 2.6.0 version: 2.7.0
appVersion: "latest" appVersion: "latest"
keywords: keywords:
- development - development
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"$schema": "http://json-schema.org/draft-07/schema#", "$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://github.com/cpfarhood/devcontainer/chart/values.schema.json", "$id": "https://github.com/farhoodliquor/devcontainer/chart/values.schema.json",
"title": "Dev Container Helm Chart Values Schema", "title": "Dev Container Helm Chart Values Schema",
"description": "Schema for validating values.yaml in the Dev Container Helm chart", "description": "Schema for validating values.yaml in the Dev Container Helm chart",
"type": "object", "type": "object",
+5 -5
View File
@@ -7,7 +7,7 @@ name: ""
# Container image configuration # Container image configuration
image: image:
repository: ghcr.io/cpfarhood/devcontainer repository: ghcr.io/farhoodliquor/devcontainer
tag: latest tag: latest
pullPolicy: Always pullPolicy: Always
@@ -93,7 +93,7 @@ mcp:
enabled: true enabled: true
image: image:
repository: quay.io/containers/kubernetes_mcp_server repository: quay.io/containers/kubernetes_mcp_server
tag: v0.0.57 tag: v0.0.59
port: 8080 port: 8080
resources: resources:
requests: requests:
@@ -108,7 +108,7 @@ mcp:
enabled: true enabled: true
image: image:
repository: ghcr.io/controlplaneio-fluxcd/flux-operator-mcp repository: ghcr.io/controlplaneio-fluxcd/flux-operator-mcp
tag: v0.41.1 tag: v0.45.0
port: 8081 port: 8081
resources: resources:
requests: requests:
@@ -124,7 +124,7 @@ mcp:
enabled: false enabled: false
image: image:
repository: ghcr.io/zekker6/mcp-helm repository: ghcr.io/zekker6/mcp-helm
tag: v1.3.1 tag: v1.3.3
port: 8012 port: 8012
resources: resources:
requests: requests:
@@ -139,7 +139,7 @@ mcp:
enabled: false # Requires HOMEASSISTANT_URL and HOMEASSISTANT_TOKEN enabled: false # Requires HOMEASSISTANT_URL and HOMEASSISTANT_TOKEN
image: image:
repository: ghcr.io/homeassistant-ai/ha-mcp repository: ghcr.io/homeassistant-ai/ha-mcp
tag: "6.7.1" tag: "7.1.0"
port: 8087 port: 8087
resources: resources:
requests: requests:
+1 -1
View File
@@ -1,7 +1,7 @@
# Antigravity Dev Container - Session Notes # Antigravity Dev Container - Session Notes
## Key Architecture Facts ## Key Architecture Facts
- Image: `ghcr.io/cpfarhood/devcontainer:latest` (repo name is `devcontainer`, not `antigravity`) - Image: `ghcr.io/farhoodliquor/devcontainer:latest` (repo name is `devcontainer`, not `antigravity`)
- Deployed via Helm chart (`chart/`), not kustomize anymore - Deployed via Helm chart (`chart/`), not kustomize anymore
- Service must NOT be headless (`clusterIP: None`) — Cilium gateway can't route to headless services - Service must NOT be headless (`clusterIP: None`) — Cilium gateway can't route to headless services
- `SECURE_CONNECTION=0` — TLS is terminated at the gateway, not the app - `SECURE_CONNECTION=0` — TLS is terminated at the gateway, not the app