摘要訊息 : 使用 DCRM 建構 Cydia 個人源.
0. 前言
本篇文章虽然稍微照顾了第一次建立 Python 网站的人, 但是依然建立在你需要 Cydia 个人源以及你已经有搭建 Python 网站和熟悉 CentOS 7 命令的情况下写出, 如有不便, 可以直接评论留言或者自行 Google 解决.
DCRM 需要大家安装 MySQL.
本文于 2022 年 3 月 18 日进行一次更新和修正. 修正之后本文已经归档, 不再享受更新.
1. 安装
如果没有安装 git 的, 需要执行指令 yum install -y git
. 进入网站根目录 cd /www
, 将项目 Clone 到本地 : git clone https://github.com/82Flex/DCRM.git
. 根据个人习惯, 重命名为 cydia
: mv DCRM cydia
.
进入 cydia 目录 : cd cydia
, 里面大概长这样 :
首先安装依赖套件 : pip install -r requirements.txt
. 安装相关依赖, 中间过程持续较长, 不要关闭 ssh 窗口或者强行停止. 最后如果看到 Successfully installed ..., 就说明安装完成. 注意, 中间可能有红色的错误, 需要大家自行修复.
然后输入 mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -D mysql -u root -p
, 期间会让你输入 MySQL 的 root
用户密码.
在官方给出的说明文档中, Redis 和 Memcached 设为推荐, 于是我们安装 yum install -y redis memcached
. 然后设置启动 :
systemctl start memcached
systemctl start redis
systemctl enable memcached
systemctl enable redis
继续安装依赖套件 : pip install rq Pillow exifread
.
接下来配置 Redis : redis-cli
, 给 Redis 设置密码 CONFIG SET requirepass "改为你的密码"
, 完成之后退出 exit
.
接下来修改 DCRM 配置文件. 进入 DCRM 档案夹 : cd DCRM
. 首先拷贝一份配置文件, 因为默认给出的是样板, 这里不建议用 mv
命令 : cp settings.default.py settings.py
, vim settings.py
. 找到 ENABLE_REDIS
, ENABLE_CACHE
和 ENABLE_SCREENSHOT
, 把后面的 False
改为 True
. 找到 ALLOWED_HOSTS
, 修改为
ALLOWED_HOSTS = [
'你的域名'
]
找到 LANGUAGE_CODE
, 默认 "en
" 为英文, 可以改为想要的语言. 目前官方给出的, 本人仔细看了一下, 暂时只有 ;"en
"和 "zh_Hans
", 不过看起来中文好像并不生效, 希望有生效留下评论. 找到 TIME_ZONE
, 改为 "Asia/Hong_Kong
" 或者改为你想要的地区. 找到 DATABASES
, 这个是 MySQL 数据库的配置, 将 NAME
, USER
和 PASSWORD
改为你自己的 MySQL 配置. 找到 RQ_QUEUES
并且设置 PASSWORD
项. 在此之前, 你需要创建一个数据库或者使用现有的数据库.
到这里为止, 配置文件修改完成, 返回上一层目录 cd ..
. 接下来执行 :
./manage.py collectstatic
./manage.py migrate
./manage.py createsuperuser
会让你创建超级用户
完成上述步骤之后, 我们把 uwsgi.ini
放在 DCRM
目录 : cd DCRM
. 创建 uwsgi.ini
: vim uwsgi.ini
, 写入以下配置 :
[uwsgi]
chdir = /www/cydia
module = DCRM.wsgi
master = true
processes = 4
socket = :8001
vaccum = true
uid = nginx
gid = nginx
确保伺服器的 8001
连接埠没有被其它应用程式占用, 否则会产生错误.
配置 Nginx, 下面是一份 Nginx 示例文件, 根据自己的实际配置进行修改 :
upstream django {
server 127.0.0.1:8001;
}
server {
listen 80;
server_name apt.jonny.vip;
rewrite ^/(.*)$ https://你的网域名称/$1 permanent;
}
server {
listen 443 ssl;
ssl_certificate 域名 SSL CRT 档案位置;
ssl_certificate_key 域名 SSL KEY 档案位置;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
ssl_prefer_server_ciphers on;
server_name 你的域名;
root /www/cydia; #你的网站根目录, 下面含有 "/www/root/DCRM" 的都需要修改为这个 root 目录
error_page 497 https://$host$uri?$args;
server_name_in_redirect off;
index index.html index.htm;
location = / {
rewrite ^ /index/ last;
}
location / {
try_files $uri $uri/ @djangosite;
}
location ~^/static/(.*)$ {
alias /www/cydia/WEIPDCRM/static/$1;
}
location ~^/resources/(.*)$ {
alias /www/cydia/resources/$1;
}
location ~^/((CydiaIcon.png)|(Release(.gpg)?)|(Packages(.gz|.bz2)?))$ {
alias /www/cydia/resources/releases/$1;
}
location @djangosite {
uwsgi_pass django;
include /etc/nginx/uwsgi_params;
}
location ~* .(ico|gif|bmp|jpg|jpeg|png|swf|js|css|mp3|m4a|m4v|mp4|ogg|aac)$ {
expires 30d;
valid_referers none blocked 改为 *.你的网站域名 127.0.0.1 localhost;
if ($invalid_referer) {
return 403;
}
}
}
接下来启动 : uwsgi --ini uwsgi.ini --daemonize=/dev/null
, 访问网站便可以看到 :
最后配置 GnuPG : yum install -y gnupg2
. 执行 gpg --gen-key
, 根据提示创建密钥, 过程可能需要比较长时间, 不要直接结束或者关闭 ssh 会话窗口. 启动后台队列进程 :
nohup ./manage.py rqworker high > /dev/null &
nohup ./manage.py rqworker default > /dev/null &
至此, 基本的安装完成, 不过经过初步的尝试, 好像还是有很多问题的. 这里直接给出官方的使用说明好了, 有精力、有设备的同学可以继续研究 :
- WEIPDCRM -> Settings;
- Sites: Set domains and site names;
- WEIPDCRM -> Releases: Add a new release and set it as an active release;
- WEIPDCRM -> Sections: Add sections;
- Upload: Upload deb files;
- WEIPDCRM -> Versions: Enable Packages and assign them into sections;
- WEIPDCRM -> Builds: Build the repository to apply all the changes.