dev-setup.sh
41 lines1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/bash
# Congo Dev — host setup script (runs before container start)
# Called by `congo launch` via infra.json service setup.
# Data directories are created by the container itself (coder.go).
set -euo pipefail
echo "=== Congo Dev host setup ==="
mkdir -p /opt/congo-dev
# Auth secret (generate once)
if [ ! -f /opt/congo-dev/auth-secret ]; then
openssl rand -hex 32 > /opt/congo-dev/auth-secret
echo "Generated auth secret"
fi
# Setup token (generate once, deleted after first account creation)
if [ ! -f /opt/congo-dev-setup-token ]; then
openssl rand -hex 16 > /opt/congo-dev-setup-token
echo "Setup token: $(cat /opt/congo-dev-setup-token)"
fi
# SSH keypair (generate once for connecting to/from this server)
if [ ! -f /root/.ssh/id_ed25519 ]; then
ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -N "" -C "congo-dev"
cat /root/.ssh/id_ed25519.pub >> /root/.ssh/authorized_keys
echo "Generated SSH keypair and authorized locally"
fi
# Docker network for code-server and user-deployed services
# (the "internal" network is also created by congo launch for infra containers,
# but we ensure it here so code-server can start immediately)
docker network create internal 2>/dev/null || true
# Pull code-server image if not present
if ! docker image inspect codercom/code-server:4.111.0 >/dev/null 2>&1; then
echo "Pulling code-server image..."
docker pull codercom/code-server:4.111.0
fi
echo "=== Congo Dev host setup complete ==="