Forgejo on halla-aho.net ======================== Lightweight Git hosting + CI with Forgejo (Gitea fork) behind Apache on halla-aho.net. What’s included - Docker Compose for Forgejo + SSH and an Actions runner (`forgejo/docker-compose.yml`). - Apache vhost snippet (added to `default-ssl.conf`) to reverse-proxy `git.halla-aho.net` to the Forgejo container on port 3200. - SSH for git is exposed on host port 2223 (mapped to container 22); change in compose if that port is taken. Prereqs - Docker installed on halla-aho.net. - SSLMate certs for `git.halla-aho.net` placed on the host (paths referenced in `default-ssl.conf`). - A DNS record for `git.halla-aho.net` pointing to the server. Deploy Forgejo 1) Create host dirs for data: ``` sudo mkdir -p /srv/forgejo/data /srv/forgejo/runner sudo chown -R $USER:$USER /srv/forgejo ``` 2) Start the Forgejo service: ``` docker compose -f forgejo/docker-compose.yml up -d forgejo ``` - If port 2223 is already in use, edit `forgejo/docker-compose.yml` (`ports:` and `FORGEJO__SERVER__SSH_PORT`) to another free port, then rerun the command. 3) Configure Apache (already added to `default-ssl.conf`): - VirtualHost `git.halla-aho.net:9443` proxies to `http://127.0.0.1:3200/`. - TLS files: `/etc/apache2/ssl/git.halla-aho.net.{crt,key,chain.crt}` (update if different). - Enable the site and reload Apache. 4) Finish setup in the UI at `https://git.halla-aho.net/`: - Create the admin user. - Configure SMTP in the admin UI (Mail settings). - Set `ROOT_URL`/`SSH_DOMAIN` if you change ports/domains. Register the Actions runner 1) In Forgejo, create a runner registration token (Site Admin → Runners). 2) Register the runner (writes `/srv/forgejo/runner/config.yaml`): ``` docker compose -f forgejo/docker-compose.yml run --rm runner \ forgejo-runner register \ --instance https://git.halla-aho.net \ --token \ --name halla-runner \ --labels docker \ --config /data/config.yaml ``` 3) Start the runner: ``` docker compose -f forgejo/docker-compose.yml up -d runner ``` CI workflow for this repo - Add workflows under `.forgejo/workflows/`. - Example included: `ci.yml` runs npm install + lint + type-check + format check on push/PR using the `docker` runner label.