walle2.0 搭建
① git clone 下载walle-web
~]# mkdir -pv /data && cd /data/
~]# git clone https://github.com/meolu/walle-web.git
② 安装 python 2。7+ pip
~]# cd /data/walle-web/
~]# sh admin.sh init
注:如果安装失败,修改admin.sh文件 添加python参数,如下:
virtualenv --no-site-packages -p /usr/local/bin/python2.7 venv
如果初始化报错,根据提示修改prod.txt
配置文件如下:
----------------------------------------------------------------------------
~]# vi /data/walle-web/requirements/prod.txt
# Everything needed in production
fabric2==2.3.1
eventlet==0.23.0
gevent==1.3.7
gevent-websocket==0.10.1
# Flask
Flask==1.0.2
MarkupSafe==1.0
Werkzeug==0.14
Jinja2==2.10
Flask-RESTful==0.3.5
Flask-Babel==0.11.2
Flask-Mail==0.9.0
flask-socketio==3.0.2
# Database
Flask-SQLAlchemy==2.3.2
psycopg2==2.7.5
SQLAlchemy==1.2.14
mysqlclient==1.3.13
marshmallow==2.15.1
# Migrations
Flask-Migrate==2.3.1
# Forms
Flask-WTF==0.14.2
WTForms==2.1
# Deployment
gunicorn==19.1.1
# Auth
Flask-Login==0.4.0
Flask-Bcrypt==0.7.1
anyjson==0.3.3
celery==3.1.18
pycrypto==2.6.1
#pytz==2015.6
#python-ldap>=3.0.0b1
dnspython>=1.15
pytz
requests==2.20.0
GitPython
cryptography>=2.5
pymysql
----------------------------------------------------------------------------
③ 修改配置文件(标红地方做修改)
~]# vi /data/walle-web/walle/config/settings_prod.py
----------------------------------------------------------------------------
# -*- coding: utf-8 -*-
"""
walle-web
Application configuration.
注意: 带了 @TODO 的地方可能需要你的调整
:copyright: © 2015-2019 walle-web.io
:created time: 2018-11-24 07:05:35
:author: wushuiyong@walle-web.io
"""
import os
from walle.config.settings import Config
SETTINGS = {
"MYSQL_USER": "root",
"MYSQL_PASSWORD": "root1234",
"MYSQL_DATABASE": "walle",
"MYSQL_ROOT_PASSWORD": "root1234",
"MYSQL_HOST": "127.0.0.1",
"MYSQL_PORT": 3306,
}
class ProdConfig(Config):
"""Production configuration."""
ENV = 'prod'
DEBUG = False
SQLALCHEMY_ECHO = False
# 服务启动 @TODO
# HOST 修改为与 nginx server_name 一致.
# 后续在web hooks与通知中用到此域名.
HOST = '0.0.0.0'
PORT = 5000
# https True, http False
SSL = False
# 数据库设置 @TODO
# SQLALCHEMY_DATABASE_URI = 'mysql://root:'root1234'@127.0.0.1:3306/walle?charset=utf8'
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8mb4'.format(
SETTINGS["MYSQL_USER"], SETTINGS["MYSQL_PASSWORD"], SETTINGS["MYSQL_HOST"], SETTINGS["MYSQL_PORT"],
SETTINGS["MYSQL_DATABASE"])
# 阿里云RDS强制释放空闲连接导致经常报错 mysql server has gone way
# 适当修改该参数即可 单位为秒
# N秒不用的连接自动释放
# SQLALCHEMY_POOL_RECYCLE = 30
# 本地代码检出路径(用户查询分支, 编译, 打包) #TODO
CODE_BASE = '/data/codebase-walle/'
# 日志存储路径 @TODO
# 默认为walle-web项目下logs, 可自定义路径, 需以 / 结尾
# LOG_PATH = '/var/logs/walle/'
LOG_PATH = os.path.join(Config.PROJECT_ROOT, 'logs')
LOG_PATH_ERROR = os.path.join(LOG_PATH, 'error.log')
LOG_PATH_INFO = os.path.join(LOG_PATH, 'info.log')
LOG_FILE_MAX_BYTES = 100 * 1024 * 1024
# 邮箱配置 @TODO
MAIL_SERVER = 'smtp.exmail.qq.com'
MAIL_PORT = 465
MAIL_USE_SSL = True
MAIL_USE_TLS = False
MAIL_DEFAULT_SENDER = 'service@walle-web.io'
MAIL_USERNAME = 'service@walle-web.io'
MAIL_PASSWORD = 'Ki9y&3U82'
# 登录cookie 防止退出浏览器重新登录
COOKIE_ENABLE = False
----------------------------------------------------------------------------
④ 创建数据库并重置数据
~]# mysql -h127.0.0.1 -P3306 -uroot -p -e 'CREATE SCHEMA walle'
~]# sh admin.sh migration
⑤ 启动walle
~]# sh admin.sh start
⑥ 如果需要重启升级(稳定版建议不升级)
~]# sh admin.sh restart # 重启
~]# sh admin.sh upgrade # 升级walle,升级完需要重启walle服务。升级前最好 git stash 暂存本地修改,升级后git stash pop弹出暂存,然后重启服务。
~]# sh admin.sh migration # Migration
⑦ 备份数据库导入
备份路径:/data/back/mysql/日期命名
备份文件:20200721_walle.sql (日期前缀)
例:导入2020年7月21日备份的walle数据
~]# mysql -h127.0.0.1 -P3306 -uroot -p < /data/back/mysql/20200721/20200721_walle.sql
⑧ nginx配置
~]# vi /data/usr/nginx/conf/nginx.conf
server {
listen 1024;
server_name 127.0.0.1;
charset utf-8;
access_log /data/usr/nginx/logs/1024walle_a.log main;
error_log logs/1024walle_e.log;
index index.html index.htm;
#walle
location / {
try_files $uri $uri/ /index.html;
add_header access-control-allow-origin *;
root /data/walle-web-master/fe;
}
location ^~ /api/ {
add_header access-control-allow-origin *;
proxy_pass http://127.0.0.1:5000;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Origin $host:$server_port;
proxy_set_header Referer $host:$server_port;
}
location ^~ /socket.io/ {
add_header access-control-allow-origin *;
proxy_pass http://127.0.0.1:5000;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Origin $host:$server_port;
proxy_set_header Referer $host:$server_port;
proxy_set_header X-NginX-Proxy true;
# WebScoket Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
重载nginx:
~]# /data/usr/nginx/sbin/nginx -t && /data/usr/nginx/sbin/nginx -s reload
附:初始用户
超管:super@walle-web.io \ Walle123
所有者:owner@walle-web.io \ Walle123
负责人:master@walle-web.io \ Walle123
开发者:developer@walle-web.io \ Walle123
访客:reporter@walle-web.io \ Walle123
附:日志查看
walle运行过程,以及部署过程出错了,具体日志可以查看/data/walle-web/logs/runtime.log
附:官网