sahilverse/sahil-dahal-devio
GitHub: sahilverse/sahil-dahal-devio
一个集社区互动、编程挑战、CTF实验室和代码沙箱于一体的开发者社区平台。
Stars: 1 | Forks: 0
# Devio - IT 社区平台
Dev.io 是一个以开发者为中心的社区平台,提供帖子、社区、编程挑战、CTF 实验室、活动和实时协作功能。用户可以加入社区、解决问题、获取 aura 积分、在沙箱中运行代码、聊天并自定义自己的信息流——所有这些都在一个统一的生态系统中完成。
## 本项目正在积极开发中。因此结构和功能可能会频繁变更。本 README 将相应更新。
## 本文档仅涵盖目前已实现的功能和结构。
## 🏗️ 项目架构
这是一个基于 [Turborepo](https://turborepo.com/) 的 monorepo,使用 [pnpm](https://pnpm.io/) 作为包管理器。
### 应用
- **`backend`** - 使用 Prisma ORM 的 Node.js/Express REST API
- **`frontend`** - 用于 Web 界面的 Next.js 16 React 应用程序
- **`code-sandbox`** - 支持多种编程语言的基于 Docker 的代码执行服务
- **`judge0`** - 代码评判和评估服务集成
### 共享包
- **`@devio/eslint-config`** - 共享 ESLint 配置
- **`@devio/typescript-config`** - 共享 TypeScript 配置
- **`@devio/zod`** - 共享 Zod 验证模式
- **`@devio/boilerplate-generator`** - 代码样板生成工具
## 🛠️ 技术栈
### 后端
- **运行时**: Node.js (v18+)
- **框架**: Express.js
- **数据库**: PostgreSQL with Prisma ORM
- **缓存**: Redis
- **任务队列**: BullMQ
- **认证**: JWT with bcryptjs (已完成), OAuth (待定)
- **邮件**: Nodemailer
- **API 文档**: Swagger/OpenAPI
### 前端
- **框架**: Next.js 16
- **UI 库**: React 19
- **语言**: TypeScript
### 代码执行
- **容器化**: Docker
- **支持语言**: C++, Java, Node.js, Python
- **执行客户端**: Dockerode
## 📋 前置条件
- Node.js >= 18
- pnpm >= 10.24.0
- Docker (用于代码沙箱)
- PostgreSQL 数据库
- Redis 缓存
## 🚀 快速开始
### 安装
```
# 安装依赖
pnpm install
# 设置环境变量
# 将 backend 和 frontend 目录中的 .env.example 复制到 .env
# 配置 database, Redis 和其他服务
```
### 开发
在开发模式下启动所有服务:
```
# 以 watch 模式运行所有 apps 和 packages
pnpm dev
```
或者开发特定应用:
```
# 仅 Frontend
pnpm dev --filter @devio/frontend
# 仅 Backend
pnpm dev --filter @devio/backend
# 仅 Code sandbox
pnpm dev --filter @devio/code-sandbox
```
### 构建
构建所有应用和包:
```
pnpm build
```
构建特定应用:
```
pnpm build --filter @devio/backend
pnpm build --filter @devio/frontend
```
### 数据库迁移
```
# 运行 migrations
pnpm --filter @devio/backend exec prisma migrate dev
# 重置 database
pnpm --filter @devio/backend exec prisma migrate reset
# 在 Prisma Studio 中查看 database
pnpm --filter @devio/backend exec prisma studio
```
## 📦 Docker 部署
### 编排服务
`docker-compose.yml` 编排了所有服务:
```
# 构建并启动所有 containers
docker-compose up -d
# 停止所有 services
docker-compose down
# 查看 logs
docker-compose logs -f
```
## 🔍 代码质量
### 代码检查
```
pnpm lint
```
### 类型检查
```
pnpm check-types
```
### 格式化
```
pnpm format
```
## 📝 项目结构
```
devio/
├── apps/
│ ├── backend/ # Express API server
│ ├── frontend/ # Next.js frontend
│ ├── code-sandbox/ # Docker execution service
│ └── judge0/ # Judge0 configuration
├── packages/
│ ├── boilerplate-generator/ # Code template generation
│ ├── eslint-config/ # Shared ESLint config
│ ├── typescript-config/ # Shared TypeScript config
│ └── zod/ # Shared validation schemas
├── infra/ # Infrastructure configs
├── docker-compose.yml # Multi-container orchestration
├── turbo.json # Turborepo configuration
└── pnpm-workspace.yaml # Workspace configuration
```
标签:CISA项目, CTF靶场, Dev.io, DNS解析, Docker, GNU通用公共许可证, IPv6支持, IT社区平台, MITM代理, Node.js, PostgreSQL, React, Redis, Syscalls, Turborepo, TypeScript, 代码执行引擎, 代码沙箱, 在线编程, 安全插件, 安全防御评估, 实时协作, 开发者社区, 开源项目, 技术博客, 搜索引擎查询, 测试用例, 社交网络, 积分系统, 自动化攻击, 请求拦截