Skip to main content

Forgejo

What is Forgejo?​

Forgejo is a self-hosted lightweight software forge. It's easy to install and low maintenance — it just does the job. Forgejo is a community-maintained fork of Gitea with a focus on governance and sustainability.

Deployment Variants​

Forgejo is available in four deployment configurations:

Forgejo (Default)​

  • Database: SQLite (embedded)
  • Use case: Simple deployments, testing, or personal Git hosting
  • Components: Single Forgejo container with built-in SQLite database

Forgejo with PostgreSQL​

  • Database: PostgreSQL
  • Use case: Production deployments requiring better performance and scalability
  • Components:
    • Forgejo container
    • PostgreSQL container
    • Automatic database configuration and health checks

Forgejo with MySQL​

  • Database: MySQL
  • Use case: Production deployments with MySQL preference
  • Components:
    • Forgejo container
    • MySQL container
    • Automatic database configuration and health checks

Forgejo with MariaDB​

  • Database: MariaDB
  • Use case: Production deployments with MariaDB preference
  • Components:
    • Forgejo container
    • MariaDB container
    • Automatic database configuration and health checks

Forgejo Actions Runner​

Forgejo includes a first-party "actions runner" to execute task jobs on a repository, similar to GitHub Actions or GitLab CI.

The deployment includes a single runner using Docker-in-Docker to handle and report task jobs.

Due to the alpha status of the Forgejo runner, rebooting the Forgejo application container after the initial setup is required to fully register the shared secret:

  1. In the Environment Variables section, set RUNNER_SHARED_SECRET to a random 40-character hexadecimal string. Generate one with openssl rand -hex 20.
  2. After successfully setting up Forgejo, reboot the forgejo service and wait until the runner appears in the Forgejo Actions configuration section.

Demo​