私人的Git Server - Gitea

前言

基於ansibleansible-pull的需求,我在自己家裡掛上了Gitea

基本架構

Docker安裝Gitea非常方便,但是配合Homelab內部的環境與docker的特殊性,基本上就是內部走http(是的沒看錯就是http

docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
services:
server:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- TZ=Asia/Taipei
- ROOT_URL=http://${Domain.you.like}/
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=db:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
depends_on:
- db
volumes:
- ./data:/data
- /var/lib/docker/volumes/gitea/config:/etc/gitea
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped
networks:
- basic_net

db:
image: mysql:latest
restart: always
container_name: gitea_mysql
environment:
- MYSQL_ROOT_PASSWORD=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=gitea
- MYSQL_DATABASE=gitea
networks:
- basic_net
volumes:
- /var/lib/docker/volumes/gitea/mysql:/var/lib/mysql

networks:
basic_net:
name: backend
ipam:
config:
- subnet: 172.21.0.0/16

說明一下

  • 為什麼用mysql不用sqlite?

    因為會有不明原因發生database locked…所以最終用mysql來解決…

  • 光是上面的docker-compose.yml並不會好好的動…還需要加上Nginx Proxy Manager去當reverse proxy才會動

  • 這個服務單純是掛在內部,不對外所以省了Traefik的設定跟SSL,有需要的人請自己研究(是說對外部的話乾脆就用github或是gitlab了啦)