# 🦊 Gitea Setup Guide Complete guide to push your LemonLink project to your Gitea instance. --- ## 📋 What I Need From You To help you set up the repository, please provide: 1. **Gitea URL** - e.g., `https://git.yourdomain.com` or `https://gitea.lemonlink.eu` 2. **Your username** - e.g., `lemonadmin` 3. **Repository name** - e.g., `lemonlink-website` or `landing-page` 4. **Access method**: SSH key or HTTPS with token? --- ## 🚀 Method 1: Create Repo via Web UI (Easiest) ### Step 1: Create Repository in Gitea 1. Log into your Gitea: `https://your-gitea.com` 2. Click **+** → **New Repository** 3. Fill in: - **Owner**: Your username/organization - **Repository Name**: `lemonlink` (or your preference) - **Description**: "Jaw-dropping landing page for my homelab" - **Visibility**: ☑️ Make it private (or public if you want) - **Initialize**: ☐ Uncheck "Initialize Repository" (we'll push existing files) 4. Click **Create Repository** ### Step 2: Push Your Code Open terminal/command prompt in your project folder and run: ```bash # Initialize Git (if not already done) git init # Add all files git add . # First commit git commit -m "Initial commit: Jaw-dropping landing page 🍋" # Add Gitea remote (replace with your info) git remote add origin https://your-gitea.com/username/lemonlink.git # Push to Gitea git push -u origin main ``` --- ## 🔐 Method 2: Using SSH Keys ### Step 1: Generate SSH Key (if you don't have one) ```bash # Generate key ssh-keygen -t ed25519 -C "your-email@example.com" # Copy public key cat ~/.ssh/id_ed25519.pub ``` ### Step 2: Add Key to Gitea 1. Gitea → User Settings → SSH / GPG Keys 2. Click **Add SSH Key** 3. Paste your public key 4. Click **Add Key** ### Step 3: Push with SSH ```bash # Use SSH URL git remote add origin git@your-gitea.com:username/lemonlink.git git push -u origin main ``` --- ## 🔑 Method 3: Using HTTPS with Access Token ### Step 1: Create Access Token 1. Gitea → User Settings → Applications 2. Generate New Token 3. Name: "LemonLink Development" 4. Permissions: ☑️ repo (full access) 5. Click **Generate Token** 6. **COPY THE TOKEN** (you can't see it again!) ### Step 2: Push with Token ```bash # Use token in URL (replace YOUR_TOKEN) git remote add origin https://YOUR_TOKEN@your-gitea.com/username/lemonlink.git git push -u origin main ``` Or use credential helper: ```bash git config --global credential.helper cache git push -u origin main # Enter username and token as password ``` --- ## 🔄 Keeping Gitea in Sync After making changes: ```bash # Stage changes git add . # Commit git commit -m "Description of changes" # Push to Gitea git push origin main ``` --- ## 🏷️ Tagging Releases ```bash # Create version tag git tag -a v1.0.0 -m "First stable release" # Push tags git push origin --tags ``` --- ## 🎨 Gitea Features to Enable In your Gitea repository settings: ### Issues - Enable for bug reports and feature requests ### Wiki - Enable for extended documentation ### Projects - Enable for Kanban-style project management ### Actions (CI/CD) If your Gitea has Actions enabled, you can add `.gitea/workflows/deploy.yml`: ```yaml name: Deploy to Server on: push: branches: [main] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Deploy to server run: | # Add your deployment commands here echo "Deployed!" ``` --- ## 📱 Cloning on Other Machines Once in Gitea, clone anywhere: ```bash # HTTPS git clone https://your-gitea.com/username/lemonlink.git # SSH git clone git@your-gitea.com:username/lemonlink.git ``` --- ## 🌐 Gitea + Docker Integration If your Gitea and Docker are on the same VM, you can automate deployment: ### Option 1: Gitea Webhook 1. Gitea → Repository Settings → Webhooks 2. Add Gitea Webhook 3. Target URL: `http://localhost:9000/hooks/deploy` (your deployment endpoint) 4. Trigger on: Push events ### Option 2: Git Pull in Container ```bash # SSH into Docker VM cd /opt/lemonlink git pull origin main # Files update instantly! ``` ### Option 3: Watchtower (Auto-update) If using Docker image from Gitea Registry: ```yaml version: '3.8' services: watchtower: image: containrrr/watchtower volumes: - /var/run/docker.sock:/var/run/docker.sock command: --interval 30 --cleanup ``` --- ## 🛠️ Troubleshooting ### "Permission denied" ```bash # Check remote URL git remote -v # Fix permissions on SSH key chmod 600 ~/.ssh/id_ed25519 ``` ### "Repository not found" - Verify repository exists in Gitea - Check username/repo name spelling - Ensure you have access permissions ### "Failed to push" ```bash # Force push (careful!) git push -f origin main # Or pull first git pull origin main git push origin main ``` --- ## ✨ Quick Reference | Command | Description | |---------|-------------| | `git status` | Check current state | | `git add .` | Stage all changes | | `git commit -m "msg"` | Commit changes | | `git push` | Push to Gitea | | `git pull` | Get latest changes | | `git log` | View commit history | --- **Ready?** Give me your Gitea details and I'll generate the exact commands for you! 🚀