前言
基於ansible與ansible-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了啦)