Актуализирован README, шаблон конфига gitea

This commit is contained in:
2025-09-25 11:21:31 +08:00
parent eb9d44a3c7
commit 1883f6459b
3 changed files with 2931 additions and 71 deletions

3
.gitignore vendored
View File

@@ -1,4 +1,4 @@
/gitea/*.ini /gitea/app.ini
/gitea/data/ /gitea/data/
/runner/*.yaml /runner/*.yaml
@@ -17,7 +17,6 @@
*.sql *.sql
*.sql.* *.sql.*
*.log *.log
*.ini
*dump* *dump*
*backup* *backup*

View File

@@ -14,34 +14,37 @@
### Для переноса сервисов с другого сервера ### Для переноса сервисов с другого сервера
1. Клонировать репозиторий 1. Клонировать репозиторий
2. Выполнить `cp .env.example .env` и указать корректные данные для подключения 2. Выполнить `cp ./.env.example ./.env` и указать корректные данные для подключения
3. (Необязательно) Для переноса инстанса Gitea: 3. Создать пользователя git, подробности [описаны в блоге](https://axenov.dev/gitea-to-docker)
1. Потушить сервис (не сервер) 4. Выполнить `cp ./gitea/app.example.ini ./gitea/app.ini` и указать необходимые настройки
2. Выполнить `cp compose.override.yml.example compose.override.yml` **ИЛИ**
3. Скопировать существующий конфиг в `./gitea/app.ini` и скорректировать по необходимости - (Необязательно) Для переноса инстанса Gitea:
4. Снять дамп mysql и положить в `./gitea/dump.sql.gz` - Потушить сервис (не сервер)
5. Директории с данными скопировать в `./gitea/data` - Выполнить `cp ./compose.override.yml.example ./compose.override.yml`
4. (Необязательно) Для переноса инстанса Gitea Runner: - Скопировать существующий конфиг в `./gitea/app.ini` и скорректировать по необходимости
* Выполнить `cp compose.override.yml.example compose.override.yml`, если ещё не - Снять дамп mysql и положить в `./gitea/dump.sql.gz`
* Скопировать старый конфиг в `./runner/config.yaml` и скорректировать по необходимости - Директории с данными скопировать в `./gitea/data`
ИЛИ - (Необязательно) Для переноса инстанса Gitea Runner:
* Выполнить `cp ./runner/config.example.yaml ./runner/config.yaml` и скорректировать по необходимости - Выполнить `cp ./compose.override.yml.example ./compose.override.yml`, если ещё не
5. (Необязательно) Для переноса инстанса OpenGist: - Скопировать старый конфиг в `./runner/config.yaml` и скорректировать по необходимости
1. Потушить сервис (не сервер) **ИЛИ**
2. Выполнить `cp compose.override.yml.example compose.override.yml` - Выполнить `cp ./runner/config.example.yaml ./runner/config.yaml` и скорректировать по необходимости
3. Скопировать существующий конфиг скопировать в `./opengist/opengist.yml` и скорректировать по необходимости - (Необязательно) Для переноса инстанса OpenGist:
4. Снять дамп mysql и положить в `./opengist/dump.sql.gz` - Потушить сервис (не сервер)
5. Директории с данными скопировать в `./opengist/data` - Выполнить `cp ./compose.override.yml.example ./compose.override.yml`, если ещё не
6. Убедиться, что владельцем `./` является юзер с `UID`=`1000`, если не -- `cd ..; chown -R 1000:1000 gitea; cd -` - Скопировать существующий конфиг скопировать в `./opengist/opengist.yml` и скорректировать по необходимости
7. Запустить через `docker compose up -d --build` - Снять дамп mysql и положить в `./opengist/dump.sql.gz`
8. Проверить логи через `docker logs -f ...` - Директории с данными скопировать в `./opengist/data`
9. Проверить веб-морды через `curl -I localhost:...` 1. Убедиться, что владельцем `./` является юзер с `UID`/`GID`=`1000`, если нет -- `chown -R 1000:1000 ./`
2. Запустить через `docker compose up -d --build`
3. Проверить логи через `docker logs -f ...`
4. Проверить веб-морды через `curl -I localhost:...`
5. (Необязательно) Если есть домены:
- Настроить nginx на хосте как реверс-прокси из внешки в контейнеры:
(поменять `server_name` и порты на свои)
Опционально, если есть домены: <details>
<summary>Файл: /etc/nginx/sites-available/gitea.conf</summary>
10. Настроить nginx на хосте как реверс-прокси из внешки в контейнеры: (поменять `server_name` и порты на свои)
Файл: `/etc/nginx/sites-available/gitea.conf`
``` ```
server { server {
@@ -59,7 +62,10 @@ server {
} }
``` ```
Файл: `/etc/nginx/sites-available/opengist.conf` </details>
<details>
<summary>Файл: /etc/nginx/sites-available/opengist.conf</summary>
``` ```
server { server {
@@ -77,7 +83,9 @@ server {
} }
``` ```
Сделать линки и перезапустить `nginx` </details>
- Сделать линки и перезапустить `nginx`
```shell ```shell
ln -s /etc/nginx/sites-available/gitea.conf /etc/nginx/sites-enabled/gitea.conf ln -s /etc/nginx/sites-available/gitea.conf /etc/nginx/sites-enabled/gitea.conf
@@ -86,17 +94,15 @@ unlink /etc/nginx/sites-enabled/default
systemctl restart nginx systemctl restart nginx
``` ```
11. Переключить DNS на новый IP - Переключить DNS на новый IP
12. Проверить веб-морды по доменам через `curl -i ...` - Проверить веб-морды по доменам через `curl -i ...`
13. Настроить SSL через `certbot` - (Необязательно) Настроить SSL через `certbot`
### Для деплоя с нуля ## Gitea + ssh через хостовый порт
Всё то же, но шаги 3-5 можно полностью пропустить. Если порт openssh на хосте занят (по дефолту 22), то пробросить его же напрямую из докера не получится.
## Gitea + ssh через хост Поэтому предлагается использовать порт 222 или другой (`GITEA_HOST_SSH_PORT`)
Если порт openssh на хосте занят (по дефолту 22), то пробросить порт напрямую из докера не получится.
1. Запомнить абсолютный путь до скрипта [./gitea/gitea.sh](./gitea/gitea.sh) (например, `/home/user/gitea/gitea/gitea.sh`) 1. Запомнить абсолютный путь до скрипта [./gitea/gitea.sh](./gitea/gitea.sh) (например, `/home/user/gitea/gitea/gitea.sh`)
2. Назначить его оболочкой для системного юзера `git` 2. Назначить его оболочкой для системного юзера `git`
@@ -152,13 +158,14 @@ time="2025-04-08T02:14:17Z" level=info msg="runner: gitea-runner, with version:
Если во время выполнения экшена `actions/checkout@v4` возникает ошибка `Could not resolve host`, то в конфиге `./runner/config.yaml` надо указать имя сети: Если во время выполнения экшена `actions/checkout@v4` возникает ошибка `Could not resolve host`, то в конфиге `./runner/config.yaml` надо указать имя сети:
```yaml ```yaml
#...
container: container:
network: "gitea_network" network: "gitea_network"
#...
``` ```
Доп. информация: Доп. информация:
* https://axenov.dev/gitea-to-docker * https://axenov.dev/gitea-to-docker
* https://docs.gitea.com/installation/install-with-docker-rootless
* https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini
* https://docs.gitea.com/administration/config-cheat-sheet
* https://docs.gitea.com/usage/actions/quickstart * https://docs.gitea.com/usage/actions/quickstart
* https://docs.gitea.com/usage/actions/act-runner * https://docs.gitea.com/usage/actions/act-runner

2854
gitea/app.example.ini Normal file

File diff suppressed because it is too large Load Diff