||10 months ago|
|nginx||11 months ago|
|.gitignore||11 months ago|
|LICENSE||1 year ago|
|README.md||10 months ago|
|docker-compose.yml||11 months ago|
|letsencrypt.sh||11 months ago|
Reference repo for running Gitea with docker
This instance of Gitea uses the following components:
- Gitea server, from gitea/gitea image
- Nginx reverse proxy, from nginx) image
- MariaDB MySQL-compatible database, from mariadb image
- Certbot ACME client, from certbot/certbot image
It assumes a Debian based host in the UID/GID assigned to various containers, such as maintream Debian or Ubuntu.
Adding the Git user
You should create the Linux
git user and use sudo instead of running all commands as root
You can leave all the misc info blank at the prompts - but don't forget to set a password!
You'll also need to add the git user to the
sudoers group, so you can use it to run the privileged Docker commands:
sudo usermod -a -G sudo git
nginx/sites-enabled/code.conf, change all lines containing
https://subdomain.yourdomain.com/. Do the same for
SSH_DOMAIN, omitting the
Gitea requires a database (in this case MariaDB) to work. To set this up, you'll need a
.env config file to give pass the DB login info to Docker.
- Create the file
- Open the file in a text editor and create a variable:
Note: You could do this directly in your
docker-compose.ymlfile, but this is not a good idea in production, as it usually involves committing your credentials in git.
Since the Gitea container contains a built-in SSH server running on port 22 to enable git over ssh, you will get an error if you try to run this configuration out of the box.
The simplest way to enable git over SSH is to change the port used for SSH on the host machine.
You can change this by editing the file
Port and setting the value to something like
Note: If you have a firewall like UFW configured, don't forget to allow incoming traffic on the new port before changing this setting, or you will be locked out of your server!
To gain remote access to the machine again, simply prepend
-p 2222 to your future SSH commands:
ssh firstname.lastname@example.org -p 2222
Note: This section is incomplete.
- In the
letsencrypt.shscript, change the line containing
yoursubdomain.yourdomain.com, and change
email@example.com your email.
sudo chmod +x ./letsencrypt.sh
- Run the script:
Once you've finished setting these variables, you should be good to go.
To start the instance, simply start the containers with Docker-compose:
docker-compose up -d