mirror of https://github.com/openspug/spug
A 添加一键安装脚本
parent
b40edc168b
commit
3f5f388717
|
@ -6,7 +6,7 @@ FROM python:3.6.10-alpine3.11
|
||||||
|
|
||||||
RUN echo -e "http://mirrors.aliyun.com/alpine/v3.11/main\nhttp://mirrors.aliyun.com/alpine/v3.11/community" > /etc/apk/repositories
|
RUN echo -e "http://mirrors.aliyun.com/alpine/v3.11/main\nhttp://mirrors.aliyun.com/alpine/v3.11/community" > /etc/apk/repositories
|
||||||
RUN apk update && apk add --no-cache nginx mariadb nodejs-npm git build-base openldap-dev supervisor redis bash
|
RUN apk update && apk add --no-cache nginx mariadb nodejs-npm git build-base openldap-dev supervisor redis bash
|
||||||
RUN apk add --no-cache --virtual .build-deps openssl-dev gcc musl-dev python3-dev libffi-dev openssl-dev make \
|
RUN apk add --no-cache --virtual .build-deps openssl-dev gcc musl-dev python3-dev libffi-dev openssh-client make \
|
||||||
&& mkdir /etc/supervisor.d
|
&& mkdir /etc/supervisor.d
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,191 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Copyright: (c) OpenSpug Organization. https://github.com/openspug/spug
|
||||||
|
# Copyright: (c) <spug.dev@gmail.com>
|
||||||
|
# Released under the MIT License.
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
|
||||||
|
function spuy_banner() {
|
||||||
|
|
||||||
|
echo " ";
|
||||||
|
echo " #### ##### # # #### ";
|
||||||
|
echo "# # # # # # #";
|
||||||
|
echo " #### # # # # # ";
|
||||||
|
echo " # ##### # # # ###";
|
||||||
|
echo "# # # # # # #";
|
||||||
|
echo " #### # #### #### ";
|
||||||
|
echo " ";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function init_system_lib() {
|
||||||
|
source /etc/os-release
|
||||||
|
case $ID in
|
||||||
|
centos|fedora|rhel)
|
||||||
|
echo "开始安装/更新可能缺少的依赖: git mariadb-server mariadb-devel python3-devel gcc openldap-devel redis nginx supervisor python36"
|
||||||
|
yum install -y git mariadb-server mariadb-devel python3-devel gcc openldap-devel redis nginx supervisor python36
|
||||||
|
sed -i 's/ default_server//g' /etc/nginx/nginx.conf
|
||||||
|
MYSQL_CONF=/etc/my.cnf.d/spug.cnf
|
||||||
|
SUPERVISOR_CONF=/etc/supervisord.d/spug.ini
|
||||||
|
REDIS_SRV=redis
|
||||||
|
SUPERVISOR_SRV=supervisord
|
||||||
|
;;
|
||||||
|
|
||||||
|
debian|ubuntu|devuan)
|
||||||
|
echo "开始安装/更新可能缺少的依赖: git mariadb-server libmariadbd-dev python3-venv libsasl2-dev libldap2-dev redis-server nginx supervisor"
|
||||||
|
apt update
|
||||||
|
apt install -y git mariadb-server libmariadbd-dev python3-dev python3-venv libsasl2-dev libldap2-dev redis-server nginx supervisor
|
||||||
|
rm -f /etc/nginx/sites-enabled/default
|
||||||
|
MYSQL_CONF=/etc/mysql/conf.d/spug.cnf
|
||||||
|
SUPERVISOR_CONF=/etc/supervisor/conf.d/spug.conf
|
||||||
|
REDIS_SRV=redis-server
|
||||||
|
SUPERVISOR_SRV=supervisor
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function install_spug() {
|
||||||
|
echo "开始安装Spug..."
|
||||||
|
curl -o /tmp/spug_latest.tar.gz https://spug.dev/installer/spug_latest.tar.gz
|
||||||
|
mkdir -p /data
|
||||||
|
cd /data
|
||||||
|
tar xf /tmp/spug_latest.tar.gz
|
||||||
|
cd spug
|
||||||
|
python3 -m venv venv
|
||||||
|
source venv/bin/activate
|
||||||
|
ln -s /data/spug/venv /data/spug/spug_api/venv
|
||||||
|
mkdir repos
|
||||||
|
ln -s /data/spug/repos /data/spug/spug_api/repos
|
||||||
|
cd spug_api
|
||||||
|
|
||||||
|
pip install wheel -i https://pypi.doubanio.com/simple/
|
||||||
|
pip install gunicorn mysqlclient -i https://pypi.doubanio.com/simple/
|
||||||
|
pip install -r requirements.txt -i https://pypi.doubanio.com/simple/
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function setup_conf() {
|
||||||
|
|
||||||
|
echo "开始配置Spug配置..."
|
||||||
|
# mysql conf
|
||||||
|
cat << EOF > $MYSQL_CONF
|
||||||
|
[mysqld]
|
||||||
|
bind-address=127.0.0.1
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# spug conf
|
||||||
|
cat << EOF > spug/overrides.py
|
||||||
|
DEBUG = False
|
||||||
|
ALLOWED_HOSTS = ['127.0.0.1']
|
||||||
|
|
||||||
|
DATABASES = {
|
||||||
|
'default': {
|
||||||
|
'ATOMIC_REQUESTS': True,
|
||||||
|
'ENGINE': 'django.db.backends.mysql',
|
||||||
|
'NAME': 'spug',
|
||||||
|
'USER': 'spug',
|
||||||
|
'PASSWORD': 'spug.dev',
|
||||||
|
'HOST': '127.0.0.1',
|
||||||
|
'OPTIONS': {
|
||||||
|
'charset': 'utf8mb4',
|
||||||
|
'sql_mode': 'STRICT_TRANS_TABLES',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat << EOF > $SUPERVISOR_CONF
|
||||||
|
[program:spug-api]
|
||||||
|
command = bash /data/spug/spug_api/tools/start-api.sh
|
||||||
|
autostart = true
|
||||||
|
stdout_logfile = /data/spug/spug_api/logs/api.log
|
||||||
|
redirect_stderr = true
|
||||||
|
|
||||||
|
[program:spug-ws]
|
||||||
|
command = bash /data/spug/spug_api/tools/start-ws.sh
|
||||||
|
autostart = true
|
||||||
|
stdout_logfile = /data/spug/spug_api/logs/ws.log
|
||||||
|
redirect_stderr = true
|
||||||
|
|
||||||
|
[program:spug-worker]
|
||||||
|
command = bash /data/spug/spug_api/tools/start-worker.sh
|
||||||
|
autostart = true
|
||||||
|
stdout_logfile = /data/spug/spug_api/logs/worker.log
|
||||||
|
redirect_stderr = true
|
||||||
|
|
||||||
|
[program:spug-monitor]
|
||||||
|
command = bash /data/spug/spug_api/tools/start-monitor.sh
|
||||||
|
autostart = true
|
||||||
|
stdout_logfile = /data/spug/spug_api/logs/monitor.log
|
||||||
|
redirect_stderr = true
|
||||||
|
|
||||||
|
[program:spug-scheduler]
|
||||||
|
command = bash /data/spug/spug_api/tools/start-scheduler.sh
|
||||||
|
autostart = true
|
||||||
|
stdout_logfile = /data/spug/spug_api/logs/scheduler.log
|
||||||
|
redirect_stderr = true
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat << EOF > /etc/nginx/conf.d/spug.conf
|
||||||
|
server {
|
||||||
|
listen 80 default_server;
|
||||||
|
root /data/spug/spug_web/;
|
||||||
|
|
||||||
|
location ^~ /api/ {
|
||||||
|
rewrite ^/api(.*) \$1 break;
|
||||||
|
proxy_pass http://127.0.0.1:9001;
|
||||||
|
proxy_redirect off;
|
||||||
|
proxy_set_header X-Real-IP \$remote_addr;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ^~ /api/ws/ {
|
||||||
|
rewrite ^/api(.*) \$1 break;
|
||||||
|
proxy_pass http://127.0.0.1:9002;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade \$http_upgrade;
|
||||||
|
proxy_set_header Connection "Upgrade";
|
||||||
|
proxy_set_header X-Real-IP \$remote_addr;
|
||||||
|
}
|
||||||
|
|
||||||
|
error_page 404 /index.html;
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
systemctl start mariadb
|
||||||
|
systemctl enable mariadb
|
||||||
|
|
||||||
|
mysql -e "create database spug default character set utf8mb4 collate utf8mb4_unicode_ci;"
|
||||||
|
mysql -e "grant all on spug.* to spug@127.0.0.1 identified by 'spug.dev'"
|
||||||
|
mysql -e "flush privileges"
|
||||||
|
|
||||||
|
python manage.py initdb
|
||||||
|
python manage.py useradd -u admin -p spug.dev -s -n 管理员
|
||||||
|
|
||||||
|
|
||||||
|
systemctl enable nginx
|
||||||
|
systemctl enable $REDIS_SRV
|
||||||
|
systemctl enable $SUPERVISOR_SRV
|
||||||
|
|
||||||
|
systemctl restart nginx
|
||||||
|
systemctl start $REDIS_SRV
|
||||||
|
systemctl restart $SUPERVISOR_SRV
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
spuy_banner
|
||||||
|
init_system_lib
|
||||||
|
install_spug
|
||||||
|
setup_conf
|
||||||
|
|
||||||
|
echo -e "\n\n\033[33m安全警告:默认的数据库和Redis服务并不安全,请确保其仅监听在127.0.0.1,推荐参考官网文档自行加固安全配置!\033[0m"
|
||||||
|
echo -e "\033[32m安装成功!\033[0m"
|
||||||
|
echo "默认管理员账户:admin 密码:spug.dev"
|
||||||
|
echo "默认数据库用户:spug 密码:spug.dev"
|
Loading…
Reference in New Issue