整理文档发现好多文件在多个终端设备上都有存档,整理起来费劲。希望所有文件可以多设备同步,频繁编辑的文件最好还兼具版本管理的功能。从有限的个人经验里想到先搭建个GitLab在个人局域网里,把频繁编辑文件的同步和管理解决掉。本文章在虚拟机的Unbuntu系统上装的Gitlab,先体验下,以后可打算装在实体机器上。

安装过程需网络,配置和同步过程需切换内网。每次同步都切换内网,虽麻烦但暂时不改。

涉及到vmare/ubuntu/gitlab/git/pkg/ssh/apt/vim/nano等软件或系统使用。

本文章步骤不详细主要列大纲,参考的文章都有链接,除unbuntu安装没参考其它文章。

1. win11 安装虚拟机

2. 虚拟机安装Unbuntu

  • ubuntu下载镜像源,官网下载需要login。
  • 考虑自己的内存和硬盘空间选择了一个无GUI的server版本ubuntu-24.04.1-live-server-amd64。

2.1 新建虚拟机

步骤略(本次用的配置为2核4G内存30G内存),在新建虚拟机向导中,指定磁盘容量步骤建议将虚拟机磁盘存储为单个文件(以便跟后续移动虚拟机时,给新虚拟机添加硬盘),大小根据需要而定 。

2.2 Unbuntu系统安装步骤

参考:虚拟机安装Ubuntu
配置虚拟机的cd/dvd路径为下载的ubuntu iso的路径.新建完成后直接开机即可,安装过程需要连网。

虚拟机开机,基本无脑下一步,记录自己做过的几个选择如下:

  1. 安装还是测试,选择安装。
  2. 已经下载的当前版本,是否update,选否。
  3. 键盘布局选择,使用的默认English-US。
  4. choose the base of installation.Unbuntu Server/--minimized/additional option search for the third-party drivers,选择第一个。
  5. network configuration 选的默认。
  6. proxy 没有填写。
  7. ubuntu mirror address 没有更改。
  8. 配置a guided storage layout,or custom(自定义)one,默认即可。
  9. 配置用户信息时myname/servername/username/pwd,分别是用户名字/机器名字/登陆系统用帐户和密码。
  10. 不升级ubuntu pro。
  11. 安装opensshserver。
  12. 网络适配器设置桥接模式/NAT模式/仅主机模式/自定义/LAN区段,使用的默认NAT模式。

3. Unbuntu安装Gitlab

参考:如何在Ubuntu 18.04上安装和配置GitLab
2023最新Ubuntu安装部署Gitlab详细教程(每个步骤均配图)

3.1 安装依赖项

sudo apt update
sudo apt-get upgrade
sudo apt-get install curl openssh-sever ca-certificates postfix

运行以上命令,在postfix安装时弹出的配置选项我选择的Internet Site 确定,下一页再确定就可以.

3.2 安装gitlab

参考linux中国上的文章如何在Ubuntu安装Gitlab

  1. 添加 GitLab 仓库,运行以下 curl 命令。它将自动检测你的 Ubuntu 版本并相应地设置仓库。

curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
2. 在ubuntu上自动安装和配置gitlab-ce
sudo apt install gitlab-ce。
3. 终端显示gitlab狐狸图形表示安装完成.

4. Gitlab服务器设置 (切换内网,虚拟机适配器改为桥接模式)

4.1 防火墙设置

sudo ufw allow http  
sudo ufw allow https   
sudo ufw allow OpenSSH  
sudo ufw status  

备注:允许http(80端口)和https(443)端口,/etc/services文件中提供了HTTP和HTTPS的端口映射协议,因此我们可以按名称允许该流量。sudo ufw status查看当前防火墙状态。

4.2 管理员用户名密码设置.

  1. 默认的管理员用户名root,密码存放在/etc/gitlab/initial_root_password文档中,需要修改。
    • 打开控制台 sudo gitlab-rails console -e production
    • 查询用户账号信息并赋值给u u=User.where(id:1).first
    • 设置root的密码 u.password = ''
    • 确认密码 u.password_confirmation = ''
    • 保存信息(勿丢感叹号) u.save!
    • 退出 exit
  2. /etc/gitlab/gitlab.rb中external_url设置gitlab网页ip和端口号,修改成了ubuntu的IP地址。
    "sudo vim /etc/gitlab/gitlab.rb"

4.3 服务器的签名证书(本步骤未验证,因为在内网中)

为提高安全性,可使用自签名证书或 Let's Encrypt 为 GitLab 实例配置 HTTPS。Let's Encrypt 只适用于互联网上有 A 记录的公有域。

  • sudo nano /etc/gitlab/gitlab.rb,进入规则文件将external_url中的http改为https.
  • 从Let's Encrypt请求和启用免费TLS / SSL证书的功能.取消注释并填写此内容letsencrypt['contact_emails']
  • 使用自签名证书来确保 GitLab 的安全。

4.4 常用服务器命令

  • 启动/停止/重启/重配gitlab服务 sudo gitlab-ctl start/stop/restart/reconfigure
  • 设置开机自启动 sudo systemctl enable gitlab-runsvdir.service

5. 登陆服务器及新建账号

  1. 网页登陆gitlab,地址栏输入unbuntu虚拟机的地址,管理员用户名密码用4.2里面设置的即可。
  2. 新建账号在登陆网页选择注册即可,注册完需要再以管理员账户登陆approve一下.

6. 服务器建仓库,win11建仓库并连接到服务器仓库

  • 用注册的账号登陆gitlab,新建test仓库,没有特殊需要使用默认选项.
  • win11上在需要上传的项目目录下,执行初始化仓库,暂存所有文档,提交(终端运行以下命令git init/git add ./git commit -m commitmessage).
  • 配置密钥使得本地主机能和gitlab服务器能建立ssh链接
    • win11主机在终端运行 ssh-keygen -t rsa [-C "it@szhuarong.com"],方括号内未验证.
      终端回应询问创建位置,和两次输入密码,本次使用的都是回车默认或空.本地用户目录的本账号目录下将会生成.ssh/id_rsa.pub(需要拷贝到GitLab).
  • 登陆新建的gitlab账号例如Example,单击个人资料设置在左侧列表中选择SSH密钥,添加新密钥,将id_rsa.pub中的内容拷贝到网页输入框内保存,取消时间框设置将密钥将永久有效.
  • 测试链接ssh -vT git@172.23.23.23,IP更换为自己的gitlab服务器IP即可.
  • 本地项目中添加远程项目的链接地址
    git remote add origin git@172.23.23.23:Example/test.git(假设你已经初始化好本地仓库并在Example账号下新建好工程test).
    git remote -v,查看本地设置的远程链接地址.
  • 将本地分支推送到远程.
    git push origin <branchname> branchname 要推送的分支名称.

7. 手机下载安装termux并连接到服务器仓库

网上搜索了许多推荐软件sgit mgit github/gitee网站推荐,最后决定用termux安装git,这样不用担心git客户端不升级,而且termux可以扩展更多应用。
参考 手机软件推荐安卓手机上的Git服务器

7.1 手机安装termux

termux github仓库termux wiki
下载安装termux,安装apk.下载的版本为termux-app_v0.118.1+github-debug_universal.apk。

7.2 termux 安装Git

在termux中安装git及相关软件.手机termux终端输入pkg install git openssh vim termux-auth.(并没有设置termux镜像,好像安装命令后自动测试了可用镜像源).

7.3 手机从Gitlab同步文档

  1. termux生成密钥拷贝到对应gitlab网页.termux终端输入 ssh-keygen -t rsa生成密钥,像步骤6里那样拷贝到Gitlab服务器即可。
  2. termux访问手机存储授权,termux终端输入termux-setup-storage.termux软件的存放路径在手机不可见,用pwd命令即使看到termux的路径也在手机中找不到.运行这条命令会将DCIM downloads music等文件夹挂在termux的当前home路径下。通过这步可以在手机可见的文件夹里同步文件。
  3. termux中cd /storage/download,然后git clone+仓库ssh地址即可。
  4. 修改文件后用git push 命令推送到服务器。
注意:
  1. 手机操作空白md文件后保存的不是UTF8格式,手机上装的软件目前还没找到能够另存为utf8的软件,暂时用mt管理器编辑文件。
  2. git仓库的分支管理;git fetch/merge/pull,git status/git show等常用命令熟悉。
  3. 在3.2.2中自动安装gitlab的时候不要设置EXTERNAL_URL(sudo EXTERNAL_URL="http://gitlab.linuxtechi.net" apt install gitlab-ce),否则在仓库生成的地址会@EXTERNAL_URL,然而不设置,默认是啥未知,只是手动把http://gitlab.linuxtechi.net改成了机器的IP地址。
posted on 2024-12-07 20:46  zdcn8315  阅读(9)  评论(0编辑  收藏  举报