📄 startup.sh
#!/bin/bash

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