# Configure Beads Dolt Remote

Configured a persistent beads/Dolt sync remote for this repo using the server-hosted Forgejo instance at `git.deltaisland.io`, published Dolt data to `refs/dolt/data`, and documented the operational constraints around Nginx Proxy Manager, HTTPS, and SSH reachability.

Generated: 2026-05-17 06:36 EDT

Beads issue: islandflow-8kj Remote published HTTPS validated SSH follow-up: islandflow-zsy

## Summary

The repo now has a committed beads sync target in `.beads/config.yaml` and the server now has the required local tooling and credentials to run `bd dolt push` successfully against Forgejo over HTTPS.

## Changes Made

- Installed `bd` 1.0.4 for the `delta` user.
- Installed `dolt` 2.0.3 in `~/.local/bin`.
- Configured a persistent local Forgejo credential for non-interactive beads/Dolt pushes on this server.
- Added the public beads sync URL to `.beads/config.yaml`:

    sync:
      remote: git+https://git.deltaisland.io/dirtydishes/islandflow.git

- Published the current Dolt history to Forgejo and verified `refs/dolt/data` exists on the remote.
- Created a follow-up issue for SSH reachability via DNS/Cloudflare: `islandflow-zsy`.

## Context

This repo already used beads locally, but it had no Dolt remote configured. Earlier work in the repo had explicitly noted that `bd dolt pull` was unavailable because no remote existed.

The server already hosted Forgejo behind Nginx Proxy Manager at `git.deltaisland.io`, which made an HTTPS-backed beads remote the lowest-friction persistent option.

## Important Implementation Details

- The public remote URL for collaborators is: `git+https://git.deltaisland.io/dirtydishes/islandflow.git`
- The actual server-side push path is authenticated locally with a Forgejo personal access token stored only on the server, so the committed repo configuration does not contain secrets.
- The Nginx Proxy Manager host for `git.deltaisland.io` already proxies Forgejo on ports 80/443, so no new public port exposure was needed for the working HTTPS path.
- A dedicated Forgejo SSH key was also prepared on the server, but end-to-end SSH to `git.deltaisland.io:2222` is still blocked by the current DNS/proxy setup rather than by the host listener itself.

## Expected Impact for End-Users

- Future clones can bootstrap beads from the server-backed remote instead of starting with an empty local database.
- Operators can now run `bd dolt push` on this server without manual one-off setup.
- Beads issue history is now backed by a persistent remote rather than being local-only state.

## Validation

- `bd version` → 1.0.4
- `dolt version` → 2.0.3
- `bd dolt push` completed successfully.
- `git ls-remote https://git.deltaisland.io/dirtydishes/islandflow.git refs/dolt/data` returned a ref.
- `ss -tulpn` confirmed listeners on 80, 443, and 2222.
- Inspected the Nginx Proxy Manager config for `git.deltaisland.io` and confirmed HTTPS proxying to the Forgejo container.

## Issues, Limitations, and Mitigations

- SSH hostname reachability: Forgejo is listening on host port `2222`, but the current public hostname resolves through a proxy path that does not complete SSH connections. HTTPS remains the supported path today.
- Server-local credential material: a local Forgejo token was required so this server can push beads data non-interactively. The secret was kept out of tracked repo files.
- Pre-existing repo dirtiness: unrelated local changes already existed in this working tree and were intentionally left untouched.

## Follow-up Work

- `islandflow-zsy` — expose Forgejo SSH on a direct DNS hostname if SSH-based Git/beads sync should work publicly.
- If additional machines need write access, create Forgejo credentials or PATs for those operators and use the public HTTPS remote above.