kdusek 97f224746c Fix permission denied when removing existing borg binary during system installation
- Add sudo prefix to rm command when installing system-wide
- Clean up outdated README files
2025-12-02 23:05:24 +01:00
2025-11-13 15:12:49 +01:00

Git Repository Setup Script for Gitea

This script helps you create a git repository from existing codebase and configure it to synchronize with a Gitea server.

Features

  • Multiple Authentication Methods:

    • SSH (passwordless with key generation)
    • HTTPS (with Git Credential Manager)
    • Tea CLI (full Gitea API integration)
  • Advanced Installation Management:

    • Tea CLI: User-specific installations with version symlinks
    • Git Credential Manager: Automatic detection and setup
    • Borg CLI: Backup tool with smart version management
    • Smart Updates: Only downloads when newer versions available
  • Automatic Setup:

    • Git repository initialization
    • SSH key generation and display
    • Tea CLI installation and configuration
    • Remote repository creation
    • Connection testing

Usage

# Interactive setup
./setup-git-repo.sh

# With configuration file
echo '{"gitea": {"server_url": "https://your-gitea.com"}}' > config.json
./setup-git-repo.sh

Available Installers

Tea CLI Installer

# Install latest Tea CLI
./install-tea-cli.sh

# Install specific version
./install-tea-cli.sh -v v0.11.1

# Force reinstall
./install-tea-cli.sh --force

Borg CLI Installer

# Install latest Borg CLI
./install-borg-cli.sh

# Install specific version
./install-borg-cli.sh -v 1.4.2

# Force reinstall
./install-borg-cli.sh --force

Git Credential Manager Installer

# Install latest GCM
./install-git-credential-manager.sh

# Install specific version
./install-git-credential-manager.sh -v v2.6.1

# Force reinstall
./install-git-credential-manager.sh --force

# Check configuration without installing
./install-git-credential-manager.sh --checks

Installation Strategies

All installers implement smart installation strategies:

User-Specific Installations (Preferred)

  • Location: ~/bin/ directory
  • Requirements: ~/bin exists and is in PATH
  • Benefits: No sudo required, user isolation, multiple versions
  • Structure:
    ~/bin/
    ├── tea -> tea-v0.11.1    # Active version
    ├── tea-v0.11.0           # Previous version
    └── tea-v0.11.1           # Current version
    

System-Wide Installations (Fallback)

  • Location: /usr/local/bin/
  • Requirements: sudo access
  • Benefits: Available to all users
  • Structure:
    /usr/local/bin/
    ├── tea -> tea-v0.11.1
    ├── tea-v0.11.0
    └── tea-v0.11.1
    

Version Management

  • Symlinks: Automatic version switching
  • Multiple Versions: Keep old versions for rollback
  • Smart Updates: Only download when newer version available

Configuration

The script supports JSON configuration for automation:

{
  "gitea": {
    "server_url": "https://your-gitea.com",
    "default_login_name": "$USER",
    "login_method": "token",
    "has_access_token": true,
    "default_auth_method": "3"
  },
  "git": {
    "default_branch": "main",
    "auto_init": false
  },
  "ssh": {
    "key_type": "ed25519",
    "key_path": "~/.ssh/id_ed25519"
  },
  "repository": {
    "default_private": false,
    "auto_add_files": false,
    "auto_commit": false,
    "auto_push": false
  }
}
  1. Run the script:

    ./setup-git-repo.sh
    
  2. Follow the prompts to provide:

    • Your name and email
    • Gitea server URL
    • Repository name and description
    • Authentication method preference

Authentication Methods

  • Generates ED25519 SSH key if none exists
  • Provides passwordless authentication after initial setup
  • Most secure for automated workflows

2. HTTPS

  • Uses access tokens or password authentication
  • Good for environments where SSH is blocked
  • May require credential management

3. Tea CLI

  • Installs and configures Gitea's official CLI tool
  • Creates repository via Gitea API
  • Provides additional repository management features

Requirements

  • Git installed
  • Internet connection for Gitea access
  • Appropriate permissions on Gitea server

Tea CLI Information

The script can automatically install tea CLI, which is Gitea's official command-line tool. Tea provides:

  • Repository management
  • Issue and pull request handling
  • Release management
  • And much more

For more information about tea CLI: https://gitea.com/gitea/tea

Example Workflow

./setup-git-repo.sh
# Follow prompts...
git add .
git commit -m "Initial commit"
git push -u origin main

The script handles all the complex setup, allowing you to focus on your code.

Description
No description provided
Readme 220 KiB
Languages
Shell 100%