面板部署 - wilia/django-sspanel GitHub Wiki

How to deploy the django-sspanel on your own VPS.

谜之屋部署教程 (默认以 Centos 7)

谜之屋需要使用对应版本的后端才能拥有完整功能:[具体可以看这里](https://github.com/Ehco1996/django-sspanel/wiki/%08%E8%8A%82%E7%82%B9%E9%83%A8%E7%BD%B2)

同时需要将后端服务器的时区设置为上海: timedatectl set-timezone Asia/Shanghai

部署方式

Nginx > uwsgi > Django

前置组件

  • lnmp

  • pyenv

  • Python3

  • uwsgi

详细步骤:

STEP 1:

安装mysql & nginx

有能力的可以自行编译安装,实际需要的组件是 Nginx & Mysql

如果啥都不懂推荐使用军哥的一件LNMP脚本安装,地址:https://lnmp.org/install.html

STEP 2:

安装pyenv

如果觉得复杂,可以使用一件脚本

脚本跑完之后会有提示 按照提示修改自己的`~/.bash_profile

# 打开配置文件
nano ~/.bash_profile

# 复制刚才提示中的类似这三段
# 不能直接复制我的,每个人的不一样
export PATH="/home/ehco/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-"

# 使自己的profile生效
source ~/.bash_profile

安装 Python3

# 安装前置依赖
yum -y install gcc
yum -y install make
yum -y install zlib zlib-devel
yum -y install readline readline-devel readline-static
yum -y install openssl openssl-devel openssl-static
yum -y install sqlite-devel
yum -y install bzip2-devel bzip2-libs
yum -y install python-devel mysql-devel
yum -y install python3-devel
# 安装Python3
$ pyenv install 3.6.1

STEP 3:

创建虚拟运行环境

  1. 创建Django-sspanel 运行的虚拟环境

  $ pyenv virtualenv 3.6.1 venv-sspanel
  1. 切换到www网站目录

  $ cd /home/www/

STEP 4:

Clone并编写配置

  1. clone 项目到本地

      $ git clone -b master https://github.com/Ehco1996/django-sspanel.git
  2. 将项目文件夹的环境设置为 virtualenv

  $ pyenv local venv-sspanel
  # 这个时候,我们就有一个干净的Python运行环境了
  1. 安装项目所需的第三方包

      $ cd /home/www/django-sspanel # 进入项目目录
      # cent os 需要手动安装mysqlclient
      $ pip3 install mysqlclient
      
      # 最后安装其他第三方包
      $ pip install -r requirements.txt 
  2. 编写自定义配置

      $ cd django-sspanel # 进入项目配置文件夹
      $ nano simple_setting_product.py # 编写配置
# DEBUG设置
DEBUG = False

# 域名设置
ALLOWED_HOSTS = [
    'your.domain.com'
]

# mysql 设置
DATABASES = {

    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'sspanel',
        'USER': 'root',
        'PASSWORD': 'pass',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {
            'autocommit': True,
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
            'charset': 'utf8mb4',
        },
    }
}

# 是否开启邮件功能
USE_SMTP = True
# 邮件服务设置:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
# 是否开启ssl/tls
EMAIL_USE_TLS = False
EMAIL_USE_SSL = False

# 我使用163邮箱作为smtp服务器
EMAIL_HOST = 'smtp.163.com'
EMAIL_PORT = 25
EMAIL_HOST_USER = 'USER'
EMAIL_HOST_PASSWORD = 'PASS'
DEFAULT_FROM_EMAIL = 'xx<ADDRESS>'

# SS面板设置:
MB = 1024 * 1024
GB = 1024 * 1024 * 1024
DEFAULT_TRAFFIC = 5 * GB
START_PORT = 1024

# 默认加密混淆协议
DEFAULT_METHOD = 'aes-256-cfb'
DEFAULT_PROTOCOL = 'origin'
DEFAULT_OBFS = 'plain'

# 签到流量设置
MIN_CHECKIN_TRAFFIC = 10 * MB
MAX_CHECKIN_TRAFFIC = 200 * MB

# 是否启用支付宝系统
USE_ALIPAY = True
# 支付订单提示信息 修改请保留 {} 用于动态生成金额
ALIPAY_TRADE_INFO = '谜之屋的{}元充值码'

# 是否开启91pay 第三方接口
# 91PAY 、ALIPAY只能开启一项
# 需要授权请联系:
# https://t.me/gh012363  或者QQ群538609570
USE_91PAY = False
ID_91PAY='123'
USER_91PAY='ehco'

# 网站title
TITLE = '谜之屋'
SUBTITLE = '秘密的小屋'

# 用户邀请返利比例
INVITE_PERCENT = 0.2
# 用户能生成的邀请码数量
INVITE_NUM = 5

# 网站邀请界面提示语
INVITEINFO = '邀请码实时更新,如果用完了进telegram群 群链接:https://t.me/Ehcobreakwa11'

# 网站域名设置(请正确填写,不然订阅功能会失效:
HOST = 'https://www.ehcozone.ml/'
  1. 建立sspanel数据库

      $  mysql -uroot -p # 输入安装lnmp时mysql的密码
      $  create database sspanel; # 创建数据库
  2. 测试项目是否正常运行

      $  cd .. # 切回项目根目录
      $  python manage.py migrate # 通过djang ORM 建立所需数据库表   
      $  python manage.py runserver # 测试项目是否运行
  3. 创建管理员账号

      $  python manage.py createsuperuser # 按照提示创建即可
      

如果没有报错,那么恭喜你,这一步你成功了。 如果报错了,根据信息来慢慢解决。

STEP 5:

编写Nginx 和 uwsgi 配置

  $  nano nginx_vhost.conf # 
server
    {
     	listen 80;
        server_name www.ehcozone.club; # 项目域名
        root  /home/www/django-sspanel; # 项目的目录

    location /media  {
        alias /home/www/django-sspanel/media;  # your Django project's media files - amend as required
        }

	location /static
        {
	alias  /home/www/django-sspanel/static; #静态文件地址,js/css
        expires  12h;
        }

	location /
        {
	include uwsgi_params;
        uwsgi_pass 127.0.0.1:8080;
        }

    }

将配置文件复制到Nginx配置目录

  $ cp nginx_vhost.conf /usr/local/nginx/conf/vhost/projectname.conf 

配置uwsgi

  $ nano uwsgi.ini
[uwsgi]

# variables
projectname = django-sspanel # 项目名字
projectdomain = 'ehcozone.club' # 项目域名
base = /home/www/django-sspanel

# config
chdir= /home/www/django-sspanel/
plungins = python
socket = 127.0.0.1:8080  # 运行端口
module = django-sspanel.wsgi:application
pidfile = /tmp/django-sspanel.pid # pid文件
master = True
vacuum = True
增加定时任务
  $ python manage.py crontab add

运行项目

  $ uwsgi uwsgi.ini

ok,不出意外项目已经跑起来了

PS:管理员账号登录之后,先得去django后台绑定一下

只有管理员才需要这个步骤,正常通过注册生成的用户会自动绑定的

具体步骤: * 输入 域名/admin 进入django后台 * 登录管理员账号 * 选择ssserver应用下的ss账户 * 点击右上角的添加账号 * 绑定自己的管理员账号

⚠️ **GitHub.com Fallback** ⚠️