Gitea PostgreSQL Docker 设置æå | AIçæåç¿»è¯
ð Gitea + PostgreSQL 设置æå
æä»¬æå»ºçå 容
ä¸ä¸ªèªæç®¡ç Git æå¡å¨ï¼ç±»ä¼¼äºè½»é级ç GitHubï¼ï¼ç± PostgreSQL æä¾å¯é çæ°æ®åå¨ï¼å¨ Docker ä¸è¿è¡ã
1. æ¶æ
âââââââââââââââââââââââââââââââââââââââââââââââ
â Browser / Git Client â
â http://192.168.1.36:3000 (web UI) â
â ssh://git@192.168.1.36:2222 (git SSH) â
ââââââââââââââââââââ¬âââââââââââââââââââââââââââ
â
ââââââââââââ¼âââââââââââ
â Docker: gitea â
â (Gitea container) â
â Port 3000 â web â
â Port 2222 â SSH â
ââââââââââââ¬âââââââââââ
â host.docker.internal
ââââââââââââ¼âââââââââââ
â PostgreSQL 16 â
â (host OS service) â
â Port 5433 â
â DB: gitea â
âââââââââââââââââââââââ
2. 鿥åè§£
æ¥éª¤ 1ï¼å®è£ PostgreSQL
sudo apt install -y postgresql postgresql-contrib
è¿ä¼å®è£ PostgreSQL 16ï¼Ubuntu 24.04 èªå¸¦ï¼ãå®ä¼èªå¨å建ï¼
- ä¸ä¸ª
postgresè¶ çº§ç¨æ·ï¼OS ç¨æ· + DB è§è²ï¼ - é»è®¤ç
mainé群å¨ç«¯å£ 5433ï¼ä¸æ¯ 5432 â ç«¯å£ 5432 æä¹åå®è£ çè¿æ¶/æåé群ï¼
æ¥éª¤ 2ï¼å¯å¨å¹¶å¯ç¨ PostgreSQL
sudo systemctl start postgresql
sudo systemctl enable postgresql
enable = 弿ºèªå¯ãæä»¬éè¦çå¾
çå»ï¼è®© socket åºç°ååè¿æ¥ã
æ¥éª¤ 3ï¼åå»ºæ°æ®åºç¨æ·åæ°æ®åº
sudo -u postgres psql -p 5433
CREATE USER gitea WITH PASSWORD 'gitea2026';
CREATE DATABASE gitea OWNER gitea;
GRANT ALL PRIVILEGES ON DATABASE gitea TO gitea;
æ¥éª¤ 4ï¼é
置认è¯ï¼pg_hba.confï¼
PostgreSQL éè¿ /etc/postgresql/16/main/pg_hba.conf æ§å¶è°å¯ä»¥è¿æ¥ãæä»¬æ·»å äºä¸¤æ¡è§åï¼
host gitea gitea 127.0.0.1/32 scram-sha-256
host gitea gitea 172.16.0.0/12 scram-sha-256
| è¡ | ä½ç¨ |
|---|---|
127.0.0.1/32 |
å 许æ¬å°è¿æ¥ï¼ç¨äºæµè¯/è°è¯ï¼ |
172.16.0.0/12 |
å 许 Docker 容å¨è¿æ¥ï¼Docker ä½¿ç¨ 172.16.x.x â 172.31.x.x èå´ï¼ |
scram-sha-256 |
ç°ä»£å¯ç 认è¯ï¼ä¸æ¯æ§ç md5ï¼ |
ç¼è¾åï¼æä»¬éå¯äº PostgreSQLï¼
sudo systemctl restart postgresql@16-main
æ¥éª¤ 5ï¼Gitea ç Docker Compose
å建 /opt/gitea/docker-compose.ymlï¼
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: always
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=host.docker.internal:5433
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea2026
- GITEA__server__ROOT_URL=http://192.168.1.36:3000
- GITEA__server__SSH_DOMAIN=192.168.1.36
- GITEA__server__SSH_PORT=2222
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- gitea_data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:22"
volumes:
gitea_data:
| å ³é®è®¾ç½® | 说æ |
|---|---|
restart: always |
å´©æºæé坿¶èªå¨éå¯ |
DB_TYPE=postgres |
ä½¿ç¨ PostgreSQL èé SQLite |
HOST=host.docker.internal:5433 |
Docker 容å¨è¿æ¥å°å®¿ä¸»ç PostgreSQL |
extra_hosts |
å° host.docker.internal æ å°å° Docker ç½å
³ IP |
ROOT_URL |
Gitea ç¨äºé¾æ¥/éå®åçå¤é¨ URL |
SSH_PORT=2222 |
é¿å ä¸å®¿ä¸»ç«¯å£ 22 ç SSH å²çª |
gitea_data volume |
ä»åºãé ç½®ççæä¹ åå¨ |
æ¥éª¤ 6ï¼å¼æ¾é²ç«å¢ç«¯å£
sudo ufw allow 3000/tcp comment 'gitea'
sudo ufw allow 2222/tcp comment 'gitea-ssh'
| ç«¯å£ | ç¨é |
|---|---|
| 3000 | Web UI (HTTP) |
| 2222 | Git over SSH (git clone ssh://git@host:2222/repo.git) |
æ¥éª¤ 7ï¼å¯å¨å¹¶éªè¯
cd /opt/gitea && docker compose up -d
curl -s -o /dev/null -w "%{http_code}" http://localhost:3000
# è¿å 200 â
3. 为ä»ä¹éæ© PostgreSQL èé SQLiteï¼
4. å®ç¨å½ä»¤
# Gitea
docker ps --filter name=gitea # ç¶æ
docker logs gitea -f # 宿¶æ¥å¿
cd /opt/gitea && docker compose restart
cd /opt/gitea && docker compose pull && docker compose up -d # æ´æ°
# PostgreSQL
sudo systemctl status postgresql@16-main
sudo -u postgres psql -p 5433 -d gitea # è¿æ¥å° Gitea DB
sudo -u postgres pg_dump -p 5433 gitea > /tmp/gitea-backup.sql # å¤ä»½
# é²ç«å¢
sudo ufw status numbered
5. å¿«éæ£æ¥æ¸ å
- æå¼
http://192.168.1.36:3000 - æ°æ®åºå段已é¢å¡«å â ç¹å» Install Gitea
- æ³¨åæ¨ç管çåè´¦æ·ï¼ç¬¬ä¸ä¸ªç¨æ·é»è®¤æ¯ç®¡çåï¼
- å建æ¨ç第ä¸ä¸ªä»åº
- éè¿ SSH å
éï¼
git clone ssh://git@192.168.1.36:2222/username/repo.git
éè¦æè®¾ç½® nginx åå代ç以使ç¨å¹²åçååï¼è¿æ¯é ç½®èªå¨ PostgreSQL å¤ä»½ï¼
