Gitea is a lightweight, self-hosted Git repository management solution that provides a clean, easy-to-use interface similar to GitHub. In this guide, we'll walk you through installing Gitea on an Amazon Lightsail VPS.
Prerequisites
Before you begin, ensure you have:
- An Amazon Lightsail account
- A Lightsail VPS running Ubuntu
- SSH access to your Lightsail instance
- Basic command-line knowledge
Step 1: Prepare Your Lightsail Instance
Create and Connect to Your Instance
- Log in to the Amazon Lightsail console
- Create a new Ubuntu instance
- Choose an appropriate plan (minimum 1GB RAM recommended)
- Connect via SSH through the Lightsail browser terminal or your local SSH client
Configure Lightsail Firewall
Open the Networking tab and add the following firewall rules:
- HTTP (Port 80)
- HTTPS (Port 443)
- SSH (Port 22)
- Gitea (Port 3000)
Step 2: Update Your System
Update system packages to ensure you have the latest versions:
sudo apt update sudo apt upgrade -y
Step 3: Install Dependencies
Install necessary dependencies for Gitea:
sudo apt install -y git sqlite3 wget nginx
Step 4: Create Gitea User
Create a dedicated user for Gitea:
sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/gitea gitea
Step 5: Download Gitea
Download the latest Gitea binary:
wget -O gitea https://dl.gitea.io/gitea/latest/gitea-1.20.3-linux-amd64 sudo chmod +x gitea sudo mv gitea /usr/local/bin/
Step 6: Create Directory Structure
Set up the necessary directories:
sudo mkdir -p /var/lib/gitea/{custom,data,log} sudo chown -R gitea:gitea /var/lib/gitea/ sudo chmod -R 750 /var/lib/gitea/
Step 7: Configure Systemd Service
Create a systemd service file for Gitea:
sudo nano /etc/systemd/system/gitea.service
Paste the following configuration:
[Unit] Description=Gitea After=syslog.target After=network.target [Service] RestartSec=2s Type=simple User=gitea Group=gitea WorkingDirectory=/var/lib/gitea/ ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini Restart=always Environment=USER=gitea HOME=/home/gitea [Install] WantedBy=multi-user.target
Step 8: Configure Nginx Reverse Proxy
Create an Nginx configuration:
sudo nano /etc/nginx/sites-available/gitea
Add the following configuration:
server { listen 80; server_name gitea.yourdomain.com; location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
Enable the site:
sudo ln -s /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx
Step 9: Performance Optimization for Lightsail
Add a swap file to improve performance on smaller instances:
sudo fallocate -l 1G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo scp /swapfile /etc/fstab sudo swapon /swapfile
Step 10: Start and Enable Gitea
Start the Gitea service and enable it to run on boot:
sudo systemctl start gitea sudo systemctl enable gitea
Step 11: SSL Configuration with Let's Encrypt
Install Certbot:
sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot # Generate SSL for your domain sudo certbot --nginx -d gitea.yourdomain.com
Security Recommendations
- Use a strong, unique password
- Keep Gitea and system updated
- Configure two-factor authentication
- Regularly backup your Gitea data
Lightsail Cost-Saving Tips
- Choose an appropriate instance size
- Use Lightsail's snapshot feature
- Stop instances when not in use
- Monitor instance metrics
Troubleshooting
If you encounter issues, check the logs:
# Gitea logs sudo journalctl -u gitea # Nginx logs sudo tail -f /var/log/nginx/error.log
Connecting Your Gitea Repository to DeployHQ
After setting up your Gitea instance, you can easily integrate it with DeployHQ for streamlined deployments. Follow these steps:
Manual Repository Addition
1- Generate an Access Token in Gitea
- Navigate to your Gitea user settings - Go to "Applications" - Create a new Personal Access Token - Select appropriate scopes (read:repository recommended) - Copy the generated token securely
2- Add Repository in DeployHQ
- Log in to your DeployHQ account - Click "Add Repository" - Choose "Git" as the repository type - Select "Other Git Provider"
3- Repository Connection Details
- Repository URL: `https://your-gitea-domain.com/username/repository.git` - Authentication Type: Token - Username: Your Gitea username - Password/Token: Paste the generated access token
Important Configuration Notes
- Ensure the access token has sufficient permissions
- Use HTTPS URL for repository connection
- Verify firewall and network settings allow DeployHQ to access your Gitea instance
Deployment Setup
Once connected, you can:
- Configure deployment branches
- Set up automatic deployments
- Define custom deployment scripts
- Monitor deployment history
Troubleshooting Repository Connection
- Double-check the repository URL
- Verify access token permissions
- Ensure Gitea is publicly accessible
- Check network connectivity
Pro Tip: DeployHQ supports multiple deployment strategies, making it perfect for your self-hosted Gitea repositories!
Conclusion
You've successfully installed Gitea on Amazon Lightsail! Enjoy your self-hosted Git repository management platform.
Pro Tip: Use DeployHQ for seamless deployment of your projects directly to your Gitea repository!
Top comments (0)