经验在最后,先说流程。

除了HOJ,之前先装的HDU,属实难用,然后是hustOJ,嗯很好用,但架不住丑,对管理员实在不友好。

好了不闲记,进入正题:

一、流程

1、官网文档先过一遍。

2、配置好docker和docker-compose(这里注意看下面的经验)。反正尽量不要用官网提供的方式,自己百度安装。

3、进行项目克隆。尽量用码云的啦,GitHub除非你先在Ubuntu上装个clash for linux,实在难用。

4、等待下载,下载完一定要记清下面两个文件的位置。

├── docker-compose.yml
├── .env

5、进入.env改密码。别改错了地方。

6、像我是机房内网环境HOJ无法加载,需要取消CDN转发,不然学生机一旦断网,是加载不出来页面的。具体注意看下面的经验,以及取消前端CDN转发

7、npm打包,这里遇到的坑蛮多的,总之还是在虚拟机多存快照,随便试,解决一个大问题继续拍摄快照,解决不了回滚快照。

8、二开的话,看下面的经验咯。

9、花了几天时间,零零碎碎的该忘的都忘了,不知道该记些什么,下次要养成边查问题解决问题边记的习惯。

10、以上,备用。

二、经验

1、要先npm install(最好先更新apt update),进行依赖下载之后才能进行npm run build进行打包。

2、在1之前需要现更换镜像源
    淘宝镜像源
    npm config set registry https://registry.npm.taobao.org (旧版,已到期)
    
    淘宝中国镜像源
    npm config set registry https://registry.npmmirror.com (新版)
    
    腾讯云镜像源
    npm config set registry http://mirrors.cloud.tencent.com/npm/
    
    华为云镜像源
    npm config set registry https://mirrors.huaweicloud.com/repository/npm/
    
    阿里云 NPM 镜像源:
    https://npm.aliyun.com
    
    官方默认全局镜像源:
    npm config set registry https://registry.npmjs.org
    
    检查当前镜像
    npm config get registry

3、如果出现hoj服务器错误需要刷新的提示,重启系统可以解决。

4、因为npm和nodejs版本问题,最好用最新的,npm install npm@latest。

5、如果下载失败,建议先清缓存npm cache clean --force;接着在项目目录下打开隐藏,删除node_modules 文件夹和 package-lock.json 文件,然后重新执行 npm install。

5、注意nodejs要是17版本之前的(经过他妈的n次报错卸载,17版本不能用,用16的),不然会报错,注意第3点有误。安装过程

    创建目录:

    sudo mkdir -p /usr/local/lib/nodejs

    解压二进制包至存放目录

    sudo tar -xJvf node-v16.20.2-linux-x64.tar.xz -C /usr/local/lib/nodejs

    进入解压后的目录:

    cd /usr/local/lib/nodejs/node-v16.20.2-linux-x64

    将Node.js二进制包添加到系统环境变量:

    sudo cp -R * /usr/local/

    验证安装:

        node -v
        npm -v
        
6、遇到了一个证书过期的问题(这里回到第五步就行了,主要还是把package-lock.json 文件删掉,一切问题无了)
    清除npm缓存
    npm cache clean --force
    取消ssl验证:
    npm config set strict-ssl false
    之后再npm install

7、部署docker-compose、docker、npm(nodejs自带)时,关注好版本,最好下载好二进制离线安装,网络易丢包,且需要安装各种镜像源等环境,然后报各种错,麻烦。

8、打包文件传到 /home/zt/hoj-deploy/standAlone/html/ 下面。

9、你要改的各种前端在dist的/home/zt/hoj-deploy/standAlone/hoj/www/html/dist/assets/js/app.99ec584b.js中,注意重点是app.99ec584b.js这个文件,ubuntu的文本编辑器也好,vim也罢,是打开会卡顿的,建议下载到桌面,用hbuild打开,进行格式化,然后利用查找功能和F12结合进行二开。

10、遇到服务器不停的提示“服务器错误,请重新刷新”,小伙子不要慌,有两个可能,数据库连接还没有加载完,还有一种可能还是数据库连接还没有加载完,所以你有两个办法,第一个办法是直接重启,第二个办法是,不好意思就不是直接重启了,就是到docker-compose.yml文件所在目录执行docker-compose down,完事之后再执行docker-compose up -d,注意这个-d是后台执行的意思,so,打开127.0.0.1运行一下试试,没作用那就再次重启,重启之后还是有问题,他娘的,直接等等。(其实听他的,一直刷新,然后等待就好了,反正是数据库有延迟)

11、一般内存都会超过4G的,记得参考官网文档进行修改。反正我是内网搭建,服务器最低都是32G了。

关于HOJ的搭建和二开经验小结的更多相关文章

  1. NC57,NC63-NC二开经验总结

    版主2010级市场营销专业本科生 2013年8月入达内培训Java相关技术 12月入职,做用友NC的二次开发工作 2015年4月离职,4中下旬入职一家互联网金融企业 下面是做NC二开期间积累的一些常用 ...

  2. Redash 二开 - 后端环境搭建

    Redash 二开 - 后端环境搭建 一.操作系统选择 官方文档有一句话:Windows users: while it should be possible to run Redash on a W ...

  3. 还在写SQL做SAP二开?通过RFC调用NetWeaver,让HANA数据库操作更可靠

    相比于从零开始构建全套信息化系统,基于成熟的ERP等行业软件做二次开发是更多中大型企业应对个性化软件需求的首选方案.如何在二开模块中,可靠地对成品软件的数据库进行读写操作,以满足单据自动创建.元数据自 ...

  4. (原创)LAMP搭建之二:apache配置文件详解(中英文对照版)

    LAMP搭建之二:apache配置文件详解(中英文对照版) # This is the main Apache server configuration file. It contains the # ...

  5. Selenium终极自动化测试环境搭建(二)Selenium+Eclipse+Python

    Selenium终极自动化测试环境搭建(二)Selenium+Eclipse+Python 前面举例了Selenium+Eclipse+Junit+TestNG自动化测试环境的搭建,在前一篇的基础上, ...

  6. Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6999743.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十一)——S ...

  7. Odoo:全球第一免费开源ERP库龄表的简单实现方法(无需二开)

    问题背景 希望查看库龄超过30天的货物,该如何实现?此种简单数据查询需要二开吗? 解决方案 方法一:Stock Quant列表视图增加过滤器 <filter string="库龄超30 ...

  8. SAAS云平台搭建札记: (二) Linux Ubutu下.Net Core整套运行环境的搭建

    最近做的项目,由于预算有限,公司决定不采购Windows服务器,而采购基于Linux的服务器. 一般的VPS服务器,如果使用Windows系统,那么Windows Server2012\2016安装好 ...

  9. odoo导入功能二开

    原来有的导入功能相信很多小伙伴对其功能不是很满意,不过没关系,我们可以二开啊,把它的功能改造成你想要的样子,接下来让我们看看怎么办吧 例如我想把员工导入功能中添加上用户同步注册功能 首先,我要找到原模 ...

  10. vue项目搭建 (二) axios 封装篇

    vue项目搭建 (二) axios 封装篇 项目布局 vue-cli构建初始项目后,在src中进行增删修改 // 此处是模仿github上 bailicangdu 的 ├── src | ├── ap ...

随机推荐

  1. MYSQL DQL in 到底会不会走索引&in 范围查询引发的思考。

    前情引子 in 会不会走索引?很多人肯定会回答.废话.如果命中了索引.那肯定会走. 其实我和大多数人一样.一开始也是这么想的.直至有一个血淋淋的案子让我有所改观.有所思考. 背景介绍 业务的工单表.我 ...

  2. 014_用vim复制粘贴_保持双手正位

    [oeasy]python0014_用vim复制粘贴_保持双手正位 继续运行 回忆上次内容 程序员 还是 很可爱的 要关心 身边的程序员 啊 毕竟是新时代的 典型新职业     文明 主流职业 血型 ...

  3. 2023 CSP 游记

    目录 \(\text{CSP-J}\) 游记 \(\text{CSP-S}\) 游记 \(\text{CSP-J}\) 游记 省流:\(\text{B}\) 题挂了 \(100\text{ pts}\ ...

  4. 02-springboot配置

    目录 1,前言 2,YAML介绍 3,获取yml配置文件内容 4,springboot的配置文件 5,springboot使用@Value实现映射 6,@PropertySource.@ImportR ...

  5. SQL 注入漏洞详解 - Union 注入

    1)漏洞简介 SQL 注入简介 SQL 注入 即是指 Web 应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在 Web 应用程序中事先定义好的查询语句的结尾上添加额外的 SQL 语句,在 ...

  6. Fiddler关于https抓包

    一.Fiddler默认只抓取HTTP请求 Fiddler安装后默认只抓取HTTP请求,如要抓取HTTPS请求需要进行证书安装 二.Fiddler导出HTTPS证书 1.勾选HTTPS 工具栏Tools ...

  7. 强化学习中子进程调用atari游戏是否受父进程中设置的随机种子影响

    相关: python中numpy.random.seed设置随机种子是否影响子进程 ============================================ 代码: from ale_ ...

  8. mini_imagenet 数据集生成工具

    最近在看小样本方面的论文,发现这个mini_imagenet这个数据集比较常用,但是却不好找,找了半天也没有找到,最后在找到了这样的答案: 小样本学习(Few shot learning)标准数据集( ...

  9. [工具分享]ClipX超级粘贴板,超级好用

    1.背景 话说粘贴.复制是码农们的必备核心技能, 普通码农们当然已经熟练的掌握了普通的粘贴复制.... 但是,你不知道的是,牛逼的架构师已经会使用超级粘贴板了,功能非常强大 ............. ...

  10. css 样式 element.style 覆盖问题

    问题: 我们在写网页定制样式的时候发现展示效果跟我们预想的不一样? 打开F12一看原来是element.style 覆盖的我定义的效果. 解决: 只要在定义的内容后面加上 !important 就行啦 ...