Socialhome项目开发环境搭建与开发指南
socialhome A federated social home 项目地址: https://gitcode.com/gh_mirrors/so/socialhome
项目概述
Socialhome是一个基于Django和Vue.js构建的社交网络平台,目前仍在积极开发中,需要更多功能完善和UI优化。本文将为开发者详细介绍如何搭建Socialhome的开发环境,以及相关的开发工作流程。
开发环境准备
系统要求
推荐使用Ubuntu 16.04及以上版本进行开发,也可以使用Alpine 3.6系统。以下是基础依赖:
- Python 3.10(最低开发版本要求)
- NodeJS 12.x
- PostgreSQL数据库服务器
- Redis内存数据库
安装系统依赖
对于Ubuntu系统,可以使用项目提供的install_ubuntu_dependencies.sh
脚本安装所需依赖。Alpine系统则可以使用install_alpine_dependencies.sh
脚本。
如果需要使用pytest生成性能分析SVG图,还需要安装graphviz包(提供dot工具)。
Python环境配置
创建虚拟环境
建议使用Python虚拟环境隔离开发环境:
python3 -m venv venv
source venv/bin/activate
安装Python依赖
使用pip-tools工具管理Python依赖:
pip install pip-tools
pip-sync requirements/development.txt
前端资源安装
Socialhome使用npm和Bower管理前端依赖:
npm install
node_modules/.bin/bower install
npm run dev # 构建前端资源
开发过程中可以使用watch模式自动重建资源:
npm run watch
项目配置
环境变量配置
复制示例环境文件并修改必要配置:
cp .env.example .env
特别注意必须设置SECRET_KEY
值,这是Django项目的安全密钥。
数据库设置
使用Docker运行PostgreSQL
docker run -e 'POSTGRES_PASSWORD=socialhome POSTGRES_USER=socialhome POSTGRES_DB=socialhome' \
--name socialhomedb -d -p '5432:5432' postgres
手动安装PostgreSQL
Ubuntu系统示例:
sudo su - postgres
createuser -s -P socialhome # 设置密码为'socialhome'
createdb -O socialhome socialhome
exit
数据库迁移
python manage.py migrate
Redis安装
可以使用系统Redis或Docker运行:
docker run --name socialhomeredis -d -p '6379:6379' redis
运行开发服务器
python manage.py runserver
注意:不能使用runserver_plus
,因为它不支持Django Channels。
开发工具使用
Django Shell
推荐使用增强版shell:
python manage.py shell_plus
创建超级用户
python manage.py createsuperuser
创建后需要手动确认邮箱:
from allauth.account.models import EmailAddress
EmailAddress.objects.all().update(verified=True)
搜索索引
Socialhome使用搜索索引提高查询效率,开发时需要定期重建索引。
测试相关
测试数据库权限
su - postgres
psql -c "ALTER USER socialhome CREATEDB;"
运行测试
py.test
添加--profile --profile-svg
参数可以生成性能分析图。
API路由开发
修改API路由后需要更新前端测试用的URL配置:
python manage.py collectstatic_js_reverse
mv staticfiles/django_js_reverse/js/reverse.js socialhome/frontend/tests/unit/fixtures/Urls.js
代码规范检查
ESLint检查
Socialhome遵循Airbnb和Vue的代码规范:
npm run lint
文档构建
cd docs
make html
Docker开发环境
配置docker-compose
复制示例文件:
cp docker/dev/docker-compose.yml.example ./docker-compose.yml
构建和运行
docker-compose build
docker-compose run django manage migrate
docker-compose run django manage createsuperuser
docker-compose up
默认情况下,Django运行在8000端口,Redis和PostgreSQL不对外暴露端口。
生成测试内容
可以使用管理命令生成虚拟内容:
python manage.py create_dummy_content
使用--help
查看可用选项。
获取帮助
开发过程中遇到问题可以参考社区文档或提交issue寻求帮助。
socialhome A federated social home 项目地址: https://gitcode.com/gh_mirrors/so/socialhome
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考