Commit Graph

14 Commits

Author SHA1 Message Date
Deeman
7a1d031bc8 feat: disable Gitea self-registration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 18:00:54 +01:00
Deeman
83843a6647 fix: re-enable Gitea SSH, expose on port 2222
SSH is needed for git operations (git@server:repo.git).
HTTP stays localhost-only (accessed via SSH tunnel for UI).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 17:36:51 +01:00
Deeman
71a1386f13 fix: bind Gitea to 127.0.0.1 only — not exposed to internet
nginx proxy manager reaches it via localhost. No reason to bind to all interfaces.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 17:31:18 +01:00
Deeman
4b1c2d1509 fix: change Gitea host port 3000 → 3100 (3000 already in use)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 17:29:25 +01:00
Deeman
08fd5e82c4 chore: recover compose files from running containers 2026-02-27 17:28:28 +01:00
Deeman
e8fb7eef38 feat: add reverse rsync to summary + use ssh hetzner_root in next steps
After bootstrap, prints rsync commands to pull recovered compose files
back to the workstation for committing. All server commands shown as
ssh hetzner_root '...' for copy-paste convenience.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 17:27:26 +01:00
Deeman
0d65ed73f7 fix: cd /tmp before uv run to avoid /root/uv.toml permission error
sudo -u infra_service inherits the working dir (/root), causing uv to
fail reading /root/uv.toml. Running from /tmp avoids the permission issue.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 17:24:47 +01:00
Deeman
012aa13f3e fix: replace abandoned docker-autocompose with inline Python script
docker-autocompose 1.0.1 uses distutils (removed in Python 3.12) and
the old docker SDK (docker.Client). Replace with a small inline script
using docker>=7.0 + pyyaml, run via uv --with inline dependencies.

Uses com.docker.compose.service label for correct service names.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 17:18:50 +01:00
Deeman
90258d8b98 fix: use correct uvx invocation for docker-autocompose
Package installs 'autocompose' executable, not 'docker-autocompose'.
Correct form: uvx --from docker-autocompose autocompose

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 17:16:35 +01:00
Deeman
99e65eab50 refactor: two-phase setup — setup.sh (user/dirs/uv) + bootstrap.sh (recover/deploy)
Matches the beanflows pattern. No GitLab dependency — repo reaches the
server via rsync, Gitea becomes the remote once it's running.

setup.sh    — pipeable phase 1: infra_service user, /opt/server-infra,
              /data/server-infra, uv installation
bootstrap.sh — pipeable phase 2: validates prereqs, recovers umami +
              reverse-proxy compose files, creates data dirs, sets ownership

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 16:17:09 +01:00
Deeman
780007c1d3 fix: check /root/.local/bin/uvx first since setup.sh runs as root
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 16:02:44 +01:00
Deeman
c7b85fd27b fix: remove padelnomics recovery — only shared services belong here
setup.sh only recovers umami and nginx proxy manager.
Padelnomics is an app-specific concern for its own repo.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 16:01:17 +01:00
Deeman
ad89c4d413 feat: add Gitea service (SQLite, HTTPS-only)
- gitea/docker-compose.yml: single container, SQLite, port 3000, data at
  /data/server-infra/gitea/
- setup.sh: restructure to separate recovery (one-time) from deploy (idempotent)
  for all services; add data dirs for gitea; loop over all services on deploy

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 15:49:45 +01:00
Deeman
bf99afd3b5 chore: initial repo structure with recovery setup script
setup.sh recovers docker-compose files from running containers via
uvx docker-autocompose, creates infra_service system user, and deploys
to /opt/server-infra/.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 15:30:41 +01:00