Запуск GItea в Docker.
docker-compose.yml для запуска gitea:
version: "3.9"
services:
postgresql:
image: postgres:14.5-alpine
ports:
- '5432:5432'
environment:
# init DB
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=PASSWORD
volumes:
- /opt/postgresql-data:/var/lib/postgresql/data
- /etc/localtime:/etc/localtime:ro
- /etc/hosts:/etc/hosts:ro
healthcheck:
test: ["CMD-SHELL", "pg_isready"]
interval: 20s
timeout: 10s
retries: 5
# swarm
deploy:
placement:
constraints:
- "node.labels.hostname == srv-prod-db-01"
gitea:
image: gitea/gitea:1.17.3
restart: always
environment:
- USER_UID=1000
- USER_GID=1000
volumes:
- /mnt/gluster-storage/interlan/gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- '18080:3000'
- '2224:22'
# swarm
deploy:
placement:
constraints:
- "node.labels.status == worker"
Настройка
Во первых, создаем базу данных и пользователя в Postgresql, желательно все это хозяйство как-то изначально унифицировать и в мастере конфигурирования прописываем необходимые параметры.

Установка Gitea локально в Ubuntu 20.04
Создаем каталог в /opt/ где будет жить сервис, скачиваем и делаем исполняемым
# mkdir /opt/gitea
# cd /opt/gitea/
# wget -O gitea https://dl.gitea.io/gitea/1.17.3/gitea-1.17.3-linux-amd64
# chmod +x ./gitea
Создаем пользователя от имени которого будет запускаться Gitea и тестовый запуск
# adduser --system --shell /bin/bash --gecos 'Gitea' --group --disabled-password --home /opt/gitea/ git
# chown -R git:git /opt/gitea/
# su git
$ ./gitea --port 18001
Теперь можно подключиться браузером на указанный порт (в моем случае http://185.135.80.10:18001)
Базовая настройка довольно простая.
- Создаем базу данных и пользователя
- В настройках web-интерфейса прописываем базу и пока больше ничего не меняем
Настройка для запуска в реальном окружении
- Создаем домен где все это будет крутиться
- Получаем сертификат Let’s encrypt
- Создаем реверс-прокси на домен
- Меняем в настройках конфига все под созданный домен
SystemD unit для запуска Gitea
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
[Service]
LimitNOFILE=524288:524288
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/opt/gitea
ExecStart=/opt/gitea/gitea web --port 18001
Restart=always
Environment=USER=git HOME=/opt/gitea/ GITEA_WORK_DIR=/opt/gitea/
[Install]
WantedBy=multi-user.target