准备工作
- 到https://freessl.cn/为域名申请一个免费的ssl证书,并导出。把压缩包中的git-xxx-com.crt文件和git-xxx-com_key.key文件复制到服务器中的/var/lib/gitea目录
Gitea安装
- 首先您要安装好docker,然后pull出gitea最新版。
docker pull gitea/gitea
- 运行docker容器
docker run --name gitea -d -p 3000:3000 -p 10022:22 -p 10443:443 -v /var/lib/gitea:/data --privileged=true --restart=always gitea/gitea
- 修改gitea配置
vi /var/lib/gitea/gitea/conf/app.ini
主要修改PROTOCOL,ROOT_URL,REDIRECT_OTHER_PORT,PORT_TO_REDIRECT,CERT_FILE,KEY_FILE这几个设置即可
APP_NAME = git.xxx.com
RUN_MODE = prod
RUN_USER = git
[repository]
ROOT = /data/git/repositories
[repository.local]
LOCAL_COPY_PATH = /data/gitea/tmp/local-repo
[repository.upload]
TEMP_PATH = /data/gitea/uploads
[server]
PROTOCOL = https
APP_DATA_PATH = /data/gitea
SSH_DOMAIN = git.xxx.com
HTTP_PORT = 3000
ROOT_URL = https://git.xxx.com:3000/
REDIRECT_OTHER_PORT = true
PORT_TO_REDIRECT = 10443
CERT_FILE = /data/git-xxx-com-https/git.xxx.com.crt
KEY_FILE = /data/git-xxx-com-https/git.xxx.com_key.key
DISABLE_SSH = false
SSH_PORT = 22
LFS_START_SERVER = true
LFS_CONTENT_PATH = /data/git/lfs
DOMAIN = git.xxx.com
[service.explore]
REQUIRE_SIGNIN_VIEW = true #未登录用户禁止查看探索页面
- 重启容器
docker restart gitea
这样就可以通过https://git.xxx.com:3000访问站点了。
通过上面的配置我们确实可以通过https访问我们的gitea服务了,但是这种方式配置证书非常不方便,而且有个更严重的问题是当我们的https证书过期时候,我们得手动申请证书再复制到指定目录下,有没有什么办法自动生成永不过期的证书呢?当然有啦,参考我的这篇文章使用NEXUS3搭建DOCKER镜像仓库的后半部分,安装nginxwebui,生成https证书,然后通过nginxwebui做代理转发即可。不同的是gitea的配置文件中就不需要进行https证书的配置了,参考如下:
APP_NAME = git.xxx.com
RUN_MODE = prod
RUN_USER = git
[repository]
ROOT = /data/git/repositories
[repository.local]
LOCAL_COPY_PATH = /data/gitea/tmp/local-repo
[repository.upload]
TEMP_PATH = /data/gitea/uploads
[server]
PROTOCOL = http #改成http
APP_DATA_PATH = /data/gitea
SSH_DOMAIN = git.xxx.com
HTTP_PORT = 3000
ROOT_URL = https://git.xxx.com:3000/
去掉这几个配置
#REDIRECT_OTHER_PORT = true
#PORT_TO_REDIRECT = 10443
#CERT_FILE = /data/git-xxx-com-https/git.xxx.com.crt
#KEY_FILE = /data/git-xxx-com-https/git.xxx.com_key.key
DISABLE_SSH = false
SSH_PORT = 22
LFS_START_SERVER = true
LFS_CONTENT_PATH = /data/git/lfs
DOMAIN = git.xxx.com
[service.explore]
REQUIRE_SIGNIN_VIEW = true #未登录用户禁止查看探索页面
评论区