SadServers
  • Scenarios
  • Labs
    All Labs Linux & Bash Web Servers Databases Data Processing Docker Kubernetes CI/CD Infrastructure As Code Observability Tooling / Applications
  • Dashboard
  • Solutions
    For Individuals For Businesses
  • Ranking
  • Newsletter
  • FAQ
  • Documentation
    Support Pro Accounts Pro+ Accounts Business Accounts Gift API CLI/TUI Privacy Troubleshooting Interviews
  • Blog
  • Pricing
  • Gift
    Gift Purchase Gift Redeem
  • About
Log In - Sign Up
  1. Labs
  2. Gitea
  3. Cheatsheet

Guide

Concepts and learning path

Troubleshooting

Failure modes and fixes

Cheatsheet

Commands to keep handy

Gitea cheatsheet

Service and access

CheckDescription
systemctl status giteaService status (package/systemd)
ss -tlnp | grep 3000Default HTTP listen port
/etc/gitea/app.iniMain configuration
APP_DATA_PATHRepos, LFS, Actions data

Git clone URLs

git clone https://gitea.example.com/org/repo.git git clone git@gitea.example.com:org/repo.git # HTTPS with token: username + PAT as password git ls-remote https://gitea.example.com/org/repo.git

Admin CLI (gitea)

gitea --help gitea admin user list gitea admin user create --admin --username alice --password '...' --email a@example.com gitea dump -c /etc/gitea/app.ini gitea doctor check --config /etc/gitea/app.ini

Actions workflow sketch

# .gitea/workflows/ci.yml name: CI on: [push, pull_request] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: make build test

act_runner

# Register (token from Gitea UI) ./act_runner register --instance https://gitea.example.com --token TOKEN ./act_runner daemon # Labels must match runs-on: in workflows systemctl status act_runner journalctl -u act_runner -f

Useful app.ini knobs

SettingNotes
ROOT_URLPublic URL including trailing slash path if any
[database]SQLite vs Postgres/MySQL
[actions] ENABLEDTurn on Gitea Actions
[server] SSH_DOMAIN / SSH_PORTClone SSH endpoint
APP_DATA_PATHPersistent data root

API quick checks

curl -sS https://gitea.example.com/api/v1/version curl -sS -H "Authorization: token $TOKEN" \ https://gitea.example.com/api/v1/user/repos

Logs and disk

Path / commandDescription
journalctl -u gitea -fsystemd journal
UI → Actions → run logPer-job CI output
du -sh $APP_DATA_PATH/*Data directory usage
Repo → Settings → WebhooksDelivery history

Pro tips

  • Set ROOT_URL correctly before blaming the reverse proxy
  • Prefer Postgres (or MySQL) over SQLite once you have concurrent users or Actions
  • Match runner labels exactly to runs-on: — silent queue otherwise
  • Use PATs for HTTPS Git and API; disable password auth over HTTP if exposed
  • Back up both the database and APP_DATA_PATH together

Practice scenarios

Hands-on Gitea scenarios on live Linux VMs: gitea

SadServersSadServers

Real-world Linux and DevOps scenarios for hands-on learning and technical assessment.

Uptime Robot ratio (30 days)
Product
  • Scenarios
  • For Individuals
  • For Businesses
  • Pricing
Resources
  • FAQ
  • Blog
  • Newsletter
Company
  • About Us
  • Support
  • Privacy Policy
  • Terms of Service
  • Contact
Connect With Us
info@sadservers.com

Made in Canada 🇨🇦
Updated: 2026-08-10 20:20 UTC – 4bf5e0b