CodeFever 项目从零开始安装指南:构建企业级代码托管平台

CodeFever 项目从零开始安装指南:构建企业级代码托管平台

前言

CodeFever 是一款功能强大的企业级代码托管平台,提供类似主流代码托管服务的功能体验。对于需要进行深度定制或技术研究的用户,从零开始安装是更好的选择。本文将详细介绍在 Linux 系统上从零开始安装 CodeFever 的完整流程。

适用场景

从零开始安装方式特别适合以下情况:

  1. 需要进行二次开发和功能定制
  2. 研究学习代码托管平台的实现原理
  3. 当前系统架构不支持容器化部署
  4. 需要调试和修复系统问题

系统环境准备

硬件要求

  • 最低内存要求:1800MB
  • 如果物理内存不足,可通过创建交换分区临时补充:
# 创建1GB交换分区
dd if=/dev/zero of=/root/swap bs=1024 count=1000000
mkswap /root/swap
swapon /root/swap

软件依赖安装

推荐使用 CentOS 7.x 系统,安装基础依赖包:

yum install -y sudo tcl tk gettext autoconf gcc cmake3 wget initscripts \
openssh-server crontabs mailx sendmail pcre pcre-devel libcurl libcurl-devel \
libxml2 libxml2-devel openssl openssl-devel sqlite sqlite-devel libpng \
libpng-devel libwebp libwebp-devel libjpeg libjpeg-devel libXpm libXpm-devel \
freetype freetype-devel oniguruma oniguruma-devel libyaml libyaml-devel

libzip 安装

CodeFever 需要 libzip 1.7+ 版本,需手动编译安装:

cd libzip-1.x.x
mkdir build
cd build
cmake3 ../
make && make install
export PKG_CONFIG_PATH="/usr/local/lib64/pkgconfig/:/usr/local/lib/pkgconfig/"

核心组件安装

Nginx 安装

编译安装 Nginx 到 /usr/local/nginx:

cd nginx-1.x.x
./configure --prefix=/usr/local/nginx
make && make install

PHP 安装

推荐使用 PHP 7.4 版本,编译安装到 /usr/local/php:

cd php-7.4.x
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc \
--enable-fpm --enable-bcmath=shared --with-pdo_sqlite --with-gettext=shared \
--with-iconv --enable-ftp=shared --with-sqlite3 --enable-mbstring=shared \
--enable-sockets=shared --enable-soap=shared --with-openssl --with-zlib \
--with-curl=shared --enable-gd --with-freetype --with-jpeg --with-xpm \
--with-webp --with-mhash --enable-opcache --with-mysqli --without-pear \
--with-libdir=lib64 --with-zip --enable-mbstring --enable-pcntl
make && make install

安装必要的 PHP 扩展:

cd yaml-2.x.x
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

Git 安装

编译安装 Git v2 到 /usr/local/git:

cd git-2.x.x
./configure --prefix=/usr/local/git
make && make install
ln -s /usr/local/git/bin/git /usr/local/bin/

Go 环境安装

安装 Go 1.16+ 版本:

cp -R go /usr/local
ln -s /usr/local/go/bin/go /usr/local/bin/go
ln -s /usr/local/go/bin/gofmt /usr/local/bin/gofmt

NodeJS 环境安装

安装 NodeJS 16.10+ LTS 版本:

cp -R node-v16.x.x-os-arch /usr/local/node
ln -s /usr/local/node/bin/node /usr/local/bin/node
ln -s /usr/local/node/bin/npm /usr/local/bin/npm
ln -s /usr/local/node/bin/npx /usr/local/bin/npx
ln -s /usr/local/node/bin/corepack /usr/local/bin/corepack

启用 Yarn:

corepack enable

数据库安装

推荐使用 MariaDB 或 MySQL 5.7+ 版本。安装后需执行安全初始化:

service mariadb start
mariadb-secure-installation

对于 MySQL 5.7,需要调整 SQL 模式:

set global sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

CodeFever 安装与配置

获取源代码

mkdir -p /data/www
cd /data/www
git clone codefever.git codefever-community
cd codefever-community

编译网关服务

HTTP 网关编译:

cd /data/www/codefever-community/http-gateway
export GO111MODULE=off
export GOPROXY=https://mirrors.aliyun.com/goproxy
go get gopkg.in/yaml.v2
go build main.go

SSH 网关编译:

cd /data/www/codefever-community/ssh-gateway/shell
export GO111MODULE=off
export GOPROXY=https://mirrors.aliyun.com/goproxy
go get gopkg.in/yaml.v2
go build main.go

执行安装脚本

cd /data/www/codefever-community/misc
sh ./install.sh

根据提示修改 env.yaml 配置文件后,初始化数据库:

sh ./create_db.sh

可选删除测试数据:

sh ./remove_test_data.sh

设置开机启动

chkconfig mariadb on
chkconfig sendmail on
chkconfig nginx on
chkconfig php-fpm on
chkconfig codefever on
chkconfig crond on

系统访问与初始配置

安装完成后,可通过以下方式访问:

  • 本地访问:http://127.0.0.1
  • 网络访问:http://<服务器IP>

默认管理员账号:

  • 用户名:root@codefever.cn
  • 密码:123456

安全提示:首次登录后请立即修改默认密码并启用多因素认证(MFA)。

常见问题解决

  1. 内存不足:确保系统有足够内存或配置交换分区
  2. 依赖缺失:根据编译错误提示安装缺少的依赖包
  3. 数据库连接问题:检查 env.yaml 中的数据库配置是否正确
  4. 服务启动失败:查看对应服务的日志文件排查问题

后续维护

系统正常运行后,建议定期:

  • 检查服务状态
  • 备份重要数据
  • 更新系统安全补丁
  • 监控系统资源使用情况

通过以上步骤,您已成功从零开始安装 CodeFever 代码托管平台。如需进一步定制或优化,可参考官方文档进行深入配置。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值