How to Set up Gitea Self-hosted Git Support using Docker on Ie8 18.04

Gitea is a hand of Gogs, the simple to use self-hosted Git support. It is the identical to GitHub, Bitbucket, and Gitlab. Gitea is light and portable concept online hosting service remedy coded in Go, can run on little components specifications. It is a cross-platform program, can run anywhere Go can be collected such as Ms windows, Linux program, MacOS, ARM etc.

In this guide, I will explain to you step-by-step how to set up and set up the light and portable Git support using Gitea. We will set up the Gitea server using Docker and will be using the PostgreSQL information source and Traefik Opposite proxies. For this information, we will be using the newest Ie8 18.04 Server.

Prerequisites

  • Ubuntu 18.04
  • Root privileges

What we will do?

  1. Install Docker-CE
  2. Install Docker Compose
  3. Deploy Gitea as Program using Docker
  4. Gitea Post-Installation
  5. Create First Repository
  6. Testing First Commit

Step 1 – Install Docker-CE

The starting point we will do for this information is to set up the Docker group version to the Ie8 18.04 server. We will set up the Docker CE package from operate Docker information source.

Add the Docker and Docker information source by operating instructions below.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository
"deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs)
stable"

Add Docker Ie8 Repository

The ‘add-apt-repository’ control will instantly upgrade the information source.

Now set up the Docker CE package.

sudo apt plan docker-ce
sudo apt set up docker-ce=18.06.1~ce~3-0~ubuntu

install the Docker CE package

When the set up is done, begin the docker support and give it to produce whenever at program start.

sudo systemctl begin docker
sudo systemctl allow docker

Docker CE is launched and established on the Ie8 18.04 server. Confirm the set up by verifying the docker version.

docker version

Check Docker version

or run the docker ‘hello-world’.

docker run hello-world

docker run hello-world

Step 2 – Install Docker Compose

Docker-Compose is a control range device for interpreting and handling multi-container docker programs. It allows you for making a container as a support, ideal for your growth, examining and setting up atmosphere.

Install Docker Write by installing the binary information file and create it an exe.

sudo snuggle -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Now look into the docker-compose control.

docker-compose version

Docker Write is now set up.

Install Docker Compose

Step 3 – Deploy Gitea as Docker Container

In this technique, we will create a new docker-compose program that contains all solutions options such as PostgreSQL Database and Traefik reverse proxies. We will set up all implementation data files on the listing known as ‘deployment’.

Create Customized Docker Network

Before developing the implementation options, let’s create a new custom link program. It will be used for the exterior support traefik reverse proxies.

Check the record docker program.

docker program ls

Now create a new custom link program known as ‘hakasenet’.

docker program create hakasenet

Check it again.

docker program ls

Now you will get ‘hakasenet’ program on the record.

Check docker network

Setup Deployment Directory and Files

Create a new listing known as ‘deployment’ and the ‘docker-compose.yml’ program on it.

mkdir deployment; cd deployment
touch docker-compose.yml

Now create new listing ‘gitea’ and ‘postgres’ information quantity.

mkdir -p gitea/ postgres/

Create a new information file ‘acme.json’ and modify the authorization of the information file. it will be used to shop Letsencrypt information.

touch acme.json
chmod 600 acme.json

Now create the international traefik options ‘traefik.toml’ information file.

touch traefik.toml

And below are data files and online directories we’ve for the Gitea set up using Docker.

tree

Setup Deployment Directory and Files

Setup PostgreSQL Service

The information source support PostgreSQL is the first support that we want to set up. The information source support will run only on the inner docker program.

And we will be using the Postgres 9.6 picture, using ‘gitea’ as information source name, customer, and security password, and set up the postgres information quantity.

Edit the ‘docker-compose.yml’ information file using vim.

vim docker-compose.yml

Paste options below.

version: "3"

networks:
 hakasenet:
 external: true
 internal:
 external: false

services:
 db:
 image: postgres:9.6
 restart: always
 environment:
 - POSTGRES_USER=gitea
 - POSTGRES_PASSWORD=gitea
 - POSTGRES_DB=gitea
 labels:
 - "traefik.enable=false"
 networks:
 - internal
 volumes:
 - ./postgres:/var/lib/postgresql/data

Save and quit.

Setup Traefik Opposite Proxy

Now we will set up the Traefik reverse proxies for our Gitea set up.

The traefik support will be operating under HTTP and HTTPS standard slots, operating on the custom link program known as ‘hakasenet’, and we will set up it to use the Letsencrypt accreditations that will be described on the ‘traefik.toml’ information file.

Edit the compose program.

vim docker-compose.yml

Paste options under the db support options.

 traefik:
 image: traefik:latest
 command: --docker
 ports:
 - 80:80
 - 443:443
 labels:
 - "traefik.enable=true"
 - "traefik.backend=dashboard"
 - "traefik.frontend.rule=Host:traefik.hakase-labs.io"
 - "traefik.port=8080"
 networks:
 - hakasenet
 volumes:
 - /var/run/docker.sock:/var/run/docker.sock
 - ./traefik.toml:/traefik.toml
 - ./acme.json:/acme.json
 container_name: traefik
 restart: always

Save and quit.

Now modify the ‘traefik.toml’ options information file.

vim traefik.toml

And insert the following options.

#Traefik Global Configuration
debug = false
checkNewVersion = true
logLevel = "ERROR"

#Define the EntryPoint for HTTP and HTTPS
defaultEntryPoints = ["https","http"]

#Define the HTTP slot 80 and
#HTTPS slot 443 EntryPoint
#Enable instantly divert HTTP to HTTPS
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]

#Enable Traefik Sprint panel on slot 8080
#with primary verification method
#hakase and password
[entryPoints.dash]
address=":8080"
[entryPoints.dash.auth]
[entryPoints.dash.auth.basic]
 customers = [
 "hakase:$apr1$hEgpZUN2$OYG3KwpzI3T1FqIg9LIbi.",
 ]

[api]
entrypoint="dash"
dashboard = true

#Enable retry delivering a demand if it error
[retry]

#Define Docker After sales Configuration
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "hakase-labs.io"
watch = true
exposedbydefault = false

#Letsencrypt Registration
#Define the Letsencrypt ACME HTTP challenge
[acme]
email = "[email protected]"
storage = "acme.json"
entryPoint = "https"
OnHostRule = true
 [acme.httpChallenge]
 entryPoint = "http"

Save and quit.

Note:

  • Change the acme letsencrypt e-mail with your legitimate current e-mail deal with.

Setup Gitea Service

Edit the ‘docker-compose.yml’ options information file.

vim docker-compose.yml

Paste the gitea support options at the end of the road.

 server:
 image: gitea/gitea:latest
 environment:
 - USER_UID=1000
 - USER_GID=1000
 restart: always
 networks:
 - internal
 volumes:
 - ./gitea:/data
 ports:
 - "3000"
 - "22"
 labels:
 - "traefik.enabled=true"
 - "traefik.backend=gitea"
 - "traefik.frontend.rule=Host:git.hakase-labs.io"
 - "traefik.docker.network=hakasenet"
 - "traefik.port=3000"
 networks:
 - internal
 - hakasenet
 depends_on:
 - db
 - traefik

Save and quit.

The Gitea support will be operating on the TCP slot ‘3000’, using those two docker systems ‘internal’ and ‘hakasenet’, and will run under the traefik reverse proxies on sector ‘git.hakase-labs.io’.

Docker consists options for Gitea implementation has been finished.

Deploy All Services

Now set up the collection using ‘docker-compose’ control below.

docker-compose up -d

The control will obtain all docker pictures required and run solutions described on the docker-compose program.

Deploy All Services

And when it’s finish, examine available solutions on docker using ps choice as below.

docker-compose ps

Now you will get the consequence as below.

docker-compose ps

The PostgreSQL information source, Gitea, and traefik reverse proxies space for storage containers are now launched and established. The information source support is operating on the standard slot ‘5432’, the gitea server is operating on slot ‘3000’, and the traefik proxies is operating on HTTP and HTTPS slots, available from the outside network/internet.

If you want to confirm all records from docker examine, run control below.

docker-compose logs

docker-compose logs

Step 4 – Gitea Post-Installation

Open your online web browser and kind your Gitea URL set up. My own is:

https://git.hakase-labs.io/

Now you will get the standard Gitea website.

Gitea run with Docker

Add the set up direction to the URL.

https://git.hakase-labs.io/install

Now you will get the Gitea set up website.

Database configuration

Type the PostgreSQL information source information, and use ‘db‘ as lots.

Gitea web installer

General Gitea Configuration

Change the ‘Site title’ with your own headline, the ‘SSH Server Domain’ (without https) and ‘Gitea Platform URL’ with your gitea server URL.

General Gitea Configuration

Admin Consideration Settings

On the administration options, kind the administration login name, security password, and current e-mail deal with.

Admin Consideration Settings

Now just click ‘Install Gitea’ key.

And you will be rerouted to the Gitea standard customer dashboard.

Gitea standard customer dashboard

Step 5 – Create First Repository in Gitea

On the consumer homepage, select the ‘+’ key.

Now kind information of the information source that you want for making.

Add Repository

and select the ‘Create Repository’ key.

The information source has been given.

The information source has been created

Step 6 – Testing First Commit

Back to your international airport spend, and set up the standard git customer and e-mail.

Run git instructions below.

git config --global customer.name "hakase"
git config --global customer.email "[email protected]"

Now replicated the information source.

git replicated https://git.hakase-labs.io/hakase/myrepo.git

Go to the information source listing ‘myyrepo’ and modify the README.md information file.

cd myrepo/
vim README.md

make changes on the README information file, then preserve and quit.

Now create the information source.

git add .
git create -m 'Edit the README.md information file by hakase-labs'

And force it to the server.

git force source master

Type your information.

And following should be the consequence.

Test Git Commit

Check to the information source website and create sure you get the changes as below.

Gitea installed

The Gitea set up with Docker on Ie8 18.04 has been finished efficiently.

Reference

Post Author: Hack3rN3ws

Leave a Reply

Your email address will not be published. Required fields are marked *