目 录CONTENT

文章目录

在线编程实验室

GrantLi
2023-04-27 / 0 评论 / 0 点赞 / 327 阅读 / 5459 字 / 正在检测是否收录...

一、依赖

  1. nodejs >= 14.20.0和pnpm(教程参考)
  2. docker(教程参考)
  3. mysql数据库
# 安装mysql
sudo apt-get install mysql-server

# 启动 MySQL 服务器
sudo systemctl start mysql

# 检查 MySQL 服务器是否正在运行
sudo systemctl status mysql

# 连接到 MySQL 服务器
mysql -u root -p

# 更改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

# 列出所有数据库名称
SHOW DATABASES;

# 创建一个新的数据库
CREATE DATABASE database_name;

版本: 8.0 sql 结构文件在 /server下,在 .env 中配置 DATABASE_URL
4. redis数据库

# 安装redis
sudo apt-get install redis-server

# 检查 Redis 服务器的状态
sudo systemctl status redis

# 测试 Redis 是否正常运行(会收到一个“PONG”响应)
redis-cli ping

# 设置 Redis 的密码
sudo gedit /etc/redis/redis.conf

# 在配置文件中查找 # requirepass foobared 这一行(默认情况下被注释掉),将其取消注释并将 foobared 替换为你想要设置的密码

# 重启 Redis 服务器,以使新的配置生效
sudo systemctl restart redis

# 连接到 Redis 服务器
redis-cli
# 输入 AUTH yourpassword 命令并按 Enter 键以验证密码是否正确

在 .env 中配置 REDIS_HOST、REDIS_PASSWORD

二、配置环境

1.下载源码

git clone https://github.com/GJXS1980/runcode.git

2.创建题目

pnpm qs:create <你的题目名>

# 例如我创建 demo 题目(根目录下运行)
pnpm qs:create demo

npm install
pnpm install

# 将新添加的文件写入数据库(根目录下运行)
pnpm qs:generate

3.构建镜像

# 构建 C++ 镜像
cd server/src/docker/cpp
sudo docker build -t cpp:11 .

# 构建 rust 镜像
cd server/src/docker/rust
sudo docker build -t rust:lts .

# 构建 python3 镜像
cd server/src/docker/python3
sudo docker build -t python:3 .

# 构建 go 镜像
cd server/src/docker/go
sudo docker build -t go:lts .

# 构建 nodejs 镜像
cd server/src/docker/nodejs
sudo docker build -t nodejs:lts .

# 构建 java 镜像
cd server/src/docker/java
sudo docker build -t java:lts .

# 构建 C# 镜像
cd server/src/docker/dotnet
sudo docker build -t mono:lts .

# 构建 php 镜像
cd server/src/docker/php
sudo docker build -t php:8 .

4.构建server

cd server
pnpm i
pnpm generate

# 启动
pnpm dev

5.构建client

cd client
pnpm i
# 启动后另开终端启动服务
pnpm build:tailwind:watch

# 启动服务
# 起开发环境,需要起 server
pnpm dev
# 起生产环境(必需)
pnpm prod

三、开机自启动

1. 服务端开机自启动

# 打开runcode-server.service文件
sudo vim /etc/systemd/system/runcode-server.service

添加以下内容:

# 添加以下内容
[Unit]
Description=runcode-server
[Service]
WorkingDirectory=xxx/runcode/server # 请修改成你的后端服务文件夹的绝对路径
ExecStart=/usr/local/bin/pnpm run dev
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target

2. 客户端开机自启动

# 打开runcode-client.service文件
sudo vim /etc/systemd/system/runcode-client.service

添加以下内容:

# 添加以下内容
[Unit]
Description=runcode-client
[Service]
WorkingDirectory=xxx/runcode/client # 请修改成你的后端服务文件夹的绝对路径
ExecStart=/usr/local/bin/pnpm prod
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target

3. 设置开机自启动

# 服务端
sudo systemctl enable runcode-server.service  # 开机自启
sudo systemctl start runcode-server.service  # 启动服务
sudo systemctl status runcode-server.service # 查看服务状态
sudo systemctl stop runcode-server.service # 停止服务

# 客户端
sudo systemctl enable runcode-client.service  # 开机自启
sudo systemctl start runcode-client.service  # 启动服务
sudo systemctl status runcode-client.service # 查看服务状态
sudo systemctl stop runcode-client.service # 停止服务
0

评论区