① 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參數(shù),如下:
virtualenv --no-site-packages -p?/usr/local/bin/python2.7?venv
如果初始化報(bào)錯(cuò),根據(jù)提示修改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
----------------------------------------------------------------------------
③ 修改配置文件(標(biāo)紅地方做修改)
~]#?vi?/data/walle-web/walle/config/settings_prod.py
----------------------------------------------------------------------------
# -*- coding: utf-8 -*-
"""
walle-web
Application configuration.
注意: 帶了 @TODO 的地方可能需要你的調(diào)整
: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
# 服務(wù)啟動(dòng) @TODO
# HOST 修改為與 nginx server_name 一致.
# 后續(xù)在web hooks與通知中用到此域名.
HOST = '0.0.0.0'
PORT = 5000
# https True, http False
SSL = False
# 數(shù)據(jù)庫(kù)設(shè)置 @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強(qiáng)制釋放空閑連接導(dǎo)致經(jīng)常報(bào)錯(cuò) mysql server has gone way
# 適當(dāng)修改該參數(shù)即可 單位為秒
# N秒不用的連接自動(dòng)釋放
# SQLALCHEMY_POOL_RECYCLE = 30
# 本地代碼檢出路徑(用戶查詢分支, 編譯, 打包) #TODO
CODE_BASE = '/data/codebase-walle/'
# 日志存儲(chǔ)路徑 @TODO
# 默認(rèn)為walle-web項(xiàng)目下logs, 可自定義路徑, 需以 / 結(jié)尾
# 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
----------------------------------------------------------------------------
④ 創(chuàng)建數(shù)據(jù)庫(kù)并重置數(shù)據(jù)
~]#?mysql -h127.0.0.1 -P3306 -uroot -p -e 'CREATE SCHEMA walle'
~]#?sh admin.sh migration
⑤ 啟動(dòng)walle
~]#?sh admin.sh start
⑥ 如果需要重啟升級(jí)(穩(wěn)定版建議不升級(jí))
~]#?sh admin.sh restart # 重啟
~]#?sh admin.sh upgrade # 升級(jí)walle,升級(jí)完需要重啟walle服務(wù)。升級(jí)前最好 git stash 暫存本地修改,升級(jí)后git stash pop彈出暫存,然后重啟服務(wù)。
~]#?sh admin.sh migration # Migration
⑦ 備份數(shù)據(jù)庫(kù)導(dǎo)入
備份路徑:/data/back/mysql/日期命名
備份文件:20200721_walle.sql (日期前綴)
例:導(dǎo)入2020年7月21日備份的walle數(shù)據(jù)
~]#?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
⑨ 訪問(wèn)?http://127.0.0.1:1024
附:初始用戶
超管:super@walle-web.io?\ Walle123
所有者:owner@walle-web.io?\ Walle123
負(fù)責(zé)人:master@walle-web.io?\ Walle123
開發(fā)者:developer@walle-web.io?\ Walle123
訪客:reporter@walle-web.io?\ Walle123
附:日志查看
walle運(yùn)行過(guò)程,以及部署過(guò)程出錯(cuò)了,具體日志可以查看/data/walle-web/logs/runtime.log
附:官網(wǎng)