Files
gluebox-ops/80_infrastructure/gitea-access.md

2.2 KiB

Gitea Access & Authentication Guide

This document defines the standard for accessing the Gluebox Gitea instance. Following these rules prevents the "uid: 0" (User Not Found) and "SSH Disabled" errors encountered during initial setup.

Because Gitea runs as a system-level service under the gitea user, standard git@ strings will fail.

  • SSH Username: gitea
  • Host: code.gluebox.com
  • Verification: Run ssh -T gitea@code.gluebox.com from your Mac.
    • Success: "Hi there, [user]! You've successfully authenticated..."
  • Clone Format:
    git clone gitea@code.gluebox.com:tux/rsvp-system-core.git
    

2. Fallback Access: HTTPS & API Tokens

If SSH is unavailable, use a Personal Access Token (PAT). Note that Gitea requires internal loopback to be configured for tokens to validate correctly.

  • Auth Header: Authorization: token <YOUR_TOKEN>
  • Validation Test:
    curl -H "Authorization: token <TOKEN>" [https://code.gluebox.com/api/v1/user](https://code.gluebox.com/api/v1/user)
    
  • Troubleshooting: If the response returns "uid: 0", the server's LOCAL_ROOT_URL is likely missing or misconfigured.

3. Mandatory Server Configuration (app.ini)

The following values in /etc/gitea/app.ini are critical for maintaining access:

Section Key Required Value Reason
[server] RUN_USER gitea Defines the SSH system user.
[server] OFFLINE_MODE false Enables internal API/Avatar resolution.
[server] DISABLE_SSH false Enables the Gitea SSH wrapper.
[server] LOCAL_ROOT_URL http://localhost:3000/ Fixes the "uid: 0" token verification bug.

4. Mac Local Setup Fixes

If authentication hangs or defaults to a password prompt:

  1. Clear Mac Keychain interference:
    git config --global --unset credential.helper
    
  2. Fix SSH Key Permissions:
    chmod 700 ~/.ssh && chmod 600 ~/.ssh/id_ed25519
    
  3. Resync (Server Side): If keys are added in the UI but rejected by the server, go to Site Admin > Dashboard and run "Resynchronize SSH authorized_keys file".