Complete documentation refactoring with 57 service docs
- Refactored README.md, getting-started.md, quick-reference.md - Enhanced setup-homelab.sh with 9-step automated process - Created services-overview.md with all stacks - Added comprehensive documentation for 57 services in docs/service-docs/ - All services include: overview, configuration, resources, educational content - Coverage: Core, Infrastructure, Dashboards, Media, Media-Extended, Home Assistant, Productivity, Utilities, Monitoring, Development stacks - Educational focus with links to tutorials, videos, and guides
This commit is contained in:
160
docs/service-docs/gitea.md
Normal file
160
docs/service-docs/gitea.md
Normal file
@@ -0,0 +1,160 @@
|
||||
# Gitea - Git Server
|
||||
|
||||
## Table of Contents
|
||||
- [Overview](#overview)
|
||||
- [What is Gitea?](#what-is-gitea)
|
||||
- [Why Use Gitea?](#why-use-gitea)
|
||||
- [Configuration in AI-Homelab](#configuration-in-ai-homelab)
|
||||
- [Official Resources](#official-resources)
|
||||
- [Docker Configuration](#docker-configuration)
|
||||
|
||||
## Overview
|
||||
|
||||
**Category:** Git Repository Hosting
|
||||
**Docker Image:** [gitea/gitea](https://hub.docker.com/r/gitea/gitea)
|
||||
**Default Stack:** `productivity.yml`
|
||||
**Web UI:** `https://gitea.${DOMAIN}` or `http://SERVER_IP:3000`
|
||||
**SSH:** Port 222
|
||||
**Ports:** 3000, 222
|
||||
|
||||
## What is Gitea?
|
||||
|
||||
Gitea is a self-hosted Git service similar to GitHub/GitLab but lightweight and easy to deploy. It provides web-based Git repository hosting with features like pull requests, code review, issue tracking, and CI/CD integration - all running on your own infrastructure.
|
||||
|
||||
### Key Features
|
||||
- **Git Repositories:** Unlimited repos
|
||||
- **Web Interface:** GitHub-like UI
|
||||
- **Pull Requests:** Code review workflow
|
||||
- **Issue Tracking:** Built-in bug tracking
|
||||
- **Wiki:** Per-repository wikis
|
||||
- **Organizations:** Team management
|
||||
- **SSH & HTTP:** Git access methods
|
||||
- **Actions:** CI/CD (GitHub Actions compatible)
|
||||
- **Webhooks:** Integration hooks
|
||||
- **API:** REST API
|
||||
- **Lightweight:** Runs on Raspberry Pi
|
||||
- **Free & Open Source:** MIT license
|
||||
|
||||
## Why Use Gitea?
|
||||
|
||||
1. **Self-Hosted:** Control your code
|
||||
2. **Private Repos:** Unlimited private repos
|
||||
3. **Lightweight:** Low resource usage
|
||||
4. **Fast:** Go-based, very quick
|
||||
5. **Easy Setup:** Minutes to deploy
|
||||
6. **GitHub Alternative:** Similar features
|
||||
7. **No Limits:** No user/repo restrictions
|
||||
8. **Privacy:** Code never leaves your server
|
||||
|
||||
## Configuration in AI-Homelab
|
||||
|
||||
```
|
||||
/opt/stacks/productivity/gitea/data/ # Git repos
|
||||
/opt/stacks/productivity/gitea/config/ # Configuration
|
||||
```
|
||||
|
||||
## Official Resources
|
||||
|
||||
- **Website:** https://gitea.io
|
||||
- **Documentation:** https://docs.gitea.io
|
||||
- **GitHub:** https://github.com/go-gitea/gitea
|
||||
|
||||
## Docker Configuration
|
||||
|
||||
```yaml
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: gitea
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- traefik-network
|
||||
ports:
|
||||
- "3000:3000"
|
||||
- "222:22"
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
- USER_GID=1000
|
||||
- GITEA__database__DB_TYPE=sqlite3
|
||||
- GITEA__server__DOMAIN=gitea.${DOMAIN}
|
||||
- GITEA__server__ROOT_URL=https://gitea.${DOMAIN}
|
||||
- GITEA__server__SSH_DOMAIN=gitea.${DOMAIN}
|
||||
- GITEA__server__SSH_PORT=222
|
||||
volumes:
|
||||
- /opt/stacks/productivity/gitea/data:/data
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.gitea.rule=Host(`gitea.${DOMAIN}`)"
|
||||
```
|
||||
|
||||
## Setup
|
||||
|
||||
1. **Start Container:**
|
||||
```bash
|
||||
docker compose up -d gitea
|
||||
```
|
||||
|
||||
2. **Access UI:** `http://SERVER_IP:3000`
|
||||
|
||||
3. **Initial Configuration:**
|
||||
- Database: SQLite (default, sufficient for most)
|
||||
- Admin username/password
|
||||
- Application URL: `https://gitea.yourdomain.com`
|
||||
- SSH Port: 222
|
||||
|
||||
4. **Create Repository:**
|
||||
- "+" button → New Repository
|
||||
- Name, description, visibility
|
||||
- Initialize with README if desired
|
||||
|
||||
5. **Clone Repository:**
|
||||
```bash
|
||||
# HTTPS
|
||||
git clone https://gitea.yourdomain.com/username/repo.git
|
||||
|
||||
# SSH (configure SSH key first)
|
||||
git clone ssh://git@gitea.yourdomain.com:222/username/repo.git
|
||||
```
|
||||
|
||||
## Summary
|
||||
|
||||
Gitea is your self-hosted Git server offering:
|
||||
- GitHub-like interface
|
||||
- Unlimited repositories
|
||||
- Pull requests & code review
|
||||
- Issue tracking
|
||||
- Organizations & teams
|
||||
- CI/CD with Actions
|
||||
- Lightweight & fast
|
||||
- Free and open-source
|
||||
|
||||
**Perfect for:**
|
||||
- Personal projects
|
||||
- Private code hosting
|
||||
- Team development
|
||||
- GitHub alternative
|
||||
- Code portfolio
|
||||
- Learning Git workflows
|
||||
- CI/CD pipelines
|
||||
|
||||
**Key Points:**
|
||||
- Very lightweight (runs on Pi)
|
||||
- GitHub-like features
|
||||
- SSH and HTTPS access
|
||||
- Built-in CI/CD (Actions)
|
||||
- SQLite or external DB
|
||||
- Webhook support
|
||||
- API available
|
||||
- Easy migration from GitHub
|
||||
|
||||
**Remember:**
|
||||
- Configure SSH keys for easy access
|
||||
- Use organizations for teams
|
||||
- Enable Actions for CI/CD
|
||||
- Regular backups of /data
|
||||
- Strong admin password
|
||||
- Consider external database for heavy use
|
||||
- Port 222 for SSH (avoid 22 conflict)
|
||||
|
||||
Gitea puts your code under your control!
|
||||
Reference in New Issue
Block a user