Skip to content

Gitea

Gitea is a painless, self-hosted, all-in-one software development service. It includes Git hosting, code review, team collaboration, package registry and CI/CD. It is similar to GitHub, Bitbucket and GitLab.

References


Make directory

Terminal window
mkdir -p {{{DOCKER_PATH_VAR}}}/gitea && cd {{{DOCKER_PATH_VAR}}}/gitea

docker-compose.yml

Terminal window
nano docker-compose.yml
docker-compose.yml
networks:
gitea-network:
external: true
services:
server:
image: docker.gitea.com/gitea:1.23.5
container_name: gitea
environment:
USER_UID: ${USER_UID}
USER_GID: ${USER_GID}
GITEA__database__DB_TYPE: ${GITEA__database__DB_TYPE}
GITEA__database__HOST: ${GITEA__database__HOST}
GITEA__database__NAME: ${GITEA__database__NAME}
GITEA__database__USER: ${GITEA__database__USER}
GITEA__database__PASSWD: ${GITEA__database__PASSWD}
LOCAL_ROOT_URL: ${LOCAL_ROOT_URL}
networks:
- gitea-network
ports:
- "3004:3000"
- "222:22"
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
restart: always
depends_on:
- db
db:
image: docker.io/library/mysql:8
container_name: gitea_db
networks:
- gitea-network
volumes:
- ./mysql:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
restart: always

.env

Terminal window
nano .env
.env
USER_UID=1000
USER_GID=1000
LOCAL_ROOT_URL=http://localhost:3004
GITEA__database__DB_TYPE=mysql
GITEA__database__HOST=db:3306
GITEA__database__NAME=gitea
GITEA__database__USER=gitea # change to different USER
GITEA__database__PASSWD=gitea # change to different PASSWORD openssl rand -base64 32
GITEA__server__HTTP_PORT=3004
MYSQL_ROOT_PASSWORD=gitea # change to different ANOTHER_PASSWORD openssl rand -base64 32
MYSQL_USER=gitea # must match GITEA__database__USER
MYSQL_PASSWORD=gitea # must match GITEA__database__PASSWD
MYSQL_DATABASE=gitea # must match GITEA__database__NAME

Create docker network

Terminal window
docker network create gitea-network

Start container

Terminal window
docker compose up -d

Open web ui

http://localhost:3004 or http://{{{IP_ADDRESS_VAR}}}:3004