43 lines
2.1 KiB
Markdown
43 lines
2.1 KiB
Markdown
# Service Setup Guide: Gitea
|
|
|
|
Gitea is a painless self-hosted Git service covering the entire software development lifecycle.
|
|
|
|
## 1. Pre-Setup (Manual)
|
|
### Create Service User
|
|
- [ ] **Manual**: Create a local user named `svc-gitea` in Synology DSM (Control Panel > User & Group).
|
|
- [ ] **Manual**: Give this user read/write access to the `docker` shared folder.
|
|
|
|
### Get User IDs
|
|
- [ ] **Manual**: SSH into your NAS and run `sudo synouser --get svc-gitea`.
|
|
- [ ] **Confirmed IDs**: Locate the `User ID` (PUID) and `Group ID` (PGID).
|
|
- [ ] **Action**: Open `create_gitea_folders.sh` and update the `USER_ID="[PUID]:[PGID]"` line.
|
|
- [ ] **Action**: Open `stack.env` and update the `USER_UID` and `USER_GID` variables.
|
|
|
|
## 2. Infrastructure Setup
|
|
### Run Setup Script
|
|
- [ ] **Action**: Run the setup script in Dry-Run mode to verify changes:
|
|
```bash
|
|
sudo bash create_gitea_folders.sh
|
|
```
|
|
- [ ] **Action**: Apply the folder creation and ownership settings:
|
|
```bash
|
|
sudo bash create_gitea_folders.sh --run
|
|
```
|
|
|
|
## 3. Portainer Deployment
|
|
### Environment Variables
|
|
- [ ] **Action**: Review `stack.env`. Ensure `DOMAIN` and `ROOT_URL` exactly match the Cloudflare configuration (e.g., `gitea.chengs.uk`) to prevent the mismatch security error.
|
|
|
|
### Deploy Stack
|
|
- [ ] **Action**: Create a new stack named `gitea-stack`.
|
|
- [ ] **Action**: Upload or paste the environment variables from `stack.env`.
|
|
- [ ] **Action**: Paste the content of `docker-compose.portainer.yml` and deploy.
|
|
- [ ] **Verification**: Access the Gitea web interface at `http://[NAS_IP]:3001` (or whatever HTTP port you defined).
|
|
|
|
## 4. Troubleshooting
|
|
### ROOT_URL Error Mismatch
|
|
If you ever see the error:
|
|
`Your ROOT_URL in app.ini is "http://...", it's unlikely matching the site you are visiting.`
|
|
|
|
This means Gitea's security system noticed you are accessing it from a different URL than it was configured for. Ensure the `GITEA__server__DOMAIN` and `GITEA__server__ROOT_URL` environment variables exactly match the public address you use (like a Cloudflare Tunnel domain). This is already permanently fixed via the environment variables in the provided `docker-compose.portainer.yml` file.
|