1
0
Fork 0
mirror of https://git.awittern.com/public/forgejo-setup synced 2024-12-22 23:22:16 +00:00
Documentation for setting up a forgejo instance complete with a runner instance for running CI/CD pipelines.
Find a file
2024-08-31 22:25:41 +02:00
.env.sample changes 2024-08-31 22:25:41 +02:00
compose.yml changes 2024-08-31 22:25:41 +02:00
README.md changes 2024-08-31 22:25:41 +02:00

Introduction

In this repo I am documenting how to setup your own selfhosted git platform complete with CI/CD using forgejo.

Steps:

  1. Setup folder
  2. customize compose.yml

Setup folder

In your appdata folder create new folder called forgejo. In my case it's ~/apps/forgejo. cd into the forgejo folder and create a compose.yml using your editor of choice. In my case it's vim compose.yml. Paste the contents of the compose.yml file in this repository. Copy the contents of the .env.sample inside this repo into the folder and rename it to .env. Random string openssl rand -hex 20

Edit compose.yml

The docker compose file is setup for forgejo to be used with a reverse-proxy, which if you want to use it from outside your home network, I strongly suggest. It expects to be run with a network called proxy. If your network is called differently you have to change the file accordingly.

Initial startup

Run docker-compose up -d && docker-compose logs -f in order to follow the initial startup process. The first startup will create your administrative user according to the ADMIN_USERNAME, ADMIN_PASSWORD and ADMIN_EMAIL variables you set in the .env file. Furthermore a ci-runner will be registered to your forgejo instance through the runner-register container and the command inside the forgejo container. After about 20 seconds you can stop following the logs with ctrl+c. Afterwards stop the stack by running docker-compose down.

Cleanup compose.yml

After the initial startup is completed you have to make some changes to the compose.yml. The first startup handled the creation of your admin user and the registration of the ci-runner. These sections are not needed anymore.

  1. Remove the command section from the forgejo container.
  2. Remove the runner-register container definition from the compose file.

Configure Forgejo

After cleaning up the compose.yml file you can now configure forgejo. The data for the forgejo container is stored in the app folder. Using your editor of choice you can edit the app/gitea/conf/app.ini file. Inside the app.ini there are some things you have to change and also some you can change if you like to, starting with the APP_NAME. Inside the [server] section you have to change the ROOT_URL for forgejo to work properly generating URLs like clone URLs etc. Change it to your domain and subdomain combination like https://forgejo.mydomain.com. Optionally, if you plan to use your forgejo instance as a package registry for example for docker container images, you can change the ini file and add the following:

[packages]
ENABLED = true

Lastly I would suggest to change the default source for runner containers in the ini file to https://github.com as there a way more available predefined actions. Browse them in in the actions section of the github marketplace

[actions]
DEFAULT_ACTIONS_URL = https://github.com

Final word

Congratulations! Your forgejo instance is now up and running, all together with a CI/CD pipeline runner.