Skip to main content

Gitea Application Guide

Gitea is a self-hosted Git service written in Go.

Status: Available (not yet verified end to end)


Quick Reference​

PropertyValue
Application IDgitea
CategoryVersion Control
Default Imagegitea/gitea:latest
Application Port3000
SSH Port2222 (optional, see below)
Default CPU512 (Fargate)
Default Memory1024 MB (Fargate)
Default Instancet3.micro (EC2)
Health Check Path/
Health Check Grace300 seconds
Supports FargateYes
Supports EC2Yes
Supported Auth Modesnone
Database RequiredNo (embedded SQLite)

Upstream Features​

  • Git repository hosting, pull requests, issues, and wikis
  • Organizations, teams, and webhooks
  • Git LFS and repository mirroring
  • Package registry and Gitea Actions

Optional Ports​

PortProtocolDirectionFeature FlagDescription
2222TCPInboundenableSshGit SSH

On EC2, the container's SSH port 22 is published on host port 2222 (GITEA__server__SSH_PORT=2222) to avoid a conflict with the host's SSH daemon.

Example enabling SSH:

{
"enableSsh": true
}

Authentication​

ModeDescription
noneGitea local accounts

Gitea declares only the none auth mode. When a context is prepared for a deployment target (the interactive deployer or CloudForgeDeployment), an unsupported authMode such as alb-oidc is replaced with none and a warning is printed. Compliance frameworks that require CloudForge-managed authentication, such as the SOC 2 CC6.2 rule, report a failure when authMode is none.

Gitea supports OpenID Connect natively, but CloudForge does not configure it.


Storage Configuration​

Container (Fargate)​

PropertyValue
Data Path/data
EFS Path/gitea
Volume NamegiteaData
Container User1000:1000
EFS Permissions755

On EC2, data is stored under /var/lib/gitea.


Deployment Context Examples​

Development​

{
"stackName": "Gitea-Dev",
"applicationId": "gitea",
"applicationName": "Gitea Dev",
"environment": "dev",

"runtime": "fargate",
"securityProfile": "dev",
"topology": "application-service",

"networkMode": "public",
"region": "us-east-1",

"authMode": "none",

"cpu": 512,
"memory": 1024,

"enableSsh": true,

"enableMonitoring": true,
"logRetentionDays": "7"
}

Production​

{
"stackName": "Gitea-Production",
"applicationId": "gitea",
"applicationName": "Gitea",
"environment": "prod",

"runtime": "ec2",
"securityProfile": "production",
"topology": "application-service",

"domain": "example.com",
"subdomain": "git",
"enableSsl": true,

"networkMode": "private-with-nat",
"region": "us-east-1",

"authMode": "none",

"instanceType": "t3.small",
"minInstanceCapacity": 1,
"maxInstanceCapacity": 2,

"enableSsh": true,

"awsConfigEnabled": true,
"wafEnabled": true,

"enableMonitoring": true,
"enableEncryption": true,
"logRetentionDays": "730",
"retainStorage": true
}

Post-Deployment Tasks​

  1. Open the Gitea URL.
  2. Complete the initial setup wizard and create the administrator account.
  3. Configure SSH clone URLs if enableSsh is set.
  4. Create organizations and repositories.