Debian 安装Gogs教程

简介

Gogs是一个私有化部署的轻量级git服务端,刚好在小内存的服务器上可以良好的运行,本文就来介绍下如何安装

一键安装脚本

我用AI搓了一个一键安装Gogs的脚本,复制下面的代码,保存为sh文件,以root权限运行。

#!/usr/bin/env bash
set -euo pipefail

GOGS_VERSION="${GOGS_VERSION:-0.14.3}"
GOGS_USER="${GOGS_USER:-git}"
GOGS_HOME="${GOGS_HOME:-/home/git}"
GOGS_DIR="${GOGS_DIR:-/opt/gogs}"
GOGS_PORT="${GOGS_PORT:-3005}"

if [ "$(id -u)" -ne 0 ]; then
  echo "请用 root 运行:sudo bash install-gogs.sh"
  exit 1
fi

echo "==> 安装依赖"
apt update
apt install -y git curl tar ca-certificates

echo "==> 检测 nologin 路径"
NOLOGIN="/usr/sbin/nologin"
if [ ! -x "$NOLOGIN" ]; then
  NOLOGIN="/sbin/nologin"
fi

echo "==> 检测系统架构"
ARCH="$(uname -m)"
case "$ARCH" in
  x86_64|amd64)
    GOGS_ARCH="amd64"
    ;;
  aarch64|arm64)
    GOGS_ARCH="arm64"
    ;;
  i386|i686)
    GOGS_ARCH="386"
    ;;
  armv7l)
    GOGS_ARCH="armv7"
    ;;
  *)
    echo "不支持的架构:$ARCH"
    exit 1
    ;;
esac

PKG="gogs_v${GOGS_VERSION}_linux_${GOGS_ARCH}.tar.gz"
URL="https://github.com/gogs/gogs/releases/download/v${GOGS_VERSION}/${PKG}"

echo "==> 创建或加固用户:${GOGS_USER}"
if ! id "${GOGS_USER}" >/dev/null 2>&1; then
  adduser --system \
    --disabled-password \
    --group \
    --home "${GOGS_HOME}" \
    --shell "${NOLOGIN}" \
    "${GOGS_USER}"
else
  usermod -d "${GOGS_HOME}" -s "${NOLOGIN}" "${GOGS_USER}"
fi

passwd -l "${GOGS_USER}" >/dev/null 2>&1 || true

echo "==> 下载 Gogs ${GOGS_VERSION}"
cd /tmp
rm -f "${PKG}"
curl -fL -o "${PKG}" "${URL}"

echo "==> 安装到 ${GOGS_DIR}"
if [ -d "${GOGS_DIR}" ]; then
  BACKUP="${GOGS_DIR}.bak.$(date +%Y%m%d%H%M%S)"
  echo "检测到已有 ${GOGS_DIR},备份到 ${BACKUP}"
  mv "${GOGS_DIR}" "${BACKUP}"
fi

tar -xzf "${PKG}" -C /opt

echo "==> 预设 Gogs 端口:${GOGS_PORT}"
mkdir -p "${GOGS_DIR}/custom/conf"
cat >"${GOGS_DIR}/custom/conf/app.ini" <<EOF
[server]
HTTP_PORT = ${GOGS_PORT}
ROOT_URL = http://localhost:${GOGS_PORT}/
EOF

chown -R "${GOGS_USER}:${GOGS_USER}" "${GOGS_DIR}" "${GOGS_HOME}"

echo "==> 创建 systemd 服务"
cat >/etc/systemd/system/gogs.service <<EOF
[Unit]
Description=Gogs
After=network.target

[Service]
Type=simple
User=${GOGS_USER}
Group=${GOGS_USER}
WorkingDirectory=${GOGS_DIR}
ExecStart=${GOGS_DIR}/gogs web
Restart=always
RestartSec=3
Environment=USER=${GOGS_USER}
Environment=HOME=${GOGS_HOME}

[Install]
WantedBy=multi-user.target
EOF

echo "==> 启动 Gogs"
systemctl daemon-reload
systemctl enable --now gogs

echo
echo "安装完成。"
echo "git 用户已加固:"
echo "  Shell: ${NOLOGIN}"
echo "  Password: locked"
echo
echo "访问地址:"
echo "  http://服务器IP:${GOGS_PORT}"
echo
echo "查看状态:"
echo "  systemctl status gogs"
echo
echo "查看日志:"
echo "  journalctl -u gogs -f"
echo
echo "首次打开网页后,数据库可选择 SQLite3。"

安装脚本会自动化的创建git账号 以及配置好系统启动服务,并且会将gogs的端口设置为3005端口

配置数据

运行完成后 访问3005端口,可以看到首次运行安装程序,填入数据库的地址(可用sqllite)。配置完成后点击确认。

完成安装

安装完成后,首次注册的账号默认即为管理员账号(所以请尽量完成首次注册与登录)

--------------

本文标题为:

Debian 安装Gogs教程

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇