
dailybruin/meowDaily Bruin的和发布工具
我们已切换到基于Procfile(Heroku/Flynn/Dokku)的系统来配置和部署服务!在大多数情况下,git push <server-remote> master即可完成服务部署。我们还搭配了更精简、更易用的Docker Compose开发工作流。若未来计算需求和资源增长,可切换到完整的Docker部署流水线。
Windows用户需注意评论中提到的额外命令。
bashgit clone [***] # 克隆仓库 cd meow # 进入目录 echo REDIS_URL=redis://redis:6379/ > .env echo DATABASE_URL=postgres://postgres@db:5432/postgres >> .env # 最低要求的环境变量,确保.env文件中包含换行符(\n)
bashdocker-compose build # 构建并拉取相关Docker镜像
bashdocker-compose run web meow/manage.py migrate # 运行数据库迁移
bashdocker-compose run web meow/manage.py init # 初始化Meow运行所需的配置
目前大部分配置可留空。你可以创建自己的***/***应用,或向PM/编辑请求测试账户的密钥。
bashdocker-compose run web meow/manage.py createsuperuser
访问0.0.0.0:5000/admin/django_celery_beat/periodictask/,使用创建的超级用户登录,创建周期性任务以发送帖子!
以下说明适用于Ubuntu,其他系统请自行查找对应包。
若使用Vagrant,克隆仓库后执行vagrant up会自动安装本节所有内容。
安装所需包:
bashsudo apt-get update sudo apt-get install python-pip python-setuptools python-dev fabric git postgresql postgresql-server-dev-9.1 sendmail
推荐使用virtualenvwrapper(virtualenv依赖符号链接,而VirtualBox共享文件夹不支持符号链接)。
安装:
bashsudo easy_install virtualenv sudo pip install virtualenvwrapper
将以下行添加到.bashrc:
bashsource /usr/local/bin/virtualenvwrapper.sh
创建虚拟环境:
bashmkvirtualenv meow
激活虚拟环境(创建后自动激活):
bashworkon meow
退出虚拟环境:
bashdeactivate
在虚拟环境外安装psycopg2(PostgreSQL适配器):
basheasy_install psycopg2
在虚拟环境内安装仓库中的requirements.txt依赖:
bashpip install -r requirements.txt
配置Django数据库。开发环境中,用文本编辑器打开/etc/postgresql/9.1/main/pg_hba.conf(可能需要安装vim等编辑器),在约84行将peer或md5改为trust:
# Database administrative login by Unix domain socket local all postgres trust # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust
重启数据库:
bash/etc/init.d/postgresql reload
创建数据库(名称为"meow"):
bashcreatedb -U postgres meow
在meow/meow/settings.py中配置数据库,若按上述步骤操作,以下配置有效:
python'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'meow', 'USER': 'postgres', 'PASSWORD': '',
同步数据库并创建超级用户:
bashpython manage.py syncdb python manage.py migrate
运行python manage.py init配置所有设置。
需准备:
使用Django管理界面(http://[你的URL]/admin)添加Section对象。获取***访问密钥/令牌:
bashpython manage.py ***_auth
获取***令牌:参考这些说明。
进入仓库的meow目录,执行:
bashfab rs
Meow将运行在0.0.0.0:8000(非默认的127.0.0.1:8000),可从其他机器访问(如在VM中运行时从主机访问)。
指定端口:
bashfab rs:2000 # 监听2000端口
在meow/目录执行:
bashpython manage.py sendposts
该命令将发送所有标记为已编辑、待发布但未发送的帖子。若需自动发送,可设置cron任务。
Daily Bruin的cron任务示例:
bash#! /bin/bash source meow-venv/bin/activate python meow/manage.py sendposts
sendposts会将尝试发送的***帖子或推文输出到stdout(ASCII格式),可自行实现日志。几乎所有发送错误都会保存在Meow数据库中,方便查看。
仅用于测试,设为私有。测试结束后应删除并从本页移除。
DailyBruinTest
FakeDBthatCalvinCreated
页面ID:160988910774531
FakeDB
页面ID:1416676115217881
FakeDB A&E
页面ID:1415944791959246
Meow基于GNU AGPLv3许可发布,详见LICENSE。
虽非必需,但若使用本软件或希望贡献开发,请通过***联系我们。我们很想了解其用途,尤其是在其他大学报社的应用。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务