经验在最后,先说流程。

除了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. 欧拉系统初体验与编译安装FFmpeg的过程记录

    目录 源起 1. 系统下载 2. 系统安装 2.1 磁盘分区 2.2 软件数量 2.3 安装完毕 3.进入系统 4.安装FFmpeg 4.1 下载FFmpeg 4.2 解压程序 4.3 检查环境 4. ...

  2. SSH指定用户登录与限制

    环境准备 :::info 实验目标:ServerA通过用户ServerB(已发送密钥和指定端口) ::: 主机 IP 身份 ServerA 192.168.10.201 SSH客户端 ServerB ...

  3. TIER 1: Appointment

    TIER 1: Appointment SQL Structured Query Language 是一种用于管理关系型数据库的编程语言.它是一种标准化的语言,用于定义.操作和管理数据库中的数据. 经 ...

  4. OpenGL 三角形颜色插值

    1.最懒的方法--Nearest Neighbor对于三角形内的点,离三个顶点谁最近,就赋值为那个顶点对应的颜色. 2.最天真的方法--Distance三角形内一点的值应该来自于三个顶点. 计算距离: ...

  5. 云计算:Docker-compose快速部署前后端项目

    | 更好的观看效果请前往,原文博客地址:https://www.zeker.top/posts/338829e1/ 介绍 Docker Compose 是官方编排的项目之一,负责快速的部署分布式应用. ...

  6. P9058 [Ynoi2004] rpmtdq 与 P9678 [ICPC2022 Jinan R] Tree Distance

    思路: 注意到点对数量有 \(N^2\) 个,考虑丢掉一些无用的点对. 对于点对 \((x_1,y_1),(x_2,y_2)\),满足 \(x_1 \le x_2 < y_2 \le y_1\) ...

  7. 【杂谈】JPA乐观锁改悲观锁遇到的一些问题与思考

    背景 接过一个外包的项目,该项目使用JPA作为ORM. 项目中有多个entity带有@version字段 当并发高的时候经常报乐观锁错误OptimisticLocingFailureException ...

  8. 【Git】02 创建本地仓库 & 添加文件并提交

    1.创建版本库 版本库又名仓库,英文名repository, 你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来 每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史, ...

  9. 如何在vscode中同时运行多个文件——server/client模式——在launch.json文件中设置多个configurations再compounds

    在vscode中我们一般都是同一时间只运行一个代码,但是这种设置并不适合server/client模式,甚至有很多分布式和并行的项目需要同一时间运行多个client,针对这种情况我们可以通过设置vsc ...

  10. hibernate validation,spring validation自定义参数校验

    1.背景 在实际开发中,我们除了会使用常用的参数判断,如字符串不为空,最大值,最小值等 我们还可以自定义参数校验规则 2.实际生产问题 实际生产中同步订单的时候, 假设我们要求订单状态值只能是 -1, ...