|
2 years ago | |
---|---|---|
nginx | 2 years ago | |
.gitignore | 2 years ago | |
LICENSE | 3 years ago | |
README.md | 2 years ago | |
docker-compose.yml | 2 years ago | |
letsencrypt.sh | 2 years ago |
README.md
Reference repo for running Gitea with docker
Design
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.
Usage
Adding the Git user
You should create the Linux git
user and use sudo instead of running all commands as root
adduser git
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 Setup
-
In
nginx/sites-enabled/code.conf
, change all lines containingcode.example.com
tosubdomain.yourdomain.com
-
In the
docker-compose.yml
file, changeROOT_URL
tohttps://subdomain.yourdomain.com/
. Do the same forSSH_DOMAIN
, omitting thehttps
.
Gitea Setup
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
touch ./.env
- Open the file in a text editor and create a variable:
DB_PASSWORD=yourpasswordhere
Note: You could do this directly in your
docker-compose.yml
file, but this is not a good idea in production, as it usually involves committing your credentials in git.
Host setup
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 /etc/ssh/sshd_config
, uncommenting Port
and setting the value to something like 2222
.
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 user@yourdomain.com -p 2222
SSL Setup
Note: This section is incomplete.
- In the
letsencrypt.sh
script, change the line containingcode.example.com
tosubdomain.yourdomain.com
, and changeemail@example.com
to your email. - Make
letsencrypt.sh
executable
sudo chmod +x ./letsencrypt.sh
- Run the script:
sudo ./letsencrypt.sh
Server Standup
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