From 29b9edd33790adc7f23c5689910356a23af7bebb Mon Sep 17 00:00:00 2001
From: qiaofeng1227 <76487013@qq.com>
Date: Wed, 19 Jul 2023 11:13:52 +0800
Subject: [PATCH] online install
---
docker/w9nginxproxymanager/initproxy.conf | 55 ++++++++--------
install/install.sh | 80 +++++++++++++++--------
2 files changed, 77 insertions(+), 58 deletions(-)
diff --git a/docker/w9nginxproxymanager/initproxy.conf b/docker/w9nginxproxymanager/initproxy.conf
index 74e8fef7..8ec39291 100644
--- a/docker/w9nginxproxymanager/initproxy.conf
+++ b/docker/w9nginxproxymanager/initproxy.conf
@@ -4,45 +4,42 @@
server {
- set $forward_scheme http;
- set $server "172.17.0.1";
- set $port 9000;
listen 80;
listen [::]:80;
server_name domain.com;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $http_connection;
- proxy_http_version 1.1;
- access_log /data/logs/proxy-host-2_access.log proxy;
- error_log /data/logs/proxy-host-2_error.log warn;
+ access_log /data/logs/proxy-host-1_access.log proxy;
+ error_log /data/logs/proxy-host-1_error.log warn;
- location /AppManage/ {
- proxy_set_header Host $host;
- proxy_set_header X-Forwarded-Scheme $scheme;
- proxy_set_header X-Forwarded-Proto $scheme;
- proxy_set_header X-Forwarded-For $remote_addr;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_pass http://websoft9-appmanage:5000/;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $http_connection;
- proxy_http_version 1.1;
- auth_basic "Protected Area";
- auth_basic_user_file /data/nginx/proxy_host/.htpasswd;
+ if ($http_referer ~* /portainer/) {
+ rewrite ^/locales/(.*) /portainer/locales/$1 break;
}
-
+
location /portainer/ {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header Accept-Encoding \"\";
proxy_pass http://websoft9-portainer:9000/;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
- proxy_http_version 1.1;
+ proxy_http_version 1.1;
+ add_header 'Access-Control-Allow-Origin' '*';
+ add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
+ add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
+ if ($request_method = OPTIONS) {
+ return 204;
+ }
+ set $quot_tmp "\"";
+ set $portainer_jwt "${quot_tmp}${arg_portainer_jwt}${quot_tmp}";
+ # sub_filter '' "";
+ sub_filter '' "";
+ sub_filter_once on;
+ sub_filter_types *;
}
location /nginxproxymanager/ {
@@ -59,9 +56,13 @@ server {
proxy_cache_bypass $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_cache_bypass $http_secret_header;
- proxy_set_header Accept-Encoding "";
+ proxy_set_header Accept-Encoding \"\";
add_header Pragma "no-cache";
add_header Cache-Control "no-cache";
+ if ($request_method = OPTIONS) {
+ return 204;
+ }
+ sub_filter '' "";
# source changes
sub_filter 'href="/' 'href="/nginxproxymanager/';
sub_filter 'src="/' 'src="/nginxproxymanager/';
@@ -75,19 +76,15 @@ server {
sub_filter 'window.location="/"' 'window.location="/nginxproxymanager/"';
sub_filter 'history.start({pushState:!0})' 'history.start({pushState:!0,root: "/nginxproxymanager/"})';
sub_filter 'i.history.navigate(e.' 'i.history.navigate(e.replace("/nginxproxymanager","").';
- sub_filter_types text/css text/javascript application/javascript;
+ sub_filter_types *;
sub_filter_once off;
}
location / {
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $http_connection;
- proxy_http_version 1.1;
-
# Proxy!
include conf.d/include/proxy.conf;
}
# Custom
include /data/nginx/custom/server_proxy[.]conf;
-}
+}
\ No newline at end of file
diff --git a/install/install.sh b/install/install.sh
index bd78c0c2..b1580e37 100644
--- a/install/install.sh
+++ b/install/install.sh
@@ -8,8 +8,9 @@ function error_exit {
}
trap 'error_exit "Please push issue to: https://github.com/Websoft9/stackhub/issues"' ERR
+install_way=$1
+
urls=(
- https://github.com
https://ghproxy.com/https://github.com
)
@@ -314,28 +315,34 @@ echo "Set cockpit port to 9000 ..."
sudo sed -i 's/ListenStream=9090/ListenStream=9000/' /lib/systemd/system/cockpit.socket
# install plugins
-# install appstore
-mkdir /usr/share/cockpit/appstore
-cp -r /data/apps/plugin-appstore/build/* /usr/share/cockpit/appstore
-cp -r /data/apps/plugin-appstore/data /usr/share/cockpit/appstore/static/
+if [ "${install_way}" == 'online' ] ;then
+ # install appstore
+ mkdir /usr/share/cockpit/appstore
+ cp -r /data/apps/plugin-appstore/build/* /usr/share/cockpit/appstore
+ cp -r /data/apps/plugin-appstore/data /usr/share/cockpit/appstore/static/
-# install portainer
-mkdir /usr/share/cockpit/container
-cp -r /data/apps/plugin-portainer/build/* /usr/share/cockpit/container
+ # install portainer
+ mkdir /usr/share/cockpit/container
+ cp -r /data/apps/plugin-portainer/build/* /usr/share/cockpit/container
-## install nginx
-mkdir /usr/share/cockpit/nginx
-cp -r /data/apps/plugin-nginx/build/* /usr/share/cockpit/nginx
+ ## install nginx
+ mkdir /usr/share/cockpit/nginx
+ cp -r /data/apps/plugin-nginx/build/* /usr/share/cockpit/nginx
+
+ ## install settings
+ mkdir /usr/share/cockpit/settings
+ cp -r /data/apps/plugin-settings/build/* /usr/share/cockpit/settings
+
+ ## install myapps
+ mkdir /usr/share/cockpit/myapps
+ cp -r /data/apps/plugin-myapps/build/* /usr/share/cockpit/myapps
+ cp -r /data/apps/plugin-myapps/logos /usr/share/cockpit/appstore/static/
+ rm -rf /data/apps/plugin-*
+else
+ echo "install from artifact"
+fi
-## install settings
-mkdir /usr/share/cockpit/settings
-cp -r /data/apps/plugin-settings/build/* /usr/share/cockpit/settings
-## install myapps
-mkdir /usr/share/cockpit/myapps
-cp -r /data/apps/plugin-myapps/build/* /usr/share/cockpit/myapps
-cp -r /data/apps/plugin-myapps/logos /usr/share/cockpit/appstore/static/
-rm -rf /data/apps/plugin-*
# install navigator
if [ "$os_type" == 'Ubuntu' ] || [ "$os_type" == 'Debian' ] ;then
@@ -362,7 +369,12 @@ fi
rm -rf /usr/share/cockpit/apps /usr/share/cockpit/selinux /usr/share/cockpit/kdump /usr/share/cockpit/sosreport /usr/share/cockpit/packagekit
# configure cockpit
-cp /data/apps/websoft9/cockpit/cockpit.conf /etc/cockpit/cockpit.conf
+if [ "${install_way}" == 'online' ] ;then
+ cp /data/apps/websoft9/cockpit/cockpit.conf /etc/cockpit/cockpit.conf
+else
+ echo "install from artifact"
+fi
+
sudo systemctl daemon-reload
sudo systemctl enable --now cockpit
@@ -423,14 +435,20 @@ if [ -z "$fasturl" ]; then
fi
# download apps
mkdir -p /data/apps
-clone_repo $fasturl/Websoft9/docker-library /data/library
-clone_repo $fasturl/Websoft9/websoft9 /data/apps/websoft9
-clone_repo $fasturl/Websoft9/plugin-appstore /data/apps/plugin-appstore
-clone_repo $fasturl/Websoft9/plugin-myapps /data/apps/plugin-myapps
-clone_repo $fasturl/Websoft9/plugin-portainer /data/apps/plugin-portainer
-clone_repo $fasturl/Websoft9/plugin-settings /data/apps/plugin-settings
-clone_repo $fasturl/Websoft9/plugin-nginx /data/apps/plugin-nginx
-cp -r /data/apps/websoft9/docker /data/apps/w9services
+
+if [ "${install_way}" == 'online' ] ;then
+ clone_repo $fasturl/Websoft9/docker-library /data/library
+ clone_repo $fasturl/Websoft9/websoft9 /data/apps/websoft9
+ clone_repo $fasturl/Websoft9/plugin-appstore /data/apps/plugin-appstore
+ clone_repo $fasturl/Websoft9/plugin-myapps /data/apps/plugin-myapps
+ clone_repo $fasturl/Websoft9/plugin-portainer /data/apps/plugin-portainer
+ clone_repo $fasturl/Websoft9/plugin-settings /data/apps/plugin-settings
+ clone_repo $fasturl/Websoft9/plugin-nginx /data/apps/plugin-nginx
+ cp -r /data/apps/websoft9/docker /data/apps/w9services
+else
+ echo "install from artifact"
+fi
+
}
StartAppMng(){
@@ -439,7 +457,11 @@ echo "Start appmanage API ..."
cd /data/apps/w9services/w9redis && sudo docker compose up -d
cd /data/apps/w9services/w9appmanage && sudo docker compose up -d
-public_ip=`bash /data/apps/websoft9/scripts/get_ip.sh`
+if [ "${install_way}" == 'online' ] ;then
+ public_ip=`bash /data/apps/websoft9/scripts/get_ip.sh`
+else
+ public_ip=`curl https://websoft9.github.io/websoft9/scripts/get_ip.sh |bash`
+fi
echo $public_ip > /data/apps/w9services/w9appmanage/public_ip
appmanage_ip=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' websoft9-appmanage)
}