Files

273 lines
6.0 KiB
Markdown

---
created: 2025-11-02 10:48
updated: 2025-11-02 10:48
---
# Gitea Setup on TrueNAS Scale
## Installation Status
**Gitea is currently installed and working!**
- Deployed using Docker with Traefik reverse proxy
- Accessible via HTTPS through Traefik
- SSH access configured for git operations
- All services operational
---
## Installation Options (Reference)
### Option 1: TrueNAS Scale Apps (Recommended for Beginners)
TrueNAS Scale has a built-in app catalog that includes Gitea.
**Steps:**
1. Navigate to **Apps** in TrueNAS Scale web UI
2. Search for "Gitea"
3. Click **Install**
4. Configure:
- **Application Name:** gitea
- **Storage:** Create new dataset or use existing
- **Network:** Bridge or Host networking
- **Port:** 3000 (web UI), 22 (SSH) - adjust if conflicts
5. Click **Install** and wait for deployment
**Pros:**
- GUI-based installation
- Automatic updates via TrueNAS
- Integrated with TrueNAS management
**Cons:**
- Less control over configuration
- May lag behind latest Gitea releases
---
### Option 2: Custom Docker Container (More Control)
Using TrueNAS Scale's Docker support for more customization.
**Steps:**
1. **Create Dataset**
```
Storage → Create Dataset
Name: gitea_data
```
2. **Create docker-compose.yml** (or use TrueNAS Apps → Discover)
```yaml
version: "3"
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=568
- USER_GID=568
- GITEA__database__DB_TYPE=sqlite3
restart: unless-stopped
volumes:
- /mnt/pool/gitea_data:/data
ports:
- "3000:3000"
- "2222:22"
```
3. **Deploy via Portainer or CLI**
**Pros:**
- Full control over versions and configuration
- Easy to backup and migrate
- Can use docker-compose for multi-container setup
**Cons:**
- More manual setup
- Need to manage updates yourself
---
### Option 3: Kubernetes Deployment (Advanced)
TrueNAS Scale runs on Kubernetes, so you can deploy Gitea charts directly.
**Only recommended if you're familiar with Kubernetes**
---
## Initial Configuration
After installation, access Gitea at `http://[truenas-ip]:3000`
### First-Time Setup Wizard
1. **Database Settings:**
- SQLite3 (default, easiest for small setups)
- Or PostgreSQL/MySQL for better performance
2. **General Settings:**
- Site Title: "Your Name's Git"
- Repository Root Path: `/data/git/repositories` (default)
- Git LFS Root Path: `/data/git/lfs` (default)
3. **Server and Third-Party Settings:**
- SSH Server Domain: Your TrueNAS IP or hostname
- SSH Port: 22 (or 2222 if using custom setup)
- Gitea HTTP Listen Port: 3000
- Gitea Base URL: `http://[your-ip]:3000/`
4. **Administrator Account:**
- Create your admin user
- Set secure password
5. Click **Install Gitea**
---
## Post-Installation Configuration
### 1. SSH Access for Git Operations
**If using port 2222 (recommended to avoid conflicts):**
Add to your `~/.ssh/config`:
```
Host git.home
HostName [truenas-ip]
Port 2222
User git
```
Then clone repos with:
```bash
git clone git@git.home:username/repo.git
```
### 2. HTTPS Access (Optional but Recommended)
**Option A: Reverse Proxy (Nginx Proxy Manager)**
- Install Nginx Proxy Manager as another app
- Create proxy host pointing to Gitea
- Add SSL certificate (Let's Encrypt)
**Option B: Built-in HTTPS**
- Configure in Gitea's `app.ini`
- Requires SSL certificate
### 3. Configure Backups
**Gitea Data Locations:**
- Repositories: `/data/git/repositories`
- Database: `/data/gitea.db` (if using SQLite)
- Configuration: `/data/gitea/conf/app.ini`
**TrueNAS Backup Strategy:**
- Periodic snapshots of gitea_data dataset
- Replication to another location
- Or use Gitea's built-in backup command:
```bash
gitea dump -c /data/gitea/conf/app.ini
```
### 4. Performance Tuning
With your 16GB RAM, default settings are fine. If you add many users:
Edit `app.ini`:
```ini
[server]
LFS_START_SERVER = true
[cache]
ENABLED = true
ADAPTER = memory
INTERVAL = 60
[indexer]
ISSUE_INDEXER_TYPE = bleve
REPO_INDEXER_ENABLED = true
```
---
## Usage
### Creating First Repository
1. Log into Gitea web UI
2. Click **+** → **New Repository**
3. Set name, description, visibility
4. Initialize with README if desired
5. Click **Create Repository**
### Pushing Existing Repo
```bash
cd /path/to/your/repo
git remote add origin http://[truenas-ip]:3000/username/repo.git
# or git@git.home:username/repo.git for SSH
git push -u origin main
```
### Migrating from GitHub
1. In Gitea: **+** → **New Migration**
2. Select **GitHub**
3. Enter repo URL
4. Optionally: Add GitHub token for private repos
5. Click **Migrate Repository**
---
## Resource Usage Expectations
With your hardware (i7-1065G7, 16GB RAM):
- **Gitea idle:** ~50-100 MB RAM
- **Gitea active usage:** ~100-200 MB RAM
- **CPU:** Minimal (<5% typically)
Plenty of headroom for other services.
---
## Troubleshooting
### Can't Access Web UI
- Check firewall rules on TrueNAS
- Verify container is running: Apps → Installed
- Check logs in TrueNAS Apps UI
### SSH Clone Not Working
- Verify SSH port is correct (22 or 2222)
- Check SSH keys are added in Gitea: Settings → SSH/GPG Keys
- Test SSH: `ssh -T git@[truenas-ip] -p [port]`
### Slow Performance
- Check TrueNAS system resources (CPU, RAM, disk I/O)
- Consider switching from SQLite to PostgreSQL for large repos
- Enable Gitea caching (see Performance Tuning above)
---
## Completed Setup Steps
- [x] Choose installation method (Custom Docker with Traefik)
- [x] Create storage dataset for Gitea data
- [x] Install Gitea
- [x] Complete initial setup wizard
- [x] Create admin account
- [x] Configure SSH access
- [x] Set up HTTPS with Traefik reverse proxy
- [x] Configure external access via port forwarding
## Optional Next Steps
- [ ] Set up automated backup strategy
- [ ] Migrate existing repositories from other platforms
- [ ] Configure repository mirroring
- [ ] Set up webhooks for CI/CD integration
- [ ] Configure additional authentication providers (OAuth, LDAP)