A simple, automated installation script for Forgejo (community-driven fork of Gitea) with built-in CI/CD runner support.
- 🚀 One-command installation - Get Forgejo running in minutes
- 🔐 Secure by default - Auto-generated secrets and credentials using Forgejo CLI
- 💾 SQLite-based - No external database required
- 🔧 CI/CD ready - GitHub Actions-compatible runner setup
- 📦 Minimal dependencies - Works on any Linux system with systemd
Visit https://wkoszek.github.io/easyforgejo/ for installation commands.
curl -sSL https://wkoszek.github.io/easyforgejo/install.sh | bashThis will:
- Download and install the latest Forgejo version
- Generate secure credentials (SECRET_KEY, INTERNAL_TOKEN, JWT_SECRET)
- Create an admin account with random password
- Configure systemd service
- Register a runner token for CI/CD
First, download the worker script:
curl -sSL -O https://wkoszek.github.io/easyforgejo/install-runner.shThen run the command output from Step 1:
sh ./install-runner.sh [IP] [PORT] [SECRET]Note: The CI runner requires Docker to be installed.
You can easily test EasyForgejo in an isolated VM using Multipass:
# Clone the repository
git clone https://github.com/wkoszek/easyforgejo.git
cd easyforgejo
# Create a VM with 50GB disk
multipass launch --name vm1 --disk 50G
# Mount the project directory
multipass mount . vm1:/easyforgejo
# Enter the VM
multipass shell vm1
# Navigate to the project
cd /easyforgejo
# Run the installation
sudo bash install.shClean up when done:
exit # Exit the VM
multipass delete vm1
multipass purge- Linux with systemd - tested on Ubuntu 24.04
- curl, wget, git
- sudo access
- All server requirements
- Docker
- jq
The installation script uses these default settings:
- Port: 3000 (configurable via
PORTvariable) - Database: SQLite
- Admin user: forgejo-admin
- Admin email: admin@admin.com
All secrets and the admin password are randomly generated and displayed at the end of installation.
After installation:
- Login with the admin credentials shown
- Create your own account for daily use
- Change the admin password in settings
- Install the CI runner for GitHub Actions-compatible workflows
Access your instance at: http://[YOUR-IP]:3000
Check runners at: http://[YOUR-IP]:3000/admin/actions/runners
.
├── install.sh # Main Forgejo server installation
├── install-runner.sh # CI runner installation
└── index.html # GitHub Pages landing page
- Admin credentials are auto-generated
- All secrets use Forgejo's built-in generators or
openssl rand - Runner secrets are created per-installation
- Change default admin password after first login
TODO: it's all shown at STDOUT during install
TODO
Purge mode will allow you to reinstall the server (useful for testing script modifications):
sudo bash install.sh purgeTODO: need to support this for worker too
Contributions welcome! This is a beta project under active development.
MIT License - See LICENSE file for details
Created by Adam Koszek for the Forgejo self-hosting community.