全球主机交流论坛

标题: 【教程】轻量折腾计划3,搭建属于自己的开发全家桶,上篇 [打印本页]

作者: nnt    时间: 2021-8-16 00:40
标题: 【教程】轻量折腾计划3,搭建属于自己的开发全家桶,上篇
本帖最后由 nnt 于 2021-8-16 00:42 编辑

原文Markdown写的,更好的阅读体验请前往:https://cloud.tencent.com/developer/article/1861516

前言

前几天有事需要外出一趟,恰好某个项目出现了个比较严重的BUG,可苦于当时没有带电脑,借用朋友的电脑用了用也因为其上边没有我平常用的IDE,也没有相关的环境,修复的过程可谓是痛苦万分,最终只能在宝塔的编辑器中完成...这时我不禁琢磨,是否能搭建这么一套基于WEB的开发全家桶,让开发者能够随时随地用浏览器就能进行开发呢?说干就干!

正文

既然要搭建这么一套全家桶,那么需要准备以下物品:



首先是VPS服务器,正如我们的标题一般,轻量折腾计划,故而我们这里选择的服务器是腾讯云的轻量应用服务器Lighthouse。腾讯云的轻量服务器因其活动多、优惠大、性价比高而广泛闻名于国内的中小站长群体之间,虽然没有弹性网卡等一些CVM的功能,但其近期上线了VPC内网互联也同样补齐了很大一块短板。对于我们这些需求不大的小站长的需求可以说是基本上覆盖全的了,而且还不限制CPU,一核比某些灵车的四核还强。



而且还长期打活动中(https://cloud.tencent.com/act/new),99/1年,这价位算是性价比之王了吧,有兴趣的同学可别错过了哟。

零、基础准备

既然是全家桶,那么肯定是需要安装多款应用的,而且苦于口袋里的钱包厚度,那肯定是要一台机子就干全部活儿啦。那么就需要安装如下环境:



(0)宝塔面板

关于宝塔面板的安装可以说是非常简单的,根据官网的这个帖子:https://www.bt.cn/bbs/thread-19376-1-1.html

**Centos安装命令:**

  1. yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
复制代码


**Ubuntu/Deepin安装命令:**

  1. wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
复制代码


**Debian安装命令:**

  1. wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
复制代码


**Fedora安装命令:**

  1. wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
复制代码


根据你服务器的操作系统选择不同的安装命令后执行,遇到`Do you want to install Bt-Panel to the /www directory now?(y/n)`输入`y`后回车,等待一会儿就成功安装好了:

  1. ==================================================================
  2. Congratulations! Installed successfully!
  3. ==================================================================
  4. 外网面板地址: http://xxx.xxx.xxx.xxx:8888/6e21e07d
  5. 内网面板地址: http://10.0.8.17:8888/6e21e07d
  6. username: gunftd4a
  7. password: f92c3dd4
  8. If you cannot access the panel,
  9. release the following panel port [8888] in the security group
  10. 若无法访问面板,请检查防火墙/安全组是否有放行面板[8888]端口
  11. ==================================================================
  12. Time consumed: 0 Minute!
  13. [root@VM-8-17-centos ~]#
复制代码


我们打开浏览器,访问上边的外网面板地址(轻量用户记得去防火墙添加8888端口),填入随机生成的用户名和密码,并同意用户协议后进入面板。进入面板后第一件事就是修改面板设置,将默认的8888端口进行修改(注意防火墙/安全组提前放行),用户名、密码、与安全入口进行修改、开启BasicAuth认证(推荐),到这我们的宝塔面板算是安装好了。

(1)Nginx

在上一步中我们安装了宝塔面板,那么在这一步中就特别简单了,直接在宝塔面板的左侧栏点击软件商店,找到Nginx之后点击安装即可:



点击确定后等待一会儿就安装好了:



(2)Docker

Docker是一种容器化技术,可以利用容器快速的搭建起我们想要的环境/应用,类似于虚拟机,但是相比较于虚拟机来说要轻量许多。

关于Docker的安装我们可以直接使用官方提供的一键安装脚本来进行,安装命令如下:

  1. curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
复制代码


也可以使用国内 daocloud 一键安装命令:

  1. curl -sSL https://get.daocloud.io/docker | sh
复制代码


两条命令,任意选择一个都可以,复制后到服务器终端粘贴后回车运行,等待一会儿后安装成功。

docker安装成功之后,执行以下命令启动docker:

  1. service docker start
复制代码


启动好docker后,尝试运行:`docker ps`,看看是否有无报错产生。

最后,我们来修改docker的镜像源,保证能够成功地拉取docker镜像;编辑文件/etc/docker/daemon.json(若不存在则可以新建一个),内容如下:

  1. {
  2. "registry-mirrors": [
  3. "https://hub-mirror.c.163.com",
  4. "https://mirror.baidubce.com"
  5. ]
  6. }
复制代码


如果读者用的也是轻量服务器的话,可以使用腾讯内网的加速源:`mirror.ccs.tencentyun.com`。

编辑好文件并保存后,输入命令:`service docker restart`让docker重启以载入配置文件,重启完成后输入`docker info`查看是否设置成功:

  1. Registry Mirrors:
  2.   https://mirror.ccs.tencentyun.com/
  3. Live Restore Enabled: false

  4. [root@VM-8-17-centos ~]#
复制代码


至此,我们的一些列准备过程结束。

一、在线IDE

既然是要编程,那么肯定离不开IDE呀,这年头,不会真有人用记事本编程吧。

经过一段时间的查找,我们打算使用vscode官方出的WEB班vscode:https://github.com/cdr/code-server,从外观上来看,可谓是跟桌面版vscode别无二致。



接下来是code-server的安装,首先我们新建一个配置项目录:

  1. mkdir ~/.config && mkdir /project
复制代码


接着直接使用docker进行安装:

  1. docker run -itd --name code-server -p 127.0.0.1:8080:8080 \
  2.   -v "$HOME/.config:/home/coder/.config" \
  3.   -v "/project:/home/coder/project" \
  4.   -u "$(id -u):$(id -g)" \
  5.   -e "DOCKER_USER=$USER" \
  6.   codercom/code-server:latest
复制代码


可以看到,我们将容器内的8080端口映射到本地的8080端口(若是直接使用端口的朋友可以把此处的127.0.0.1改为0.0.0.0),并且我们把新建的两个目录给挂载到了容器内,这样一来我们可以直接在容器内修改容器外部的文件。

使用命令`docker ps`可以看到我们的容器在运行当中:

  1. [root@VM-8-17-centos ~]# docker ps
  2. CONTAINER ID   IMAGE                         COMMAND                  CREATED          STATUS          PORTS                      NAMES
  3. 51fb2363150e   codercom/code-server:latest   "/usr/bin/entrypoint…"   45 seconds ago   Up 44 seconds   127.0.0.1:8080->8080/tcp   code-server
  4. [root@VM-8-17-centos ~]#
复制代码


然后就是反向代理,将我们的域名(此处使用test.com做演示之用)跟容器的环境结合在一起。

在宝塔添加一个网站(ide.test.com):



添加好后点击设置,添加反向代理:



由于需要用到websocket,故而我们还需要修改配置文件,添加如下配置项:

  1.     proxy_http_version 1.1;
  2.     proxy_set_header Upgrade $http_upgrade;
  3.     proxy_set_header Connection upgrade;
复制代码




打开浏览器,输入我们的网站:ide.test.com



输入`cat ~/.config/code-server/config.yaml`查看随机生成的密码:


  1. [root@VM-8-17-centos ~]# cat ~/.config/code-server/config.yaml
  2. bind-addr: 127.0.0.1:8080
  3. auth: password
  4. password: 352e558396b4688211258ebd
  5. cert: false
  6. [root@VM-8-17-centos ~]#
复制代码



输入密码进入即可,若想要修改密码,可直接修改此文件中的密码,再重启容器即可。


作者: nnt    时间: 2021-8-16 00:40
二、GIT平台

既然我们有了自己的IDE,那干脆在给直接整个git平台作为我们平常项目的记录库岂不美哉。说干就干,因为我们是要多个应用共同搭建在同一台服务器上,故而此处我们不选择gitlab(有点吃配置),而是选择相对精简的gogs(https://github.com/gogs/gogs)。



同样也是用docker部署,在这种多应用同时部署的环境中,不同应用直接使用不同的容器做隔离,互不影响,减少了直接的干扰,可以说是优势巨大了。

首先新建一个目录做为挂载点,让容器内的数据与外部数据互通:

  1. midir /gogs
复制代码


接着运行命令:

  1. docker run -p 3022:22 -p 3000:3000 --name=gogs \
  2. -v /gogs:/data  \
  3. -d gogs/gogs
复制代码


使用命令docker ps查看部署情况:

  1. [root@VM-8-17-centos ~]# docker ps
  2. CONTAINER ID   IMAGE                         COMMAND                  CREATED          STATUS          PORTS                                                                              NAMES
  3. 529a758630a8   gogs/gogs                     "/app/gogs/docker/st…"   10 seconds ago   Up 10 seconds   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp, 0.0.0.0:3022->22/tcp, :::3022->22/tcp   gogs
复制代码


同样是老规矩,我们吧3000端口进行反代一下,这里我们用git.test.com做演示。反代过程参考codeserver的安装,由于不需要websocket,故而也不需要编辑配置文件的操作了。

反代好之后访问我们的域名:



这里为了方便,我们直接选择使用sqlite作为数据库。



应用基本设置内,除了应用URL我们修改为:`http://git.test.com`之外,其他保持默认即可:



可选设置中设置上管理员:



点击立即安装后,GIT平台搭建完毕:



来看下我们的资源占用情况(2核4G内存):



可以看到,4G的内存目前占用不足1G,可以说是相当的精简了,小主机也能轻松跑起来,这使得我们为后续应用的安装腾出了许多的空间。

后话

现在,我们已经拥有了自己的在线IDE,也有了自己的GIT平台,已经可以完成日常中大部分开发常需要的功能了,不过这还不够,由于篇幅所限,在下篇文章中,我将继续带大家完善我们的开发者全家桶套餐,将我们的浏览器编程板块继续补充完整~
作者: 龙笑天    时间: 2021-8-16 00:44
前排支持一个~~
作者: xinchenmi    时间: 2021-8-16 00:44
牛逼,绑定绑定
作者: 1016797313    时间: 2021-8-16 00:45
感谢分享~
作者: wange008    时间: 2021-8-16 00:47
前排必火
作者: WIN10高级用户    时间: 2021-8-16 01:06
感谢分享
作者: bte    时间: 2021-8-16 01:08
回帖就当学会了
作者: 游戏人生超    时间: 2021-8-16 01:14
感谢大佬分享  看完就当操作过了
作者: 猪猪欣    时间: 2021-8-16 01:32
感谢分享!支持大佬
作者: lbyxiaolizi    时间: 2021-8-16 01:49
绑定,大佬nb!

作者: zhuyun9999    时间: 2021-8-16 01:52
腾讯有免费的全家桶云编辑器
作者: 嗷嗷    时间: 2021-8-16 03:19
挺好的
作者: xjjmjj    时间: 2021-8-16 03:24
发帖不容易,感谢大佬分享。
作者: 冲浪麦浪花郎    时间: 2021-8-16 04:02
不错,买腾讯云请参考我的往期帖,也有干货
https://lilynana.eu.org/thread-852190-1-1.html
作者: 和风飘絮    时间: 2021-8-16 05:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: jiangyi    时间: 2021-8-16 07:09
100字的内容,写出几万字的感觉,确实是文笔了得!
作者: nnt    时间: 2021-8-16 09:29
jiangyi 发表于 2021-8-16 07:09
100字的内容,写出几万字的感觉,确实是文笔了得!

本就是面向小白的系列,如果嫌水就飘过好了...  
作者: 绿菠萝    时间: 2021-8-16 09:40
必须的支持下
作者: shunglay    时间: 2021-8-16 09:45
好好好。。。。
作者: NoctuG    时间: 2021-8-16 09:45
[b]虽然不是开发者但还是要后排支持一下[/b]
作者: nebulabox    时间: 2021-8-16 09:49
很棒,支持分享
作者: Pastech    时间: 2021-8-16 09:55
推荐 vscode 的插件 remote development 用起来跟本地的没有区别 所有开发环境都是配置在远程的
作者: buildLT    时间: 2021-8-16 09:56
帮顶
作者: xuqiangbao    时间: 2021-8-16 10:06
一直想问NTT是不是age的站长
作者: nnt    时间: 2021-8-16 10:49
xuqiangbao 发表于 2021-8-16 10:06
一直想问NTT是不是age的站长

age?不知道,你指的是哪个站,感觉应该不是我的
作者: yinux    时间: 2021-8-16 10:57
bte 发表于 2021-8-16 01:08
回帖就当学会了

你签名用的谁的脚本啊
作者: 麻辣烤冷面    时间: 2021-8-16 10:58
之前用nas 公网IP+端口转发docker配置了个code-server

确实很不错
作者: ufo629    时间: 2021-8-16 10:59
牛逼,技术贴
作者: 大白馒头。    时间: 2021-8-16 11:02
插眼技术贴
作者: 不想翻身的咸鱼    时间: 2021-8-16 11:13
芜湖..
帮顶,搞个玩玩去~~
作者: 不过尔尔    时间: 2021-8-16 11:16
前排学习!!
作者: zjonetop    时间: 2021-8-16 11:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: xuqiangbao    时间: 2021-8-16 12:03
nnt 发表于 2021-8-16 10:49
age?不知道,你指的是哪个站,感觉应该不是我的

那可能是记错了吧,论坛里应该有个爬虫大佬agefans是他开的,找不到了
作者: nnt    时间: 2021-8-16 12:19
Pastech 发表于 2021-8-16 09:55
推荐 vscode 的插件 remote development 用起来跟本地的没有区别 所有开发环境都是配置在远程的 ...

确实是这样的,不过咱的目标是完全在浏览器上进行操作,只要有浏览器,手机、平板、甚至是IOT设备
作者: 纱雾    时间: 2021-8-16 12:33
code-server啥时候成vscode官方出的了
作者: 暗白黑夜    时间: 2021-8-16 12:34
大佬牛啊
作者: Xiaoxi679    时间: 2021-8-16 12:39
谢谢楼楼分享,回了就当学会了哈哈
作者: nnt    时间: 2021-8-16 12:47
纱雾 发表于 2021-8-16 12:33
code-server啥时候成vscode官方出的了

淦,原来不是嘛,我看到project的归属是cdr(code-server的缩写)就想当然了
作者: 猪猪欣    时间: 2021-8-16 13:08
感谢分享!
作者: louiejordan    时间: 2021-8-16 13:14
好文共赏
作者: mifou    时间: 2021-8-16 13:33

感谢分享!支持大佬
作者: mifou    时间: 2021-8-16 13:34
99元的轻量可以windows系统吗
作者: maiawpyg    时间: 2021-8-16 13:45
感谢分享!支持大佬
作者: nnt    时间: 2021-8-16 14:42
mifou 发表于 2021-8-16 13:34
99元的轻量可以windows系统吗

国内可用直接切换windows,境外的机子就不行
作者: 纱雾    时间: 2021-8-16 15:10
nnt 发表于 2021-8-16 12:47
淦,原来不是嘛,我看到project的归属是cdr(code-server的缩写)就想当然了  ...

vscode项目在Microsoft团队里。
code-server,在cdr团队里。cdr是coder的缩写。至于这个coder他是个卖云端ide的。。
作者: nnt    时间: 2021-8-16 16:10
纱雾 发表于 2021-8-16 15:10
vscode项目在Microsoft团队里。
code-server,在cdr团队里。cdr是coder的缩写。至于这个coder他是个卖云 ...

这就尴尬了
作者: laoxong    时间: 2021-8-16 16:34
回个帖假装学了
作者: HAZ    时间: 2021-8-16 16:37
本帖最后由 HAZ 于 2021-8-16 17:10 编辑

很棒,ide部署成功了
但是大佬们,IDE的密码怎么改
作者: yinguo520    时间: 2021-8-16 17:16
这个很高大。支持
作者: nnt    时间: 2021-8-16 17:26
HAZ 发表于 2021-8-16 16:37
很棒,ide部署成功了
但是大佬们,IDE的密码怎么改

修改文件: ~/.config/code-server/config.yaml 并保存后docker restart一下容器
作者: 过去完成进行时    时间: 2021-8-16 17:30
好文,虽然我用Jetbrain全家桶
作者: lzbnet    时间: 2021-8-16 17:30
不错,学习了!
作者: lsc    时间: 2021-8-16 17:32
niubi

作者: fuckjp    时间: 2021-8-16 17:36
有技术含量的帖子
作者: 祭徐坤    时间: 2021-8-16 17:50
有那味了
作者: mifou    时间: 2021-8-16 18:06
nnt 发表于 2021-8-16 14:42
国内可用直接切换windows,境外的机子就不行

好的谢谢了
作者: 烟斗弟弟    时间: 2021-8-16 18:09
支持,写的不错,虽然没啥用
作者: HAZ    时间: 2021-8-16 19:00
nnt 发表于 2021-8-16 17:26
修改文件: ~/.config/code-server/config.yaml 并保存后docker restart一下容器

可以了,谢谢大佬
作者: makizhang    时间: 2021-8-16 19:32
牛皮
作者: drivefuse    时间: 2021-8-17 00:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪丫鬟    时间: 2021-8-17 00:31
这才是大佬,此贴应该加精。
作者: Sid2    时间: 2021-8-17 00:38
大佬牛逼
作者: eDream    时间: 2021-8-17 09:56
支持一个
作者: nnt    时间: 2021-8-17 14:22
过去完成进行时 发表于 2021-8-16 17:30
好文,虽然我用Jetbrain全家桶

jetbrains 确实好用,俺也是全家桶用户
作者: shelizi1    时间: 2021-8-17 15:36
回复一个支持,就当收藏了
作者: 猪猪欣    时间: 2021-8-17 15:39
感谢分享
作者: realspir    时间: 2021-8-19 02:00
大佬, 按教程配置好, 网页也能打开登录界面了, 但是去找密码的时候提示 ~/.config/code-server/config.yaml 不存在怎么办
好像运行 docker 的时候就没有创建这个文件
作者: nnt    时间: 2021-8-19 03:33
realspir 发表于 2021-8-19 02:00
大佬, 按教程配置好, 网页也能打开登录界面了, 但是去找密码的时候提示 ~/.config/code-server/config.yaml ...

啊这,可以尝试进入容器内修改,docker exec -it 容器ID /bin/bash,进去后vi编辑文件,然后exit退出容器终端,docker restart 容器ID
作者: brucex    时间: 2021-8-19 09:11
谢谢楼主分享,很详细。
作者: ab123li    时间: 2021-8-19 10:24
感谢大佬分享  看完就当操作过了
作者: ime    时间: 2021-8-19 10:28
腾讯科技(北京)有限公司客户端安全工程师 大佬都逛mjj论坛,荣幸荣幸。
作者: nnt    时间: 2021-8-21 14:14
drivefuse 发表于 2021-8-17 00:26
支持,更新踢我一下

下篇已发布~
https://lilynana.eu.org/thread-881917-1-1.html
作者: xinchenmi    时间: 2021-9-5 10:45
本帖最后由 xinchenmi 于 2021-9-5 11:03 编辑

这就奇了怪了,我网站部署了后没有这个~/.config/code-server/config.yaml
作者: CNAME    时间: 2021-9-12 14:20
牛掰大佬
作者: YorkZhao    时间: 2021-9-12 15:22
最终极的玩法就是拉Ubuntu镜像并装宝塔
作者: YorkZhao    时间: 2021-9-12 15:26
ime 发表于 2021-8-19 10:28
腾讯科技(北京)有限公司客户端安全工程师 大佬都逛mjj论坛,荣幸荣幸。

良心云问卷里面就有loc
所以说,mjj里面肯定有内鬼(bushi




欢迎光临 全球主机交流论坛 (https://lilynana.eu.org/) Powered by Discuz! X3.4