diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..4278677 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,12 @@ +* text=auto +*.sh text eol=lf +*.md text eol=lf +*.yaml text eol=lf +*.yml text eol=lf +*.sql text eol=lf +*.txt text eol=lf +*.conf text eol=lf +*.xml text eol=lf +*.bat text eol=crlf +*.png binary +*.jpg binary \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..94d2178 --- /dev/null +++ b/.gitignore @@ -0,0 +1,86 @@ +###################################################################### +# Build Tools + +.gradle +!gradle/wrapper/gradle-wrapper.jar + +target/ +!.mvn/wrapper/maven-wrapper.jar + +###################################################################### +# IDE + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +*.class + +### JRebel ### +rebel.xml +### NetBeans ### +nbproject/private/ +nbbuild/ +dist/ +nbdist/ +.nb-gradle/ + +###################################################################### +# Others +*.log +*.xml.versionsBackup +*.swp +tmp + +# docker +build/docker/mysql/data +build/docker/redis/data +build/docker/mysql/log +build/docker/nacos/logs +build/docker/mysql/db/*.sql +build/docker/wfc/*/jar/*.jar +build/docker/wfc/*/*/jar/*.jar + +# Logs +logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +!.vscode/settings.json +!.vscode/launch.json +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +package-lock.json +yarn.lock + +.VSCodeCounter + +# release +release/debs/*.deb +release/tars/*.tar.gz \ No newline at end of file diff --git a/README.md b/README.md index 8d900e6..99973e6 100644 --- a/README.md +++ b/README.md @@ -1 +1,52 @@ -本项目WANFi计费和用户管理系统 \ No newline at end of file +# WANFi Controller & Billing System + +## 准备工作 + +```text +Linux >= Ubuntu 22.04 +JDK >= 1.8 (Recommended version 1.8) +Docker >= 24.0.7, build 24.0.7-0ubuntu2~22.04.1 +Docker-compose >= 1.29.2 +``` + +## 获取安装包 + +安装包名: wfc-1.0.2-20241212.tar.gz +说明: + +* 版本号: 1.0.2 +* 构建日期:20241212 + +## 安装软件 + +### 创建安装目录 + +```sh + sudo mkdir /opt/wfc +``` + +### 解压软件包至安装目录 + +```sh + sudo tar xvfz wfc-1.0.2-20241212.tar.gz -C /opt/wfc +``` + +### 配置软件 + +```sh + cd /opt/wfc/bin + sudo ./wfcsetup.sh +``` + +### 启动/查看/停止/版本软件 + +```sh + cd /opt/wfc/bin + sudo ./wfccontrol.sh start/status/stop/version +``` + +or + +```sh + sudo systemctl start/status/stop wfccontrol.service +``` diff --git a/bin/build.sh b/bin/build.sh new file mode 100644 index 0000000..724f340 --- /dev/null +++ b/bin/build.sh @@ -0,0 +1,106 @@ +#!/bin/bash +ProjectL=wfc +ProjectU=WFC +RelVersion=1.0.2 +RelDate=`date +%Y%m%d` +GitRootDir=${HOME}/wfc.git +BERootDir=${GitRootDir}/be.wfc +FERootDir=${GitRootDir}/fe.wfc +FEUserRootDir=${GitRootDir}/fe.wfc.user +BuildRootDir=${GitRootDir}/build.wfc + +WFCWorkDir=/opt/wfc +BuildDockerDir=${BuildRootDir}/build/docker +ReleseDir=${BuildRootDir}/release +TarFileName=${ProjectL}-${RelVersion}-${RelDate}.tar.gz + +usage() { + echo "Usage: sh build.sh [extras|jar|dist|copy|tar|deb|all]" + exit 1 +} + +build-extras(){ + echo -n "Begin build extras file ... " + cd ${BuildRootDir} + git pull + cd bin + javac printJarVer.java + echo "done" +} + +build-jar(){ + cd ${BERootDir} + git pull + mvn clean package -Dmaven.test.skip=true -P prod +} + +build-dist(){ + cd ${FERootDir} + git pull + pnpm i + pnpm build + + cd ${FEUserRootDir} + git pull + pnpm i + pnpm build +} + +copy-file(){ + ${BuildRootDir}/bin/copy.sh + cp -f ${BuildRootDir}/bin/printJarVer.class ${BuildRootDir}/build/bin/ +} + +# build tar package +build-tar(){ + echo -n "Begin build tar package ... " + cd ${BuildRootDir}/build + tar cvfz ${ReleseDir}/tars/${TarFileName} bin docker systemd 1>/dev/null + echo "done" +} + +# build deb package +build-deb(){ + echo -n "Begin build deb package ... " + echo "done" +} + +case "$1" in + "extras") + build-extras + ;; + "jar") + build-jar + ;; + "dist") + build-dist + ;; + "copy") + copy-file + ;; + "tar") + build-extras + build-jar + build-dist + copy-file + build-tar + ;; + "deb") + build-extras + build-jar + build-dist + copy-file + build-deb + ;; + "all") + build-extras + build-jar + build-dist + copy-file + build-tar + build-deb + ;; + *) + usage + ;; +esac diff --git a/bin/copy.sh b/bin/copy.sh new file mode 100644 index 0000000..f9d3b73 --- /dev/null +++ b/bin/copy.sh @@ -0,0 +1,74 @@ +#!/bin/bash + +GitRootDir=${HOME}/wfc.git +BERootDir=${GitRootDir}/be.wfc +FERootDir=${GitRootDir}/fe.wfc +FEUserRootDir=${GitRootDir}/fe.wfc.user +BuildRootDir=${GitRootDir}/build.wfc + +WFCWorkDir=/opt/wfc +BuildDockerDir=${BuildRootDir}/build/docker + +# 复制项目的文件到对应docker路径,便于一键生成镜像。 +usage() { + echo "Usage: sh copy.sh" + exit 1 +} + +# copy sql +echo -n "Begin copy sql ... " +cp ${BERootDir}/sql/wfc_config_db/wfc_config_db.sql ${BuildDockerDir}/mysql/db +cp ${BERootDir}/sql/wfc_system_db/wfc_system_db.sql ${BuildDockerDir}/mysql/db +cp ${BERootDir}/sql/wfc_user_db/wfc_user_db.sql ${BuildDockerDir}/mysql/db +#ln -sf /tmp ${BuildDockerDir}/mysql/ +echo "done" + +# copy html +echo -n "Begin copy system html ... " +mkdir -p ${BuildDockerDir}/nginx/html/dist/sys +rm -rf ${BuildDockerDir}/nginx/html/dist/sys/* +cp -rf ${FERootDir}/dist/* ${BuildDockerDir}/nginx/html/dist/sys/ +echo "done" + +echo -n "Begin copy user html ... " +mkdir -p ${BuildDockerDir}/nginx/html/dist/u +rm -rf ${BuildDockerDir}/nginx/html/dist/u/* +cp -rf ${FEUserRootDir}/dist/* ${BuildDockerDir}/nginx/html/dist/u/ +echo "done" + +# copy jar +echo -n "Begin copy wfc-gateway ... " +cp ${BERootDir}/wfc-gateway/target/wfc-gateway.jar ${BuildDockerDir}/wfc/gateway/jar +echo "done" + +echo -n "Begin copy wfc-auth ... " +cp ${BERootDir}/wfc-auth/target/wfc-auth.jar ${BuildDockerDir}/wfc/auth/jar +echo "done" + +echo -n "Begin copy wfc-visual ... " +cp ${BERootDir}/wfc-visual/wfc-visual-monitor/target/wfc-visual-monitor.jar ${BuildDockerDir}/wfc/visual/monitor/jar +echo "done" + +echo -n "Begin copy wfc-modules-system ... " +cp ${BERootDir}/wfc-modules/wfc-system/target/wfc-modules-system.jar ${BuildDockerDir}/wfc/modules/system/jar +echo "done" + +echo -n "Begin copy wfc-modules-user ... " +cp ${BERootDir}/wfc-modules/wfc-modules-user/target/wfc-modules-user.jar ${BuildDockerDir}/wfc/modules/user/jar +echo "done" + +echo -n "Begin copy wfc-modules-file ... " +cp ${BERootDir}/wfc-modules/wfc-file/target/wfc-modules-file.jar ${BuildDockerDir}/wfc/modules/file/jar +echo "done" + +echo -n "Begin copy wfc-modules-job ... " +cp ${BERootDir}/wfc-modules/wfc-job/target/wfc-modules-job.jar ${BuildDockerDir}/wfc/modules/job/jar +echo "done" + +echo -n "Begin copy wfc-modules-gen ... " +cp ${BERootDir}/wfc-modules/wfc-gen/target/wfc-modules-gen.jar ${BuildDockerDir}/wfc/modules/gen/jar +echo "done" + +echo -n "Begin copy wfc-modules-payment ... " +cp -rf ${BERootDir}/wfc-modules/wfc-payment/target/wfc-modules-payment.jar ${BuildDockerDir}/wfc/modules/payment/jar +echo "done" diff --git a/bin/printJarVer.java b/bin/printJarVer.java new file mode 100644 index 0000000..5de7bae --- /dev/null +++ b/bin/printJarVer.java @@ -0,0 +1,28 @@ +import java.io.File; +import java.io.IOException; +import java.util.jar.Attributes; +import java.util.jar.JarFile; +import java.util.jar.Manifest; + +public class printJarVer { + public static void main(String[] args) { + if (args.length == 0) { + System.out.println("Please input jars path and file name."); + return; + } + + for (String jarPath : args) { + File jarFile = new File(jarPath); + String jarName = jarFile.getName(); + try (JarFile jar = new JarFile(jarFile)) { + Manifest manifest = jar.getManifest(); + Attributes attributes = manifest.getMainAttributes(); + String version = attributes.getValue("Implementation-Version"); + System.out.println(jarName + " version: " + (version != null ? version : "not found version info")); + } catch (IOException e) { + System.out.println("Can't read " + jarName + " version."); + e.printStackTrace(); + } + } + } +} \ No newline at end of file diff --git a/build/bin/wfccontrol.sh b/build/bin/wfccontrol.sh new file mode 100644 index 0000000..28c55a7 --- /dev/null +++ b/build/bin/wfccontrol.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +WFCWorkDir=/opt/wfc +DockerDir=${WFCWorkDir}/docker +DockerCompose=/usr/bin/docker-compose + +usage() { + echo "Usage: sh wfccontrol.sh [start|stop|status|version]" + exit 1 +} + +start(){ + cd ${DockerDir} + ${DockerCompose} up -d +} + +stop(){ + cd ${DockerDir} + ${DockerCompose} down +} + +Jars=" \ + /opt/wfc/docker/wfc/auth/jar/wfc-auth.jar \ + /opt/wfc/docker/wfc/gateway/jar/wfc-gateway.jar \ + /opt/wfc/docker/wfc/modules/system/jar/wfc-modules-system.jar \ + /opt/wfc/docker/wfc/modules/user/jar/wfc-modules-user.jar \ + /opt/wfc/docker/wfc/modules/gen/jar/wfc-modules-gen.jar \ + /opt/wfc/docker/wfc/modules/file/jar/wfc-modules-file.jar \ + /opt/wfc/docker/wfc/modules/job/jar/wfc-modules-job.jar \ + /opt/wfc/docker/wfc/modules/payment/jar/wfc-modules-payment.jar \ + " + +status(){ + cd ${DockerDir} + ${DockerCompose} ps +} + +# print wfc version +version(){ + java printJarVer ${Jars} +} + +case "$1" in + "start") + start + ;; + "stop") + stop + ;; + "status") + status + ;; + "version") + version + ;; + *) + usage + ;; +esac diff --git a/build/bin/wfcsetup.sh b/build/bin/wfcsetup.sh new file mode 100644 index 0000000..86dce66 --- /dev/null +++ b/build/bin/wfcsetup.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +WFCWorkDir=/opt/wfc +DockerWorkDir=${WFCWorkDir}/docker +SrcServiceDir=${WFCWorkDir}/systemd/system +DstServiceDir=/etc/systemd/system + +# prepare directory +ln -sf /tmp ${DockerWorkDir}/mysql/ +chown -R root:root ${DockerWorkDir}/* +chown -R mysql:mysql ${DockerWorkDir}/mysql +chmod -R 755 ${DockerWorkDir}/mysql/* + +# setup system serivce +cp -rf ${SrcServiceDir}/wfccontrol.service ${DstServiceDir}/ +systemctl daemon-reload +systemctl enable wfccontrol.service + +# build docker compose +cd ${DockerWorkDir} +docker-compose build + diff --git a/build/docker/docker-compose.yml b/build/docker/docker-compose.yml new file mode 100644 index 0000000..005e4dd --- /dev/null +++ b/build/docker/docker-compose.yml @@ -0,0 +1,178 @@ +services: + wfc-nacos: + container_name: wfc-nacos + image: nacos/nacos-server + build: + context: ./nacos + environment: + - MODE=standalone + - NACOS_SERVER_ADDR=192.168.13.128 + volumes: + - ./nacos/logs/:/home/nacos/logs + - ./nacos/conf/application.properties:/home/nacos/conf/application.properties + ports: + - "8848:8848" + - "9848:9848" + - "9849:9849" + depends_on: + - wfc-mysql + restart: always + wfc-mysql: + container_name: wfc-mysql + image: mysql:5.7 + build: + context: ./mysql + ports: + - "3306:3306" + volumes: + - ./mysql/conf:/etc/mysql/conf.d + - ./mysql/logs:/logs + - ./mysql/data:/var/lib/mysql + - ./mysql/tmp:/tmp + command: [ + 'mysqld', + '--innodb-buffer-pool-size=80M', + '--character-set-server=utf8mb4', + '--collation-server=utf8mb4_unicode_ci', + '--default-time-zone=+8:00', + '--lower-case-table-names=1' + ] + environment: + MYSQL_DATABASE: 'wfc_system_db' + MYSQL_ROOT_PASSWORD: 123456 + restart: always + wfc-redis: + container_name: wfc-redis + image: redis + build: + context: ./redis + ports: + - "6379:6379" + volumes: + - ./redis/conf/redis.conf:/home/wfc/redis/redis.conf + - ./redis/data:/data + command: redis-server /home/wfc/redis/redis.conf + restart: always + wfc-gateway: + container_name: wfc-gateway + build: + context: ./wfc/gateway + dockerfile: dockerfile + ports: + - "8080:8080" + depends_on: + - wfc-redis + links: + - wfc-redis + restart: always + wfc-auth: + container_name: wfc-auth + build: + context: ./wfc/auth + dockerfile: dockerfile + ports: + - "9200:9200" + depends_on: + - wfc-redis + links: + - wfc-redis + restart: always + wfc-modules-system: + container_name: wfc-modules-system + build: + context: ./wfc/modules/system + dockerfile: dockerfile + ports: + - "9201:9201" + depends_on: + - wfc-redis + - wfc-mysql + links: + - wfc-redis + - wfc-mysql + restart: always + wfc-modules-user: + container_name: wfc-modules-user + build: + context: ./wfc/modules/user + dockerfile: dockerfile + ports: + - "9204:9204" + depends_on: + - wfc-redis + - wfc-mysql + links: + - wfc-redis + - wfc-mysql + restart: always + wfc-modules-gen: + container_name: wfc-modules-gen + build: + context: ./wfc/modules/gen + dockerfile: dockerfile + ports: + - "9202:9202" + depends_on: + - wfc-mysql + links: + - wfc-mysql + restart: always + wfc-modules-job: + container_name: wfc-modules-job + build: + context: ./wfc/modules/job + dockerfile: dockerfile + ports: + - "9203:9203" + depends_on: + - wfc-mysql + links: + - wfc-mysql + restart: always + wfc-modules-file: + container_name: wfc-modules-file + build: + context: ./wfc/modules/file + dockerfile: dockerfile + ports: + - "9300:9300" + volumes: + - ./wfc/upload:/home/wfc/upload + restart: always + wfc-modules-payment: + container_name: wfc-modules-payment + build: + context: ./wfc/modules/payment + dockerfile: dockerfile + ports: + - "9306:9306" + depends_on: + - wfc-mysql + links: + - wfc-mysql + restart: always + wfc-visual-monitor: + container_name: wfc-visual-monitor + build: + context: ./wfc/visual/monitor + dockerfile: dockerfile + ports: + - "9100:9100" + restart: always + wfc-nginx: + container_name: wfc-nginx + image: nginx + build: + context: ./nginx + ports: + - "80:80" + volumes: + - ./nginx/html/dist:/home/wfc/portal + - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf + - ./nginx/logs:/var/log/nginx + - ./nginx/conf.d:/etc/nginx/conf.d + depends_on: + - wfc-gateway + links: + - wfc-gateway + restart: always diff --git a/build/docker/mysql/db/readme.txt b/build/docker/mysql/db/readme.txt new file mode 100644 index 0000000..0b22f3f --- /dev/null +++ b/build/docker/mysql/db/readme.txt @@ -0,0 +1 @@ +sqlĿ¼µнűdockerԶִС \ No newline at end of file diff --git a/build/docker/mysql/dockerfile b/build/docker/mysql/dockerfile new file mode 100644 index 0000000..8683a7f --- /dev/null +++ b/build/docker/mysql/dockerfile @@ -0,0 +1,7 @@ +# 基础镜像 +FROM mysql:5.7 +# author +MAINTAINER wfc + +# 执行sql脚本 +ADD ./db/*.sql /docker-entrypoint-initdb.d/ diff --git a/build/docker/nacos/conf/application.properties b/build/docker/nacos/conf/application.properties new file mode 100644 index 0000000..3fa5e7f --- /dev/null +++ b/build/docker/nacos/conf/application.properties @@ -0,0 +1,33 @@ +spring.datasource.platform=mysql +db.num=1 +db.url.0=jdbc:mysql://wfc-mysql:3306/wfc_config_db?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC +db.user=root +db.password=123456 + +nacos.naming.empty-service.auto-clean=true +nacos.naming.empty-service.clean.initial-delay-ms=50000 +nacos.naming.empty-service.clean.period-time-ms=30000 +nacos.server.ip=${NACOS_SERVER_ADDR} + +management.endpoints.web.exposure.include=* + +management.metrics.export.elastic.enabled=false +management.metrics.export.influx.enabled=false + +server.tomcat.accesslog.enabled=true +server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i + +server.tomcat.basedir=/home/wfc/nacos/tomcat/logs + +nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/** + +nacos.core.auth.system.type=nacos +nacos.core.auth.enabled=false +nacos.core.auth.default.token.expire.seconds=18000 +nacos.core.auth.default.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789 +nacos.core.auth.caching.enabled=true +nacos.core.auth.enable.userAgentAuthWhite=false +nacos.core.auth.server.identity.key=serverIdentity +nacos.core.auth.server.identity.value=security + +nacos.istio.mcp.server.enabled=false diff --git a/build/docker/nacos/dockerfile b/build/docker/nacos/dockerfile new file mode 100644 index 0000000..e509e94 --- /dev/null +++ b/build/docker/nacos/dockerfile @@ -0,0 +1,7 @@ +# 基础镜像 +FROM nacos/nacos-server +# author +MAINTAINER wfc + +# 复制conf文件到路径 +COPY ./conf/application.properties /home/nacos/conf/application.properties diff --git a/build/docker/nginx/conf/nginx.conf b/build/docker/nginx/conf/nginx.conf new file mode 100644 index 0000000..3d58ce0 --- /dev/null +++ b/build/docker/nginx/conf/nginx.conf @@ -0,0 +1,55 @@ +worker_processes 1; + +events { + worker_connections 1024; +} + +http { + include mime.types; + default_type application/octet-stream; + sendfile on; + keepalive_timeout 65; + + server { + listen 80; + server_name localhost; + + location /sys { + root /home/wfc/portal; + try_files $uri $uri/ /index.html; + index index.html index.htm; + } + + location /sys-api/{ + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header REMOTE-HOST $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_pass http://wfc-gateway:8080/; + } + + location /u { + root /home/wfc/portal; + try_files $uri $uri/ /index.html; + index index.html index.htm; + } + + location /u-api/{ + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header REMOTE-HOST $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_pass http://wfc-gateway:8080/; + } + + # 避免actuator暴露 + if ($request_uri ~ "/actuator") { + return 403; + } + + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root html; + } + } +} \ No newline at end of file diff --git a/build/docker/nginx/dockerfile b/build/docker/nginx/dockerfile new file mode 100644 index 0000000..cafb08c --- /dev/null +++ b/build/docker/nginx/dockerfile @@ -0,0 +1,10 @@ +# 基础镜像 +FROM nginx +# author +MAINTAINER wfc +# 工作目录 +WORKDIR /home/wfc/portal +# 复制conf文件到路径 +COPY ./conf/nginx.conf /etc/nginx/nginx.conf +# 复制html文件到路径 +COPY ./html /home/wfc/portal diff --git a/build/docker/nginx/html/readme.txt b/build/docker/nginx/html/readme.txt new file mode 100644 index 0000000..d25a313 --- /dev/null +++ b/build/docker/nginx/html/readme.txt @@ -0,0 +1,3 @@ +1. 目录./sys存放客户平台(sys portal)前端文件 +2. 目录./u存放用户平台(user portal)前端文件 +用于nginx自动执行 \ No newline at end of file diff --git a/build/docker/redis/conf/redis.conf b/build/docker/redis/conf/redis.conf new file mode 100644 index 0000000..d762d65 --- /dev/null +++ b/build/docker/redis/conf/redis.conf @@ -0,0 +1 @@ +# requirepass 123456 \ No newline at end of file diff --git a/build/docker/redis/dockerfile b/build/docker/redis/dockerfile new file mode 100644 index 0000000..9a227d6 --- /dev/null +++ b/build/docker/redis/dockerfile @@ -0,0 +1,13 @@ +# 基础镜像 +FROM redis +# author +MAINTAINER wfc + +# 挂载目录 +VOLUME /home/wfc/redis +# 创建目录 +RUN mkdir -p /home/wfc/redis +# 指定路径 +WORKDIR /home/wfc/redis +# 复制conf文件到路径 +COPY ./conf/redis.conf /home/wfc/redis/redis.conf diff --git a/build/docker/wfc/auth/dockerfile b/build/docker/wfc/auth/dockerfile new file mode 100644 index 0000000..cfa1d29 --- /dev/null +++ b/build/docker/wfc/auth/dockerfile @@ -0,0 +1,15 @@ +# 基础镜像 +FROM openjdk:8-jre +# author +MAINTAINER wfc + +# 挂载目录 +VOLUME /home/wfc +# 创建目录 +RUN mkdir -p /home/wfc +# 指定路径 +WORKDIR /home/wfc +# 复制jar文件到路径 +COPY ./jar/wfc-auth.jar /home/wfc/wfc-auth.jar +# 启动认证服务 +ENTRYPOINT ["java","-jar","wfc-auth.jar"] \ No newline at end of file diff --git a/build/docker/wfc/auth/jar/readme.txt b/build/docker/wfc/auth/jar/readme.txt new file mode 100644 index 0000000..c35ba27 --- /dev/null +++ b/build/docker/wfc/auth/jar/readme.txt @@ -0,0 +1 @@ +֤ĴõjarļdockerӦá \ No newline at end of file diff --git a/build/docker/wfc/gateway/dockerfile b/build/docker/wfc/gateway/dockerfile new file mode 100644 index 0000000..4f57b4f --- /dev/null +++ b/build/docker/wfc/gateway/dockerfile @@ -0,0 +1,15 @@ +# 基础镜像 +FROM openjdk:8-jre +# author +MAINTAINER wfc + +# 挂载目录 +VOLUME /home/wfc +# 创建目录 +RUN mkdir -p /home/wfc +# 指定路径 +WORKDIR /home/wfc +# 复制jar文件到路径 +COPY ./jar/wfc-gateway.jar /home/wfc/wfc-gateway.jar +# 启动网关服务 +ENTRYPOINT ["java","-jar","wfc-gateway.jar"] \ No newline at end of file diff --git a/build/docker/wfc/gateway/jar/readme.txt b/build/docker/wfc/gateway/jar/readme.txt new file mode 100644 index 0000000..5dfbec7 --- /dev/null +++ b/build/docker/wfc/gateway/jar/readme.txt @@ -0,0 +1 @@ +ģõjarļdockerӦá \ No newline at end of file diff --git a/build/docker/wfc/modules/file/dockerfile b/build/docker/wfc/modules/file/dockerfile new file mode 100644 index 0000000..9b79a0c --- /dev/null +++ b/build/docker/wfc/modules/file/dockerfile @@ -0,0 +1,15 @@ +# 基础镜像 +FROM openjdk:8-jre +# author +MAINTAINER wfc + +# 挂载目录 +VOLUME /home/wfc +# 创建目录 +RUN mkdir -p /home/wfc +# 指定路径 +WORKDIR /home/wfc +# 复制jar文件到路径 +COPY ./jar/wfc-modules-file.jar /home/wfc/wfc-modules-file.jar +# 启动文件服务 +ENTRYPOINT ["java","-jar","wfc-modules-file.jar"] \ No newline at end of file diff --git a/build/docker/wfc/modules/file/jar/readme.txt b/build/docker/wfc/modules/file/jar/readme.txt new file mode 100644 index 0000000..bf2b2a7 --- /dev/null +++ b/build/docker/wfc/modules/file/jar/readme.txt @@ -0,0 +1 @@ +ļõjarļdockerӦá \ No newline at end of file diff --git a/build/docker/wfc/modules/gen/dockerfile b/build/docker/wfc/modules/gen/dockerfile new file mode 100644 index 0000000..27d8b95 --- /dev/null +++ b/build/docker/wfc/modules/gen/dockerfile @@ -0,0 +1,15 @@ +# 基础镜像 +FROM openjdk:8-jre +# author +MAINTAINER wfc + +# 挂载目录 +VOLUME /home/wfc +# 创建目录 +RUN mkdir -p /home/wfc +# 指定路径 +WORKDIR /home/wfc +# 复制jar文件到路径 +COPY ./jar/wfc-modules-gen.jar /home/wfc/wfc-modules-gen.jar +# 启动代码生成服务 +ENTRYPOINT ["java","-jar","wfc-modules-gen.jar"] \ No newline at end of file diff --git a/build/docker/wfc/modules/gen/jar/readme.txt b/build/docker/wfc/modules/gen/jar/readme.txt new file mode 100644 index 0000000..2f25c0a --- /dev/null +++ b/build/docker/wfc/modules/gen/jar/readme.txt @@ -0,0 +1 @@ +ŴɴõjarļdockerӦá \ No newline at end of file diff --git a/build/docker/wfc/modules/job/dockerfile b/build/docker/wfc/modules/job/dockerfile new file mode 100644 index 0000000..4180408 --- /dev/null +++ b/build/docker/wfc/modules/job/dockerfile @@ -0,0 +1,15 @@ +# 基础镜像 +FROM openjdk:8-jre +# author +MAINTAINER wfc + +# 挂载目录 +VOLUME /home/wfc +# 创建目录 +RUN mkdir -p /home/wfc +# 指定路径 +WORKDIR /home/wfc +# 复制jar文件到路径 +COPY ./jar/wfc-modules-job.jar /home/wfc/wfc-modules-job.jar +# 启动定时任务服务 +ENTRYPOINT ["java","-jar","wfc-modules-job.jar"] \ No newline at end of file diff --git a/build/docker/wfc/modules/job/jar/readme.txt b/build/docker/wfc/modules/job/jar/readme.txt new file mode 100644 index 0000000..58aea0b --- /dev/null +++ b/build/docker/wfc/modules/job/jar/readme.txt @@ -0,0 +1 @@ +ŶʱõjarļdockerӦá \ No newline at end of file diff --git a/build/docker/wfc/modules/payment/dockerfile b/build/docker/wfc/modules/payment/dockerfile new file mode 100644 index 0000000..edb0a3e --- /dev/null +++ b/build/docker/wfc/modules/payment/dockerfile @@ -0,0 +1,15 @@ +# 基础镜像 +FROM openjdk:8-jre +# author +LABEL org.wfc.image.authors="wfc@wfc.org" + +# 挂载目录 +VOLUME /home/wfc +# 创建目录 +RUN mkdir -p /home/wfc +# 指定路径 +WORKDIR /home/wfc +# 复制jar文件到路径 +COPY ./jar/wfc-modules-payment.jar /home/wfc/wfc-modules-payment.jar +# 启动系统服务 +ENTRYPOINT ["java","-jar","wfc-modules-payment.jar"] \ No newline at end of file diff --git a/build/docker/wfc/modules/payment/jar/readme.txt b/build/docker/wfc/modules/payment/jar/readme.txt new file mode 100644 index 0000000..cfc2a92 --- /dev/null +++ b/build/docker/wfc/modules/payment/jar/readme.txt @@ -0,0 +1 @@ +ϵͳģõjarļdockerӦá \ No newline at end of file diff --git a/build/docker/wfc/modules/system/dockerfile b/build/docker/wfc/modules/system/dockerfile new file mode 100644 index 0000000..8999e83 --- /dev/null +++ b/build/docker/wfc/modules/system/dockerfile @@ -0,0 +1,15 @@ +# 基础镜像 +FROM openjdk:8-jre +# author +MAINTAINER wfc + +# 挂载目录 +VOLUME /home/wfc +# 创建目录 +RUN mkdir -p /home/wfc +# 指定路径 +WORKDIR /home/wfc +# 复制jar文件到路径 +COPY ./jar/wfc-modules-system.jar /home/wfc/wfc-modules-system.jar +# 启动系统服务 +ENTRYPOINT ["java","-jar","wfc-modules-system.jar"] \ No newline at end of file diff --git a/build/docker/wfc/modules/system/jar/readme.txt b/build/docker/wfc/modules/system/jar/readme.txt new file mode 100644 index 0000000..cfc2a92 --- /dev/null +++ b/build/docker/wfc/modules/system/jar/readme.txt @@ -0,0 +1 @@ +ϵͳģõjarļdockerӦá \ No newline at end of file diff --git a/build/docker/wfc/modules/user/dockerfile b/build/docker/wfc/modules/user/dockerfile new file mode 100644 index 0000000..9beb563 --- /dev/null +++ b/build/docker/wfc/modules/user/dockerfile @@ -0,0 +1,15 @@ +# 基础镜像 +FROM openjdk:8-jre +# author +MAINTAINER wfc + +# 挂载目录 +VOLUME /home/wfc +# 创建目录 +RUN mkdir -p /home/wfc +# 指定路径 +WORKDIR /home/wfc +# 复制jar文件到路径 +COPY ./jar/wfc-modules-user.jar /home/wfc/wfc-modules-user.jar +# 启动系统服务 +ENTRYPOINT ["java","-jar","wfc-modules-user.jar"] \ No newline at end of file diff --git a/build/docker/wfc/modules/user/jar/readme.txt b/build/docker/wfc/modules/user/jar/readme.txt new file mode 100644 index 0000000..cfc2a92 --- /dev/null +++ b/build/docker/wfc/modules/user/jar/readme.txt @@ -0,0 +1 @@ +ϵͳģõjarļdockerӦá \ No newline at end of file diff --git a/build/docker/wfc/visual/monitor/dockerfile b/build/docker/wfc/visual/monitor/dockerfile new file mode 100644 index 0000000..f2473be --- /dev/null +++ b/build/docker/wfc/visual/monitor/dockerfile @@ -0,0 +1,15 @@ +# 基础镜像 +FROM openjdk:8-jre +# author +MAINTAINER wfc + +# 挂载目录 +VOLUME /home/wfc +# 创建目录 +RUN mkdir -p /home/wfc +# 指定路径 +WORKDIR /home/wfc +# 复制jar文件到路径 +COPY ./jar/wfc-visual-monitor.jar /home/wfc/wfc-visual-monitor.jar +# 启动系统服务 +ENTRYPOINT ["java","-jar","wfc-visual-monitor.jar"] \ No newline at end of file diff --git a/build/docker/wfc/visual/monitor/jar/readme.txt b/build/docker/wfc/visual/monitor/jar/readme.txt new file mode 100644 index 0000000..62b2841 --- /dev/null +++ b/build/docker/wfc/visual/monitor/jar/readme.txt @@ -0,0 +1 @@ +żĴõjarļdockerӦá \ No newline at end of file diff --git a/build/systemd/system/wfccontrol.service b/build/systemd/system/wfccontrol.service new file mode 100644 index 0000000..cc7d68d --- /dev/null +++ b/build/systemd/system/wfccontrol.service @@ -0,0 +1,14 @@ +[Unit] +Description=WANFi Controller Service +After=network.target + +[Service] +Type=oneshot +RemainAfterExit=yes +WorkingDirectory=/opt/wfc/docker +ExecStart=/opt/wfc/bin/wfccontrol.sh start +ExecStop=/opt/wfc/bin/wfccontrol.sh stop +TimeoutStartSec=0 + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/debbuild/DEBIAN/control b/debbuild/DEBIAN/control new file mode 100644 index 0000000..e86dc95 --- /dev/null +++ b/debbuild/DEBIAN/control @@ -0,0 +1,8 @@ +Package: WFC +Version: 1.0.2-YYYYMMDD +Section: WFC +Prioritt: optional +Architecture: amd64 +Maintainer: wfc +Depends: +Description: WANFi Controller diff --git a/debbuild/DEBIAN/postinst b/debbuild/DEBIAN/postinst new file mode 100644 index 0000000..669dda6 --- /dev/null +++ b/debbuild/DEBIAN/postinst @@ -0,0 +1,94 @@ +# !/bin/bash + +WFCRootDir=/opt/wfc +SystemdRootDir=/usr/lib/systemd/system +WFCEtcDir=${WFCRootDir}/etc +FERootDir=${WFCRootDir}/nginx/html/dist +wfcBinDir=${WFCRootDir}/bin +UsrLocalBinDir=/usr/local/bin +wfcDaemon=wfcd +NginxEtcDir=/etc/nginx +NginxConfDir=${NginxEtcDir}/conf.d +CFileList="restconf.yaml crontask.yaml tasks.yaml sshsvc.yaml capconf.yaml wfc.conf" +LogoFileList="zh_brand.png zh_icon.png en_brand.png en_icon.png" + +echo "" +echo "* To start/stop/restart/status wfc service, please run:" +echo " sudo systemctl start/stop/restart/status restagent.service" +echo " or run: " +echo " sudo /usr/local/wfc/bin/wfcsvc.sh start/stop/restart/status" +echo "" + +chmod +rx ${WFCRootDir}/bin/* +chmod +rx ${WFCRootDir}/* +chmod +rx ${UsrLocalBinDir}/* +chmod -R 755 ${WFCRootDir}/htdocs/front + +for CFile in ${CFileList}; do + if [ ! -e "${WFCEtcDir}/${CFile}" ]; then + cp -f ${WFCEtcDir}/default/${CFile} ${WFCEtcDir} + else + # mv -f ${WFCEtcDir}/${CFile} ${WFCEtcDir}/${CFile}.bak + # cp -f ${WFCEtcDir}/default/${CFile} ${WFCEtcDir} + if [ -e "${WFCBinDir}/upgconf.sh" ]; then + ${WFCBinDir}/upgconf.sh + fi + fi +done + +if [ ! -e "${FERootDir}/config.js" ]; then + cp ${FERootDir}/default/config.js ${FERootDir}; +fi + +for LogoFile in ${LogoFileList}; do + if [ ! -e "${WFCStaticDir}/logo/${LogoFile}" ]; then + cp ${WFCStaticDir}/wfc.d/logo/${LogoFile} ${WFCStaticDir}/logo; + fi +done + +if ! id -u wfc >/dev/null 2>&1 ; then + useradd -d /opt/wfc -m -s /bin/bash -pwfc123 wfc; + mkdir -p /opt/wfc/ftp +else + echo "user wfc exist"; +fi + +if [ ! -e "${NginxConfDir}/wfc.conf" ]; then + mkdir -p ${NginxConfDir} + cp -f ${WFCEtcDir}/nginx/wfc.conf ${NginxConfDir}; +fi + +systemctl daemon-reload + +# disable auto upgrade +systemctl disable --now unattended-upgrades + +systemctl enable restagent.service +systemctl enable crontask.service +systemctl enable sshsvc.service +systemctl enable captrace.service + +systemctl daemon-reload + +# read environment parameter and to do +if [ "$M_PARAM" = "install" -o "$M_PARAM" = "upgrade" ]; then + echo "M parameter: $M_PARAM" + if [ -n "$C_PARAM" ]; then + echo "C parameter: $C_PARAM" + ${WFCRootDir}/bin/setwfc.sh -m $M_PARAM -c $C_PARAM + else + ${WFCRootDir}/bin/setwfc.sh -m $M_PARAM + fi + # exit while failed to run setwfc.sh + if [ $? -ne 0 ]; then + echo "setwfc.sh execution failed. Exiting." + exit 1 + fi +fi + +echo -n "Starting WFC service ... " +systemctl start crontask.service +systemctl start sshsvc.service +systemctl start captrace.service +systemctl start restagent.service +echo "done" diff --git a/debbuild/DEBIAN/postrm b/debbuild/DEBIAN/postrm new file mode 100644 index 0000000..e431e89 --- /dev/null +++ b/debbuild/DEBIAN/postrm @@ -0,0 +1,23 @@ +# !/bin/bash + +#rm -rf /usr/local/omc +rm -rf /etc/nginx/conf.d/omc.conf +rm -f /usr/local/bin/omcd + +systemctl daemon-reload + +if systemctl list-units --type=service --all | grep -q 'restagent.service'; then + echo -n "Stopping OMC service ... " + systemctl stop restagent.service + systemctl stop crontask.service + systemctl stop sshsvc.service + systemctl stop captrace.service + echo "done" +fi + +systemctl disable restagent.service +systemctl disable crontask.service +systemctl disable sshsvc.service +systemctl disable captrace.service + +systemctl daemon-reload diff --git a/debbuild/DEBIAN/preinst b/debbuild/DEBIAN/preinst new file mode 100644 index 0000000..c2a92df --- /dev/null +++ b/debbuild/DEBIAN/preinst @@ -0,0 +1,16 @@ +# !/bin/bash + +systemctl daemon-reload +if systemctl list-units --type=service --all | grep -q 'restagent.service'; then + echo -n "Stopping WFC service ... " + systemctl stop restagent.service + echo "done" +fi + +FERootDir=/usr/local/omc/htdocs/front + +# apt-get install zip +# clear front-end old hash js files +rm -rf ${FERootDir}/assets +rm -rf ${FERootDir}/js +rm -rf ${FERootDir}/index.*.js diff --git a/release/debs/readme.txt b/release/debs/readme.txt new file mode 100644 index 0000000..1a5fe2b --- /dev/null +++ b/release/debs/readme.txt @@ -0,0 +1 @@ +deb package is here \ No newline at end of file diff --git a/release/tars/readme.txt b/release/tars/readme.txt new file mode 100644 index 0000000..a719416 --- /dev/null +++ b/release/tars/readme.txt @@ -0,0 +1 @@ +tar.gz package is here \ No newline at end of file