2.3 KiB
2.3 KiB
Gitea
Self-hosted Git service (GitHub alternative).
Access
- Tailscale: gitea.bunny-wyvern.ts.net
- LAN Web:
http://192.168.2.114:3000 - LAN SSH:
ssh://192.168.2.114:2222
Containers
| Container | Image | Role |
|---|---|---|
gitea |
gitea/gitea:latest |
Web app + Git server |
gitea_db |
mysql:8 |
MySQL database |
gitea-tailscale-sidecar |
tailscale/tailscale:latest |
Tailscale node |
Compose File
Path: /home/artanis/DockerFiles/gitea/docker-compose.yml
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: unless-stopped
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=db:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=<redacted>
volumes:
- /home/artanis/DockerFiles/gitea/gitea_data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:2222"
db:
image: mysql:8
container_name: gitea_db
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=<redacted>
- MYSQL_DATABASE=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=<redacted>
volumes:
- /home/artanis/DockerFiles/gitea/gitea_db_data:/var/lib/mysql
gitea-tailscale-sidecar:
image: tailscale/tailscale:latest
container_name: gitea-tailscale-sidecar
restart: always
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun
volumes:
- gitea_tailscale_state:/var/lib/tailscale
environment:
- TS_AUTHKEY=<redacted>
- TS_HOSTNAME=gitea
- TS_STATE_DIR=/var/lib/tailscale
network_mode: "service:gitea"
volumes:
gitea_tailscale_state:
Data Layout
| Path | Contents |
|---|---|
/home/artanis/DockerFiles/gitea/gitea_data |
Gitea repos, config, attachments |
/home/artanis/DockerFiles/gitea/gitea_db_data |
MySQL data directory |
Notes
- Database: MySQL 8 (separate container
gitea_db) - Port 2222 is exposed for SSH-based Git operations (clone/push via
ssh://) - Timezone files from the host are mounted read-only to keep Gitea's timestamps consistent