您正在查看: 学习心得 分类下的文章

使用Gitea+Drone来搭建自己的轻量级CI/CD自动构建平台

上一次我们使用Gitea搭建了自己的Git版本控制系统,可以用来管理自己的代码
还需要一个自动构建工具来解放生产力,这里我推荐使用Drone来搭建CI/CD持续集成,持续部署平台 你懂的.png
为什么选用Gitea+Drone呢?因为这两款软件都是基于go编写的,运行过程中可谓十分轻量级,对于资源的占用都是很少的,并且都可以基于docker来安装,安装部署起来十分方便
相对来说主流的Gitlab+Jenkins一套下来对于资源的占用,个人是很难能流畅运行的,至少我的机器连个Gitlab都跑不起来,更别提使用Java编写的Jenkins了。。。 汗.png
废话少说,直接开搞~ 滑稽.png
这里我的服务器环境使用的是最新的CentOS7 x64系统,只安装了一个docker


1 安装Gitea

Gitea的安装过程详见:https://ffis.me/experience/1960.html
这里就不做过多的阐述了

2 安装Drone

新版的Drone可以直接使用OAuto2和drone进行通信,无缝集成,配置完成后只需要得到gitea的授权即可进入drone平台,连账户和密码都不用输了

- 阅读剩余部分 -

搭建自己的Git版本控制系统 - Gitea

一直以来都想搭建自己的版本控制系统,虽然现在又Github、Gitee等热门的公共Git系统了,可有时候还是需要一个私有的Git系统来更方便的去管理、控制代码

这里我看了下开源的Git软件,大致有Gitlab、Gogs、Gitea等几款软件,Gitlab功能比较强大,但是个人使用就略显臃肿了,个人我还是倾向于使用比较轻量化的软件的,毕竟服务器的资源有限,能满足自己的需求就行了

Gitea是Gogs的一个分支,两款都是比较轻量化的软件,gogs之前搭建过了,这里选用Gitea再次搭建一个自己托管的Git版本控制中心。

docker安装

Gitea是支持使用docker安装的,所以安装的步骤和过程都很简单明了
1.创建gogs数据储存目录
mkdir -p /data/gogs

2.拉取最新版镜像
docker pull gitea/gitea:latest

3.运行docker容器

docker run -d --name=gitea -p 10022:22 -p 10080:3000 -v /data/gitea:/data gitea/gitea:latest
-d: 后台运行
--name: docker容器名称
-p: 端口映射,将容器端口22 映射到宿主机的 10080 端口
-v: 目录映射,将容器 /data 目录映射到宿主机的 /data/gitea 目录
gitea/gitea:latest: 使用的docker镜像

- 阅读剩余部分 -

Windows下将MySQL安装为系统服务

由于我PC上的mysql是使用面板一键安装的,应该是解压版的,每次都要手动启动略显麻烦
所以可以将mysql安装为系统服务来实现自动启动 滑稽.png


本机使用的MySQL版本为:8.0.12
不过理论上来说都是通用的

1 配置MySQL的环境变量

打开MySQL的bin目录,复制地址栏中地址
2020-04-28T14:57:25.png
打开我的电脑-->属性-->高级系统设置-->高级-->环境变量选项卡
双击系统变量-->Path
在最下面添加刚刚复制的地址即可

- 阅读剩余部分 -

让idea自动压缩css/js文件

一般我们编写好css/js文件后,上线的时候总是要压缩一下的~
因为压缩后能极大的减少文件的体积,从而加快文件的加载速度。
这里可以使用YUI Compressor配合idea来实现自动压缩文件 滑稽.png

YUI Compressor

YUI Compressor是一种用于精简CSS/JS代码的工具。可以删除所有不必要的字符,例如空格,换行,注释而不更改源代码的功能
官方网站:http://yui.github.io/yuicompressor/
下载地址:https://github.com/yui/yuicompressor/releases
这里我下载的是最新版 2.4.8

安装

安装目录

下载完成后放到一个能找到的目录下。
这里我放到了 C:\Develop\JetBrains\yuicompressor-2.4.8.jar

配置idea动态生成

- 阅读剩余部分 -

t.cn 新浪短网址生成器

t.cn 新浪短网址生成器,前端采用 HTML/JavaScript 实现,后端使用 PHP 实现。
其实很早之前就做好了,不过之前的接口失效了,就一直放那没管了
今天看到有大佬用这种方式请求,就顺便把接口修改了下发布了 滑稽.png
有点不足是接口请求速度很慢,应该是新浪那边限制了,或者是大佬们都在艹,不过先凑合着用了
整个项目大小不到10kb

Demo:https://api.ffis.me/url/
Github:https://github.com/noisky/SinaShortUrl

t.cnShortUrl.png

使用方式

直接在网站目录下 git clone 即可

git clone https://github.com/noisky/SinaShortUrl.git

接口调用

请求方式:Get/Post请求

  • 请求地址:https://api.ffis.me/url/get.php?longUrl=http://www.taobao.com
  • 请求参数:

    • longUrl:需要缩短的url
新浪接口随时可能失效

为Windows10家庭版加入远程桌面功能

前言

说来话长,最近搭建了个frp内网转发,想着转发winodws的远程桌面端口3389,来实现任意地点的远程桌面登陆
等我搭建完毕frp后,试了下远程连接,发现连接失败 汗.png
第一反应就是不是防火墙出问题了,等我排除了防火墙的问题后,隐隐约约记得win10是不是把家庭版的远程桌面给阉割掉了...
进去一看,果然是!万恶的资本主义...
2020-04-16T13:03:46.png

虽然自己用的系统都是专业版的,可公司电脑默认装的是家庭版的...
公司的电脑毕竟是公司的财产,不到万不得已,我还是不想动这个系统
家庭版就不能用远程桌面了吗?nonono~
经过一番仔细查找,在Github找到了大佬写的远程桌面软件包,该程序可以让家庭版支持远程桌面功能,大佬就是大佬 真棒.png

下面开始安装:

1 下载

- 阅读剩余部分 -

使用frp内网穿透转发,来实现Windows远程桌面登陆

前言

你是否有需求,突然来了紧急需求,需要在家里远程操作公司的电脑进行加班? 捂嘴笑.png
不加班怎么享受福报呢? 滑稽.png
当然以上都是瞎扯,在家里访问公司电脑,最简单的是使用远程控制软件,如Teamviewer、向日葵等,但是这都是第三方的应用,安全性没得什么保障,其次并不是很稳定,而且以上软件是监控VGA的输出,也就是你操作的时候,你的公司的屏幕也是可以被同事看到的,吓到人就不太好了,hh
最完美的方案还是windows自带的远程桌面,使用体验完美,并且不会在实际桌面输出,其弊端是公司的电脑一般都不会单独配置ip地址,无法直接连接,其次也不能调用独立显卡进行计算,不过公司的mx250拿来编译怕是要反向加速...
所以综合以上,这里我准备使用frp做内网穿透,并使用vps做端口转发,来实现在任意地点登陆公司电脑 太开心.png


1 准备工作

  • Root权限的VPS服务器(最好是国内的服务器,速度快延迟低,连接稳定)
  • 公司电脑可24h开机并联网

2 开始搭建

2.1 先配置服务器端

1.Centos下先执行命令安装wget
yum install -y wget
2.创建目录来存放frp和配置文件
mkdir /home/frp && cd /home/frp
3.下载Github最新版服务器端frp
下载地址:https://github.com/fatedier/frp/releases
这里以目前最新版 v0.32.1 为例
wget https://github.com/fatedier/frp/releases/download/v0.32.1/frp_0.32.1_linux_amd64.tar.gz
4.解压文件
tar -xzvf frp_0.32.1_linux_amd64.tar.gz
5.进入解压的文件夹
cd frp_0.32.1_linux_amd64/
6.编辑配置文件 vi frps.ini

[common]
bind_addr = 0.0.0.0
#frp连接端口
bind_port = 7000
#frp连接密码
token = 1234567890

#面板端口
dashboard_port = 7500
#面板账号
dashboard_user = admin
#面板密码
dashboard_pwd = admin

修改完成后输入:wq保存退出即可
具体参数可参考官方的参考文档:https://github.com/fatedier/frp/blob/master/README_zh.md
7.给脚本加上执行权限
chmod +X *.sh
8.运行脚本
./frps -c ./frps.ini
2020-04-16T05:55:29.png

至此,服务端就运行成功了,不过别忘了在防火墙放行对应的端口
现在可以直接在浏览器输入服务器ip:7500打开frp面板了

2.2 配置客户端

- 阅读剩余部分 -

搭建softEther,组建虚拟局域网,和基友畅玩经典单机~

受疫情影响,在家实在闲着没事,就开始瞎折腾了... 笑眼.png
主流游戏玩腻了,就想找着基友来重温经典,打打红警,玩玩cs...,感受一下全球苏维埃的成就感 滑稽.png
111.jpg
可是全国人民都在家闲着,各大对战平台都是爆满状态,浩方、游侠、红警战网.. 都非常火爆,服务器负载大了,就会就现掉线,严重影响游戏体验... 不高兴.png
索性就利用闲置的服务器,搭建一个虚拟局域网,都是自己人玩,又快又稳定~ 滑稽.png

经各方查阅资料,最终决定选用 softEther v*n 来组建虚拟局域网
官方网站:https://www.softether.org/

原理:在服务器 CentOS7 系统下配置 softEther 服务端,使用DNSmasq进行DHCP地址分配,然后通过 Win10 自带的v*n功能连接到搭建好的服务器,实现虚拟局域网从而联机打游戏~


下面开始安装和配置:

- 阅读剩余部分 -

Github中提交Commit时使用GPG进行加密

概述

GPG 是一种加密算法,在 Git 中提交 Commit 时可以使用 GPG 进行加密,来保证提交的 Commit 没有被篡改,具体体现在 Github 提交的时候会有一个 verified 的标志。
QQ截图20200121153639.png

这里我是在 Windows 下操作来生成 GPG 密钥的,其他系统环境下操作可能会有不同

准备工作

生成GPG密钥之前,可以检查当前电脑是否存在有 GPG 密钥

1 打开 Git Bash
2 使用 gpg --list-secret-keys --keyid-format LONG 命令列出同时具有公共密钥和私有密钥的GPG密钥。签名提交或标记需要私钥。

gpg --list-secret-keys --keyid-format LONG

3 检查命令输出以查看是否具有 GPG 密钥
如果没有GPG密钥对,则生成一个新的GPG密钥
2020-01-21T08:02:03.png

- 阅读剩余部分 -

饭饭's 随机图片 Api → Random-Image-Api

饭饭's 随机图片 Api → Random-Image-Api

一个能够获取随机图片的 Api,基于 Spring Boot 构建

Demo:https://api.ffis.me/imgApi/index.html
Github: https://github.com/noisky/Random-Image-Api

可读取本地图片列表的地址,并提供随机访问服务,可配置域名白名单访问

2020-01-07T16:01:56.png

项目说明

程序启动的时候会自动加载 项目路径/list 文件夹下的所有列表文件;

图片列表文件:

  • 提供访问路径为文件名的随机图片服务
  • 文件命名格式 xxx.txt 必须为 .txt 结尾,每行一个图片url

域名白名单列表文件:

  • 会开启域名白名单访问,只允许列表中的域名进行接口调用
  • 命名只能为 domains.txt,每行一个域名,支持泛域名

    • 例如输入 test.com ,则会允许所有 test.com 结尾的域名访问
  • 若域名列表文件不存在或者文件为空,则会关闭域名白名单服务,任何域名都可以进行调用。
更改列表文件后,刷新图片缓存即可生效。

编译运行

# 拉取项目
git clone https://github.com/noisky/Random-Image-Api.git
# 使用 maven 打包
mvn clean package
cd target && java -jar Random-Image-Api-1.0.0.jar
# 将写好的图片列表文件放入 list 文件夹,刷新缓存即可正常访问
http://localhost:9090/flush
# 默认访问端口 9090
http://localhost:9090/random/{图片列表文件名}
# 主页地址
http://localhost:9090/index.html

接口调用:

1、获取随机图片:

  • 请求方式:GET请求

    • 请求地址:/random/{images}
    • {images} 则对应为 images.txt 文件里面的所有图片地址

2、获取每日图片:

  • 请求方式:GET请求

    • 请求地址:/today/{images}
    • {images} 则对应为 images.txt 文件里面的所有图片地址

3、刷新图片缓存:

  • 请求方式:GET请求

    • 请求地址:/flush

已完成功能:

  • 获取每日图片
  • 读取本地列表的图片地址,提供随机访问
  • 域名白名单访问,未授权的域名访问会跳转到未授权页面

TODO:

  • 提供本地图片的随机访问
  • 接口调用统计
  1. 1
  2. 2
  3. 3
  4. 4
  5. ...
  6. 6