当前位置: 首页 > news >正文

如何快速部署Submitty?从安装到运行的完整教程

如何快速部署Submitty?从安装到运行的完整教程

【免费下载链接】SubmittyHomework Submission, Automated Grading, and TA grading system.项目地址: https://gitcode.com/gh_mirrors/su/Submitty

Submitty是一款功能强大的开源作业提交、自动评分和助教评分系统。无论您是教育机构的系统管理员还是课程教师,这篇完整指南将帮助您快速完成Submitty的部署。通过本教程,您将掌握从环境准备到系统运行的完整部署流程,让您的教学管理系统快速上线运行!🚀

📋 系统环境要求

在开始部署Submitty之前,请确保您的服务器满足以下基本要求:

  • 操作系统:Ubuntu 22.04 LTS(推荐)或 Ubuntu 20.04 LTS
  • 内存:至少 4GB RAM(生产环境建议8GB以上)
  • 存储空间:至少 20GB 可用空间
  • 网络:稳定的网络连接,能够访问外部资源
  • 权限:需要root或sudo权限进行安装

🚀 一键快速安装方法

方法一:使用官方引导脚本(最简单)

对于大多数用户,我们推荐使用官方的一键安装脚本。这个脚本会自动处理所有依赖项的安装和配置:

# 下载并运行引导脚本 curl -sSL https://raw.githubusercontent.com/Submitty/Submitty/main/.setup/bootstrap.sh | sudo bash

这个脚本会自动完成以下工作:

  1. 安装必要的系统依赖
  2. 克隆Submitty代码库
  3. 运行系统安装脚本
  4. 配置所有必要的服务和权限

方法二:手动分步安装

如果您希望更精细地控制安装过程,可以按照以下步骤手动安装:

步骤1:克隆代码库

首先,将Submitty代码库克隆到本地:

# 创建安装目录 sudo mkdir -p /usr/local/submitty/GIT_CHECKOUT cd /usr/local/submitty/GIT_CHECKOUT # 克隆Submitty项目 sudo git clone https://gitcode.com/gh_mirrors/su/Submitty
步骤2:运行系统安装脚本

进入项目目录并运行系统安装脚本:

cd Submitty/.setup sudo bash install_system.sh

这个脚本会:

  • 安装所有系统依赖包(PHP、PostgreSQL、Python等)
  • 配置必要的系统用户和组
  • 设置数据库和Web服务
步骤3:配置Submitty

运行配置脚本来自定义您的安装:

cd /usr/local/submitty/GIT_CHECKOUT/Submitty/.setup sudo python3 CONFIGURE_SUBMITTY.py

配置过程中,您需要提供以下信息:

  • 安装目录(默认:/usr/local/submitty
  • 数据目录(默认:/var/local/submitty
  • WebSocket端口(默认:8443)
  • 是否启用调试模式(生产环境不建议启用)

🔧 详细配置指南

数据库配置

Submitty使用PostgreSQL作为后端数据库。安装脚本会自动创建数据库和用户,但您可能需要根据实际情况调整配置:

# 查看数据库状态 sudo systemctl status postgresql # 如果需要手动创建数据库用户 sudo -u postgres createuser submitty sudo -u postgres createdb submitty

Web服务器配置

安装脚本会自动配置Apache或Nginx作为Web服务器。您可以在以下位置找到配置文件:

  • Apache配置:.setup/apache/submitty.conf
  • Nginx配置:.setup/nginx/submitty.conf

用户和权限配置

Submitty创建了多个专用用户来确保系统安全:

  • submitty_daemon:运行后台任务的守护进程用户
  • submitty_php:运行PHP脚本的用户
  • submitty_cgi:运行CGI脚本的用户

这些用户的权限在安装过程中自动配置,通常不需要手动调整。

🐳 使用Vagrant进行开发环境部署

如果您需要在本地开发或测试环境部署Submitty,可以使用Vagrant快速搭建环境:

步骤1:安装Vagrant和VirtualBox

# 在Ubuntu上安装Vagrant和VirtualBox sudo apt-get update sudo apt-get install -y virtualbox vagrant

步骤2:配置Vagrant环境

在Submitty项目根目录中,已经包含了预配置的Vagrantfile:

# 启动Vagrant虚拟机 vagrant up # 如果需要更多资源,可以指定内存和CPU VM_MEMORY=4096 VM_CPUS=4 vagrant up

步骤3:访问开发环境

Vagrant启动后,您可以通过以下方式访问Submitty:

  1. 在浏览器中访问http://localhost:1511
  2. 使用默认管理员账户登录

🛠️ 常见问题与解决方案

问题1:安装过程中出现依赖错误

解决方案:确保系统已更新,然后重新运行安装脚本:

sudo apt-get update sudo apt-get upgrade sudo bash /usr/local/submitty/GIT_CHECKOUT/Submitty/.setup/install_system.sh

问题2:Web服务无法启动

解决方案:检查Web服务器配置和权限:

# 检查Apache/Nginx状态 sudo systemctl status apache2 sudo systemctl status nginx # 查看错误日志 sudo tail -f /var/log/apache2/error.log sudo tail -f /var/log/nginx/error.log

问题3:数据库连接失败

解决方案:验证PostgreSQL服务和连接配置:

# 重启PostgreSQL服务 sudo systemctl restart postgresql # 测试数据库连接 sudo -u postgres psql -d submitty

📊 部署后的配置优化

性能调优建议

  1. 内存优化:根据学生数量和课程规模调整PHP内存限制
  2. 缓存配置:启用OPcache提升PHP性能
  3. 数据库优化:定期清理旧数据和优化索引
  4. 文件存储:确保/var/local/submitty有足够的存储空间

安全配置建议

  1. SSL证书:为生产环境配置HTTPS
  2. 防火墙规则:限制对管理端口的访问
  3. 定期备份:设置数据库和文件的自动备份
  4. 日志监控:启用系统日志监控和告警

🎯 快速验证部署

部署完成后,运行以下命令验证安装是否成功:

# 验证系统服务状态 sudo systemctl status submitty_autograding_shipper sudo systemctl status submitty_daemon_jobs_handler # 访问Web界面 curl -I http://localhost

如果一切正常,您应该能看到Submitty的登录页面。使用默认的管理员凭据登录后,您可以开始创建课程、添加学生和设置作业了!

🔄 系统维护与升级

定期维护任务

  1. 清理旧数据:定期清理过期的作业提交和日志文件
  2. 更新系统:定期运行系统更新和安全补丁
  3. 监控资源:监控磁盘空间、内存和CPU使用情况

升级Submitty版本

当有新版本发布时,可以使用以下步骤升级:

# 进入Submitty目录 cd /usr/local/submitty/GIT_CHECKOUT/Submitty # 拉取最新代码 sudo git pull origin main # 运行升级脚本 sudo bash .setup/update_system.sh

📈 扩展功能配置

配置自动评分工作器

如果需要处理大量作业评分,可以配置额外的自动评分工作器:

# 在独立服务器上安装工作器 sudo bash .setup/install_worker.sh

集成外部工具

Submitty支持与多种外部工具集成:

  • 版本控制系统:Git、SVN
  • 代码质量工具:静态分析、代码风格检查
  • 测试框架:JUnit、pytest等

🎉 开始使用Submitty

恭喜!您已经成功部署了Submitty系统。现在您可以:

  1. 创建课程:在管理界面中添加新课程
  2. 添加用户:导入学生和教师账户
  3. 设置作业:创建作业并配置自动评分规则
  4. 管理评分:使用内置的助教评分工具

记住,Submitty是一个功能强大的教学管理系统,支持从简单作业提交到复杂自动评分的各种教学场景。如果您在部署或使用过程中遇到任何问题,可以参考项目文档或寻求社区支持。

提示:建议在生产环境部署前,先在测试环境中充分验证所有功能。祝您使用愉快!🎓

【免费下载链接】SubmittyHomework Submission, Automated Grading, and TA grading system.项目地址: https://gitcode.com/gh_mirrors/su/Submitty

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/1229336/

相关文章:

  • CSV.swift与Decodable结合:如何优雅地将CSV数据映射为Swift对象
  • plpgsql_check 与动态SQL:如何处理无法静态分析的代码
  • Python的第一次作业
  • 鸿蒙 ArkUI 进阶:Tabs 嵌套滚动那个磨人的小妖精,鸿蒙 6.1 终于给治了
  • 2026年淄博公司法律顾问哪家好?5位专业法律顾问推荐 - 本地品牌推荐
  • otel-desktop-viewer:本地开发者的OpenTelemetry可视化监控利器
  • 杭州上门回收黄金怎么预约?估价、验金、结算完整步骤 - 奢侈品回收评测
  • 盘点天津正规黄金回收渠道,靠谱门店避坑守住高价 - 日常比对手册
  • ZotMoov:Zotero 7附件管理的终极解决方案
  • iOS-Tech-Weekly架构设计专题:MVC、MVVM、VIPER等架构模式对比分析
  • 2026南通通州区防水补漏哪家靠谱?免砸砖精准测漏一站式解决全屋漏水 - 宅安选房屋修缮
  • 快速构建NLP模型:nlp-pytorch-zh中的词嵌入技术详解
  • Sqribble深度解析:模板驱动型文档自动化流水线
  • 2026年7月“明鉴识时”官方核验指南:北京亨得利钟表正规腕表维修门店地址,谨防山寨售后站点,官方电话400-901-0695 - 亨得利官方售后
  • AI翻唱工具怎么选?适合换声线、修音与和声的人声处理工具
  • 2026 太仓旧房翻新墙面粉刷防水修缮苏沪本地正规公司实测榜单 - LYL仔仔
  • 计算机毕业设计之校园快递代领平台
  • 【小程序课程设计/毕业设计】基于 Android 的便民在线医疗服务平台 互联网在线诊疗预约服务系统的设计与实现【附源码、数据库、万字文档】
  • 南京钻石回收去哪里靠谱?2026本地正规门店实测甄选指南 - 全国二奢机构参考
  • springBoot是如何通过main方法启动web项目的?
  • 性能优化大全:iOS-Tech-Weekly中收录的20个关键性能优化技巧
  • 苹果公司技术路线与原则发展史:整合、控制与体验的演进
  • 企业微信和豆包新模型,API 接口驱动智能自动回复和发消息
  • 太久没有通过行动重新建立秩序。
  • 2026民企老板EMBA怎么选?主流项目性价比实测榜单 - 品牌2026推荐
  • AI人声美化软件有哪些?适合AI翻唱、换声线和修音的人声处理工具
  • IDEA工具使用
  • 【小程序课程设计/毕业设计】基于 SpringBoot 的音乐资源智能推荐系统 融合用户行为的协同过滤音乐推荐系统 智能音乐点播与个性化推荐服务系统【附源码、数据库、万字文档】
  • 2026北京丰台区隐形车衣授权门店TOP5榜单|正品保障+施工实力全测评 - 资讯纵览
  • 2026阳江黄金回收门店多维测评 正规机构避坑与变现参考 - zzlzzl6688