一、依赖
# 安装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 # 停止服务
评论区