Commit:
bf640b0Parent:
9fad089Persistent configs: git, OpenCode, agent skills
- startup.sh: restore git config (~/.gitconfig, ~/.ssh) from /bigger/codefactory/config/git/ on startup, persist on shutdown - docker-compose.yml: mount /bigger/codefactory/config/git as /root/git_config (read-only) - /bigger/codefactory/config/skills/deploy_to_portainer.md: agent skill for deploying to Portainer + Traefik (example) - README.md: updated to reflect persistent configs
README.md
+9
-3
diff --git a/README.md b/README.md
index c10362a..e2d4512 100644
@@ -37,8 +37,14 @@ homelab stack.
MVP deployed. OpenCode is reachable at `codefactory.xn--sberg-lra.net` and can
read/write repos under `/repos` and build Docker images via the mounted socket.
Persistent config lives under `/bigger/codefactory/`.
Persistent config lives under `/bigger/codefactory/` and includes:
- **Git config**: `~/.gitconfig`, SSH keys, and credentials restored from
`/bigger/codefactory/config/git/` on startup and persisted on shutdown.
- **OpenCode/agent config**: Mounted at `/root/.config/opencode/` and persisted
across restarts.
- **Agent skills**: Custom skills (e.g., `deploy_to_portainer.md`) stored in
`/bigger/codefactory/config/skills/` and loaded into OpenCode.
See `PLAN.md` for upcoming work (Docker-in-Docker for dev builds, per-project
SDKs, dev-server exposure via Traefik sub-sub-domains, agent skills for
deploying to Portainer + Traefik, etc.).
SDKs, dev-server exposure via Traefik sub-sub-domains, etc.).
docker-compose.yml
+1
-0
diff --git a/docker-compose.yml b/docker-compose.yml
index 46b5dc3..3bd1645 100644
@@ -10,6 +10,7 @@ services:
- /var/run/docker.sock:/var/run/docker.sock:rw
- /big/repos:/repos:rw
- /bigger/codefactory/config:/root/.config/opencode/:rw
- /bigger/codefactory/config/git:/root/git_config/:ro
- /bigger/codefactory/workspace:/code/:rw
environment:
AUTH: <hidden>
startup.sh
+22
-0
diff --git a/startup.sh b/startup.sh
index 7bb2e0d..807c0fc 100644
@@ -2,6 +2,28 @@
set -euo pipefail
# Function to persist git config on shutdown
persist_git_config() {
echo "Persisting git config to /bigger/codefactory/config/git..."
mkdir -p /bigger/codefactory/config/git/.ssh
cp -r ~/.gitconfig ~/.ssh /bigger/codefactory/config/git/ 2>/dev/null || true
chmod 700 /bigger/codefactory/config/git/.ssh
chmod 600 /bigger/codefactory/config/git/.ssh/*
}
# Restore git config and SSH keys from persisted volume
if [ -d "/bigger/codefactory/config/git" ]; then
echo "Restoring git config from /bigger/codefactory/config/git..."
cp -r /bigger/codefactory/config/git/. ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
fi
# Trap to persist git config on shutdown
trap persist_git_config EXIT
# Import OpenCode auth
echo "$AUTH" | /root/.opencode/bin/opencode auth import
# Start OpenCode serve
exec /root/.opencode/bin/opencode serve --hostname 0.0.0.0 --port 80