# Using GARM with Gitea Starting with Gitea 1.24 and the latest version of GARM (upcomming v0.2.0 - currently `main`), GARM supports Gitea as a forge, side by side with GitHub/GHES. A new endpoint type has been added to represent Gitea instances, which you can configure and use along side your GitHub runners. You can essentially create runners for both GitHub and Gitea using the same GARM instance, using the same CLI and the same API. It's simply a matter of adding an endpoint and credentials. The rest is the same as for github. ## Quickstart This is for testing purposes only. We'll assume you're running on an Ubuntu 24.04 VM or server. You can use anything you'd like, but this quickstart is tailored to get you up and running with the LXD provider. So we'll: * Initialize LXD * Create a docker compose yaml * Deploy Gitea and GARM * Configure GARM to use Gitea You will have to install Docker-CE yourself. ### Initialize LXD If you already have LXD initialized, you can skip this step. Otherwise, simply run: ```bash sudo lxd init --auto ``` This should set up LXD with default settings that should work on any system. LXD and Docker sometimes have issues with networking due to some conflicting iptables rules. In most cases, if you have docker installed and notice that you don't have access to the outside world from the containers, run the following command: ```bash sudo iptables -I DOCKER-USER -j ACCEPT ``` ### Create the docker compose Create a docker compose file in `$HOME/compose.yaml`. This docker compose will deploy both gitea and GARM. If you already have a Gitea >=1.24.0, you can edit this docker compose to only deploy GARM. ```yaml networks: default: external: false services: gitea: image: docker.gitea.com/gitea:1.24.0-rc0 container_name: gitea environment: - USER_UID=1000 - USER_GID=1000 restart: always networks: - default volumes: - /etc/gitea/gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "80:80" - "22:22" garm: image: ghcr.io/cloudbase/garm:${GARM_VERSION:-nightly} container_name: garm environment: - USER_UID=1000 - USER_GID=1000 restart: always networks: - default volumes: - /etc/garm:/etc/garm - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro # Give GARM access to the LXD socket. We need this later in the LXD provider. - /var/snap/lxd/common/lxd/unix.socket:/var/snap/lxd/common/lxd/unix.socket ports: - "9997:9997" ``` Create the folders for Gitea and GARM: ```bash sudo mkdir -p /etc/gitea /etc/garm sudo chown 1000:1000 /etc/gitea /etc/garm ``` Create the GARM configuration file: ```bash sudo tee /etc/garm/config.toml <