Gitea:私有部署Git托管服务(私有Git仓)

目录

git和Gitea简介

 服务端部署

 部署环境概览

创建操作系统用户

下载并解压

 修改初始配置


git和Gitea简介

git 是一个开源的分布式版本控制系统,用途类使用SVN的版本控制和多人协同,但不同于SVN的是,git在设计之初即是分布式。

基于git版本控制技术,出现了github、gitlab等托管平台,不过这些托管平台是对公网服务。而Gitea 是一个可自己私有部署,自行托管的Git服务程序。他和GitHub, Bitbucket or Gitlab等比较类似。他是从 Gogs 发展而来。

本文通过Gitea在私有服务器环境搭建git的自有托管平台(私有化部署)

 服务端部署

  1.  部署环境概览

Linux服务器

IP:20.200.54.51

已经安装git 1.8.3.1软件。

(若无则通过yum install git 安装)

gitea版本

gitea-1.16.6-linux-amd64

https://dl.gitea.io/gitea/1.16.6/gitea-1.16.6-linux-amd64

gitea运行用户

操作系统用户:gitea

为了规范和权限隔离,建立专门用户

gitea数据库

"postgres://[email protected]/giteadb"

数据库创建见后文

gitea仓存放目录

/app/gitea/data/gitea-repositories

服务端所有仓存放的基目录

gitea Web界面

http://20.200.54.51:3000

内部使用,不启用HTTPS

准备数据库(PostgreSQL)

Gitea需要使用数据库用于保存用户、权限、工程、评论、通知、任务等信息。

可以选择MySQL或PostgreSQL 其一即可。本节以PostgreSQL 10.5为例。

1、安装PostgreSQL服务端软件(过程略)

2、通过psql客户端登录,创建gitea专用的数据库连接用户

CREATE ROLE gitea WITH LOGIN PASSWORD 'gitea';

3、通过psql客户端登录,创建database和schema

CREATE DATABASE giteadb WITH OWNER gitea  ENCODING UTF8 LC_COLLATE 'zh_CN.UTF-8' LC_CTYPE 'zh_CN.UTF-8';

\c giteadb gitea;      -- 以gitea用户登录至giteadb数据库

CREATE SCHEMA giteadb;

alter role gitea set search_path=giteadb,public;     -- 设置search_path

4、根据实际情况修改pg_hba.conf,允许客户端访问PostgreSQL数据库

5、创建对象和数据初始化(无需执行,由gitea软件连上后自动完成初始化动作)。

准备数据库(MySQL)

Gitea需要使用数据库用于保存用户、权限、工程、评论、通知、任务等信息。

可以选择MySQL或PostgreSQL 其一即可。本节以MySQL 8.0为例。

1、安装MySQL软件(过程略)

2、通过mysql客户端登录,创建gitea专用的数据库连接用户

CREATE USER 'gitea'@'%' IDENTIFIED BY 'gitea';

3、通过mysql客户端登录,创建database(既schema)

CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';

4、赋予权限

GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea'@'%';

FLUSH PRIVILEGES;

  1. 创建对象和数据初始化(无需执行,由gitea软件连上后自动完成初始化动作)。

​​​​​​​创建操作系统用户

在操作系统使用root用户执行以下命令,创建gitea运行专用用户如下

adduser --home /app/gitea gitea

​​​​​​​下载并解压

使用gitea用户登录,下载并运行

#若能访问公网,则可以直接下载

wget https://dl.gitea.io/gitea/1.16.6/gitea-1.16.6-linux-amd64

#解压(只有一个单文件)

xz -d gitea-1.16.6-linux-amd64.xz

chmod +x gitea-1.16.6-linux-amd64

​​​​​​​ 修改初始配置

通常有两种方式:

  • 提前准备好ini配置文件,可在启动时通过-c参数指定ini配置文件
  • 由gitea自动生成配置文件。(下文介绍此方式)

  1. 使用gitea用户登录,首次运行。

./gitea-1.16.6-linux-amd64

首次运行时,gitea会自动生产配置文件custom/conf/app.ini

  1. 通过浏览器首次访问:http://20.200.54.51:3000  因刚安装干净的,会自动出现初始配置界面如下。

Gitea:私有部署Git托管服务(私有Git仓)_第1张图片

Gitea:私有部署Git托管服务(私有Git仓)_第2张图片

Gitea:私有部署Git托管服务(私有Git仓)_第3张图片 Gitea:私有部署Git托管服务(私有Git仓)_第4张图片

通过在以上Web初始界面编辑的配置内容后,会自动完成对数据库对象初始化工作;自动写入到custom/conf/app.ini配置文件中(用户创建在数据库表中)。得到的配置文件custom/conf/app.ini内容如下:

APP_NAME = 自有Gitea托管平台

RUN_USER = gitea

RUN_MODE = prod

[security]

INTERNAL_TOKEN     = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE2NDE3ODA2MDl9.xxBOCQegIwfFN_b1fJc4K9kR_HyolPqNo50rbEm9Wik

INSTALL_LOCK       = true

SECRET_KEY         = VtCdLtEnpt101aMZ1B24NdGq8KpijaG9pVfVCfugyYNcWuqSVjU3eRR0GJ3QlDWe

PASSWORD_HASH_ALGO = pbkdf2

[database]

DB_TYPE  = postgres

HOST     = 20.200.54.51:5432

NAME     = giteadb

USER     = gitea

PASSWD   = gitea

SCHEMA   = giteadb

SSL_MODE = disable

CHARSET  = utf8

PATH     = /app/gitea/data/gitea.db

LOG_SQL  = false

[repository]

ROOT = /app/gitea/data/gitea-repositories

[server]

SSH_DOMAIN       = 20.200.54.51

DOMAIN           = 20.200.54.51

HTTP_PORT        = 3000

ROOT_URL         = http://20.200.54.51:3000/

DISABLE_SSH      = false

SSH_PORT         = 22

LFS_START_SERVER = true

LFS_CONTENT_PATH = /app/gitea/data/lfs

LFS_JWT_SECRET   = u_pQCSJ763rPl3L3fvnXFhoddcEGIPNyDCmcNZTk7B4

OFFLINE_MODE     = false

[mailer]

ENABLED = false

[service]

REGISTER_EMAIL_CONFIRM            = false

ENABLE_NOTIFY_MAIL                = false

DISABLE_REGISTRATION              = true

ALLOW_ONLY_EXTERNAL_REGISTRATION  = false

ENABLE_CAPTCHA                    = false

REQUIRE_SIGNIN_VIEW               = false

DEFAULT_KEEP_EMAIL_PRIVATE        = false

DEFAULT_ALLOW_CREATE_ORGANIZATION = true

DEFAULT_ENABLE_TIMETRACKING       = true

NO_REPLY_ADDRESS                  = noreply.localhost

[picture]

DISABLE_GRAVATAR        = false

ENABLE_FEDERATED_AVATAR = true

[openid]

ENABLE_OPENID_SIGNIN = true

ENABLE_OPENID_SIGNUP = false

[session]

PROVIDER = file

[log]

MODE      = console

LEVEL     = info

ROOT_PATH = /app/gitea/log

ROUTER    = console

你可能感兴趣的:(Git,git,gitea)