diff --git a/README.md b/README.md index 9f91606..c3d2749 100644 --- a/README.md +++ b/README.md @@ -1,79 +1,117 @@ -## 👋 Welcome to gitea 🚀 +# gitea -gitea README - - -## Install my system scripts +An all-in-one Alpine-based Docker image that bundles **Gitea** (self-hosted Git service), **Docker-in-Docker** (dockerd), and **act_runner** (Gitea Actions CI runner) into a single container. Designed for teams that want a complete self-hosted Git + CI/CD stack without orchestrating multiple containers. Gitea is pre-configured with Actions enabled, SSH access, LFS, and five act_runner worker instances that register automatically on first boot. + +--- + +## 🐳 Docker + +### Pull and run ```shell - sudo bash -c "$(curl -q -LSsf "https://github.com/systemmgr/installer/raw/main/install.sh")" - sudo systemmgr --config && sudo systemmgr install scripts +docker run -d \ + --restart always \ + --privileged \ + --name casjaysdevdocker-gitea-latest \ + --hostname gitea \ + -e TZ=${TIMEZONE:-America/New_York} \ + -v /var/lib/srv/$USER/docker/casjaysdevdocker/gitea/data:/data:z \ + -v /var/lib/srv/$USER/docker/casjaysdevdocker/gitea/config:/config:z \ + -p 80:80 \ + -p 7833:7833 \ + -p 2375:2375 \ + -p 44015:44015 \ + casjaysdevdocker/gitea:latest ``` - -## Automatic install/update - + +> **Note:** `--privileged` is required — the container runs a full Docker daemon (DinD) and needs cgroup v2 access. + +### Ports + +| Port | Protocol | Service | Description | +|------|----------|---------|-------------| +| `80` | TCP | Gitea | Web UI and HTTP clone | +| `7833` | TCP | sshd | Git SSH access (`git clone git@host:user/repo`) | +| `2375` | TCP | dockerd | Docker daemon (plain HTTP — bind to localhost or a trusted network only) | +| `44015` | TCP | act_runner | Actions artifact/cache server | + +### Volumes + +| Path | Description | +|------|-------------| +| `/config` | Gitea config, SSH host keys, act_runner registration state | +| `/data` | Gitea repositories, LFS objects, SQLite database, Docker layer cache | + +### Environment variables + +| Variable | Default | Description | +|----------|---------|-------------| +| `TZ` | `America/New_York` | Container timezone | +| `SERVER_ADDRESS` | `http://localhost` | Gitea URL used by act_runner for self-registration | +| `SERVER_TOKEN` | *(auto-generated)* | act_runner registration token — generated from Gitea on first boot if not set | +| `RUNNER_LABELS` | *(runner default)* | Comma-separated labels applied to all registered runners | +| `RUNNERS_START` | `5` | Number of act_runner worker instances to start | +| `RUNNERS_LOG_DIR` | `/var/log/act_runner` | Directory for per-runner log files | + +### docker-compose + +```yaml +services: + gitea: + image: casjaysdevdocker/gitea:latest + container_name: casjaysdevdocker-gitea + restart: always + privileged: true + hostname: gitea + environment: + - TZ=America/New_York + - RUNNERS_START=5 + volumes: + - /var/lib/srv/$USER/docker/casjaysdevdocker/gitea/data:/data:z + - /var/lib/srv/$USER/docker/casjaysdevdocker/gitea/config:/config:z + ports: + - 80:80 + - 7833:7833 + - 2375:2375 + - 44015:44015 +``` + +### Automatic install/update via dockermgr + ```shell dockermgr update gitea ``` - -## Install and run container - -```shell -dockerHome="/var/lib/srv/$USER/docker/casjaysdevdocker/gitea/gitea/latest/rootfs" -mkdir -p "/var/lib/srv/$USER/docker/gitea/rootfs" -git clone "https://github.com/dockermgr/gitea" "$HOME/.local/share/CasjaysDev/dockermgr/gitea" -cp -Rfva "$HOME/.local/share/CasjaysDev/dockermgr/gitea/rootfs/." "$dockerHome/" -docker run -d \ ---restart always \ ---privileged \ ---name casjaysdevdocker-gitea-latest \ ---hostname gitea \ --e TZ=${TIMEZONE:-America/New_York} \ --v "$dockerHome/data:/data:z" \ --v "$dockerHome/config:/config:z" \ --p 80:80 \ -casjaysdevdocker/gitea:latest -``` - -## via docker-compose - -```yaml -version: "2" -services: - ProjectName: - image: casjaysdevdocker/gitea - container_name: casjaysdevdocker-gitea - environment: - - TZ=America/New_York - - HOSTNAME=gitea - volumes: - - "/var/lib/srv/$USER/docker/casjaysdevdocker/gitea/gitea/latest/rootfs/data:/data:z" - - "/var/lib/srv/$USER/docker/casjaysdevdocker/gitea/gitea/latest/rootfs/config:/config:z" - ports: - - 80:80 - restart: always -``` - -## Get source files - -```shell -dockermgr download src casjaysdevdocker/gitea -``` - -OR - + +--- + +## 🛠️ Development + +### Get source files + ```shell git clone "https://github.com/casjaysdevdocker/gitea" "$HOME/Projects/github/casjaysdevdocker/gitea" ``` - -## Build container - + +### 🐳 Docker build + +The image builds for `linux/amd64` and `linux/arm64` via BuildX. Gitea and act_runner binaries are downloaded from GitHub/Gitea APIs at build time. + ```shell cd "$HOME/Projects/github/casjaysdevdocker/gitea" -buildx +buildx ``` - -## Authors - + +Image tags pushed: `casjaysdevdocker/gitea:latest` and `casjaysdevdocker/gitea:YYMM` (date tag). + +--- + +## 👤 Authors + 🤖 casjay: [Github](https://github.com/casjay) 🤖 -⛵ casjaysdevdocker: [Github](https://github.com/casjaysdevdocker) [Docker](https://hub.docker.com/u/casjaysdevdocker) ⛵ +⛵ casjaysdevdocker: [Github](https://github.com/casjaysdevdocker) [Docker](https://hub.docker.com/u/casjaysdevdocker) ⛵ + +--- + +## 📄 License + +MIT — see [LICENSE.md](LICENSE.md)