gitea-multi-install/README.md

4.1 KiB

Gitea install script for muliple instances of Gitea for Ubuntu 22.04 and 24.04 server.

Prerequisites

Ubuntu 22.04 or higher with Nginx and MariaDB. Nginx can be installed from [Here] and MariaDB can be install from [Here]

Important:

There are rules to this one. Normally I don't make rules, but I've been pondering how to do this. So here goes:

For each Gitea instance (everytime you run this script) the following rules apply:

Each intance will have it's own user. i.e gitea1, gitea2 etc.
Each intance will have it's own local port. i.e 3001, 3002 etc.
Each instance will have it's own configuration file i.e giteainstance.app.ini
Each instance will have it's own service unit i.e you will end up with several systemctl restart gitea1 and systemctl restart gitea2 restart etc.
Each instance will share the same Gitea Execuatable. So if you update please make sure all owners of the other instances are notified.

Logic

The first instance will be called:
gitea1 and the local port will be 3001 the database name will be gitea1db and the service to restart gitea1.service
The second instance will be called:
gitea2 and the local port will be 3002 the database name will be gitea2db and the service to restart gitea2.service

I think you get the idea. I can only do so much checking regarding your current setup, but the script should be able to do the logic. Meaning if gitea1 allready exists it will choose gitea2 as the next instance. And since you ventured this far you should know how to fix things if they mess up.

Download the script

git clone https://git.x-files.dk/ubuntu-web-application/gitea-multi-install.git

Usage

cd gitea-multi-install
sudo ./giteainstall [-n] <domain name> [-p] <gitea database password>

Example

sudo ./giteainstall -n git.something.xyz -p giteadatabasepwd

This will create a Gitea site running on port 80 with the domain name you chose under the installation. Don't worry though this can easily be fixed by modifying the Nginx configuration later. If you need an example on how to configure Nginx to run this on port 443 I an example [Here]. Also make sure that you correct the /etc/gitea-instance/app.ini to reflect the changes as well i.e change http to https in the app.ini file and then restart Nginx and the Gitea instance.

Configuration

Once the script is done browse to http://git.something.xyz and fill out the mandatory fields marked with green.

Gitea Configuration

Post install

This is needed in order to change a few configurations in app.ini which is first created when you are done with the setup screen.

cd gitea-install
sudo ./postinstall

Custom layout

Gitea takes the favicon in form of a svg file and a png file as fallback for browsers that does not support it. A custom logo can also be used. For all 3 files goes the following. They need to be placed in the folowing directory:
/var/lib/gitea/custom/public/assets/img/

Gitea can also serve a splash page instead of the build in one you will need to create a home.tmpl and place it in the following directory:
/var/lib/gitea/custom/templates/

Troubleshooting

Most issues will probably be caused by the fact that we all set up and configure Nginx diffrently. If you encounter problems I would suggest you look at the Nginx configuration I use [Here] and also the default "sites-enabled" Nginx configurarion I use [Here] when you start troubleshooting.

More guides can be found on [wiki.x-files.dk]

Last tested

October 10th 2024 on Ubuntu 24.04.