前期准备:
x64 ubuntu 镜像、vmware、ss账号
注意一定要有64位镜像!
ss不是必须的,不过没有的话就等着下载一晚上吧...
首先先装好ubuntu,我装的是ubuntu-16.04-desktop-amd64.iso。
然后先换个软件源
装docker
然后主机打开ss,注意勾选允许局域网连接。
然后看一下主机ip
把uoj的包下下来(https://github.com/vfleaking/uoj)
设置docker的代理:https://docs.docker.com/engine/admin/systemd/#http-proxy
挂完代理就慢慢等吧...
第一步下好了之后,我们还需要下载两个jdk包放进去。
如果不用评测java就直接按错误信息扔两个空文件就行。
然后就开始安装了,出现了各种各样奇怪的信息...
之类的
终于出现了这一行字
那么<image-id>在我这里就是66e27a0dd05a。
然后启动就直接输进去就行了:
(记得sudo)
我们在虚拟机里编辑一下/etc/hosts:
在虚拟机里打开127.0.0.1:
然后我们配置一下端口映射:
vmware里编辑->虚拟网络编辑器
(上面这张图仅供示意,主机端口最好直接填80,另外还要转发3960)
虚拟机IP地址就是虚拟机的IP,ifconfig一下就可以找到,以子网IP开头的那个就是,要转发3690和80端口(后面发现的,svn传题要用)
那么局域网要访问的话,访问的人也要改hosts,把local_uoj.ac定向到实机ip(不是虚拟机)就可以了。
然后加超级管理员:
首先在docker那个窗里打开mysql:
mysql app_uoj233 -u root -p
默认密码是root。
超管就加好了。
然后传题需要装tortoisesvn,然后比如题目,新建题目之后点管理,就可以改题面了。传数据首先先要在管理者里面加上自己,然后数据页面有一个svn地址:
那么你就svn checkout一下这个地址(在文件管理器空白处右键),输入你的用户名和密码。这个密码每个用户是一样的(随机的),在数据库里的svn_password一列,上面那个图的svn密码就是ro2sRkzO97。
然后建一个叫1的文件夹,接下来的操作参考:https://vfleaking.github.io/uoj/problem/ 里“题目配置格式”。
然后右键svn commit,记得全选更改,然后点。
如果没有锅就点检查一下标程和validator挂了没,如果没事就可以公开题目了。
创建比赛挺简单的。需要注意的是,超级管理员和比赛管理员不能参加比赛(实测),所以管理员如果想做比赛赛前可能要人工取消一下。
如果想改源码的话...看这里:https://vfleaking.github.io/uoj/dev/
最后更详细的文档可以戳:https://vfleaking.github.io/uoj/(如果虚拟机突然狗带了docker退出了这里也有解决办法)
Universal OJ开源群:590822951