86 lines
2.3 KiB
Markdown
86 lines
2.3 KiB
Markdown
# Gitea
|
|
|
|
Self-hosted Git service (GitHub alternative).
|
|
|
|
## Access
|
|
- **Tailscale:** [gitea.bunny-wyvern.ts.net](https://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`
|
|
|
|
```yaml
|
|
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
|