这是一个用于管理小说中人物关系的Web应用程序。用户可以创建小说,添加角色,并定义角色之间的关系。
本项目支持使用Docker进行简单部署,无需手动配置环境。
- 克隆仓库:
git clone https://your-repository-url.git
cd CharacterNetwork- 生成安全的环境变量:
cp .env.example .env然后编辑 .env 文件中的数据库密码等变量。SESSION_SECRET 会自动生成,无需手动配置。
- 赋予脚本执行权限:
chmod +x db-init.sh
chmod +x docker-troubleshoot.sh- 启动应用:
docker-compose up -d-
访问应用:
打开浏览器,访问 http://localhost:5001
初始用户注册后将自动成为管理员。
如果您在部署过程中遇到问题,可以运行故障排除脚本:
./docker-troubleshoot.sh主要目录结构如下:
client/: 前端React应用server/: 后端Express APIshared/: 前后端共享代码uploads/: 上传的文件存储目录(头像等)
- 所有上传的文件存储在
uploads/目录 - 数据库数据存储存储在
db/目录
docker-compose downdocker-compose logs -f app如果对代码进行了修改,需要重新构建:
docker-compose build app
docker-compose up -ddocker exec character-network-db pg_dump -U postgres characternetwork > backup.sqlcat backup.sql | docker exec -i character-network-db psql -U postgres -d characternetwork- Node.js (v18或更高版本)
- PostgreSQL (v14或更高版本)
-
安装依赖:
npm install
-
创建本地PostgreSQL数据库:
npm run db:create
-
设置数据库架构:
npm run db:setup
-
启动开发服务器:
npm run dev
-
如果需要重置数据库:
npm run db:reset
开发环境的环境变量已在.env文件中设置,包括:
DATABASE_URL: 数据库连接字符串SESSION_SECRET: 会话密钥(可选,系统会自动生成)NODE_ENV: 环境设置
如果需要修改数据库连接信息,请编辑.env文件中的以下变量:
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/characternetwork?sslmode=disable
PGDATABASE=characternetwork
PGHOST=localhost
PGPORT=5432
PGUSER=postgres
PGPASSWORD=postgres
确保这些设置与您的本地PostgreSQL配置匹配。
如果遇到数据库连接问题,请检查:
- PostgreSQL服务是否正在运行
- 数据库用户名和密码是否正确
- 数据库名称是否存在
您可以使用以下命令测试数据库连接:
psql -U postgres -d characternetwork- 在生产环境中,请确保更改默认的数据库密码
- SESSION_SECRET 会自动生成随机密钥,生产环境建议设置固定值
- 考虑对
docker-compose.yml中的端口映射进行调整 - 在生产部署中,考虑使用Nginx作为反向代理