- Dockerfile: install git + openssh-client in runtime image; pre-populate /root/.ssh/known_hosts with the Tailscale ssh-keyscan for 100.114.205.53:2222 (Gitea SSH). Without these, the bootstrap push step from inside the container fails with "command not found" or host-key prompts. - docker-compose.yml: mount ./secrets/boocode_gitea as /root/.ssh/id_ed25519:ro so the container can authenticate to Gitea over SSH for the initial push. - .gitignore: add secrets/ so the keypair never lands in the repo. - project_bootstrap.ts: rewrite the Gitea-returned ssh_url's hostname from git.indifferentketchup.com to 100.114.205.53 before adding it as origin, so the push hits the Tailscale interface that the known_hosts entry covers. - CreateProjectModal.tsx: preview label now reads "Folder: /opt/projects/<name>" to match the new BOOTSTRAP_ROOT (was /opt/). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
44 lines
1.1 KiB
YAML
44 lines
1.1 KiB
YAML
services:
|
|
boocode:
|
|
build: .
|
|
container_name: boocode
|
|
restart: unless-stopped
|
|
ports:
|
|
- "100.114.205.53:9500:3000"
|
|
env_file: .env
|
|
environment:
|
|
DATABASE_URL: postgres://boocode:${POSTGRES_PASSWORD}@boocode_db:5432/boocode
|
|
volumes:
|
|
# Read-only mount for legacy/existing project add-existing flow.
|
|
- /opt:/opt:ro
|
|
# Writable mount only for the create-new-project bootstrap target.
|
|
# Host must `mkdir -p /opt/projects` before container start.
|
|
- /opt/projects:/opt/projects:rw
|
|
- ./secrets/boocode_gitea:/root/.ssh/id_ed25519:ro
|
|
depends_on:
|
|
- boocode_db
|
|
networks:
|
|
- boocode_net
|
|
|
|
boocode_db:
|
|
image: postgres:16-alpine
|
|
container_name: boocode_db
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: boocode
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
POSTGRES_DB: boocode
|
|
ports:
|
|
- "127.0.0.1:5500:5432"
|
|
volumes:
|
|
- boocode_pgdata:/var/lib/postgresql/data
|
|
networks:
|
|
- boocode_net
|
|
|
|
volumes:
|
|
boocode_pgdata:
|
|
|
|
networks:
|
|
boocode_net:
|
|
driver: bridge
|