Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dev/michaelhu #184

Merged
merged 3 commits into from
Jul 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 16 additions & 9 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,28 @@
**/.DS_Store
.var
.run
.build

resource/static
temp

etc/powerx-*
config.yml
logs/
wechat.log
#/powerx.go
/deploy/dependencies/data/
/deploy/powerx
/deploy/powerxctl
/deploy/powerx.exe
/deploy/powerxctl.exe


.build
*.log
logs/


deploy/dependencies/data/
deploy/powerx
deploy/powerxctl
deploy/powerx.exe
deploy/powerxctl.exe
deploy/data
deploy/logs/
deploy/etc/powerx.yaml
deploy/dashboard/dist/

/powerx
/powerxctl
2 changes: 0 additions & 2 deletions api/admin.crm.api
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ import "admin/crm/customerdomain/customer.api"
import "admin/crm/market/media.api"
import "admin/crm/market/store.api"
import "admin/crm/business/opportunity.api"
//import "admin/crm/product/productcategory.api"
//import "admin/crm/product/pricebookentry.api"
import "admin/crm/product/pricebook.api"
import "admin/crm/product/product.api"
import "admin/crm/product/artisan.api"
Expand Down
17 changes: 17 additions & 0 deletions deploy/dashboard/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# 本地打包PowerXDashboard的Docker镜像


```shell
# 按照你的环境和需求,可替换{xxx}里的值

# 进入你的项目文件根目录下
> cd {your_project_path}

# 编译项目中deploy/docker/Dockerfile
> docker build -t {powerx-dashboard}:{latest} -f ./deploy/docker/Dockerfile .

# 编译完后的镜像,直接用docker可以跑起来
> docker run -p {3000}:{80} -it {powerx-dashboard}:{latest}

```

33 changes: 33 additions & 0 deletions deploy/dashboard/docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# 第一阶段
FROM node:19 AS builder


# 拷贝项目文件到容器中
WORKDIR /app
# COPY ./dashboard/dist /app/dist
COPY ./dashboard /app/

# 安装依赖
# RUN #yarn install

# 执行yarn build
# RUN yarn build:notsc

# ------------------------------------------------

# 第二阶段
FROM nginx:latest

# 拷贝构建产物到nginx容器中
COPY --from=builder /app/dist /usr/share/nginx/html
COPY --from=builder /app/nginx.conf /etc/nginx/conf.d/default.conf

RUN chmod -R 777 /var/log/
# RUN touch /var/log/nginx/access.log
# RUN touch /var/log/nginx/error.log

# 暴露80端口
EXPOSE 80

# 启动nginx
CMD ["nginx", "-g", "daemon off;"]
69 changes: 69 additions & 0 deletions deploy/dashboard/nginx-ssl.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
server {
listen 80;
server_name api.artisan-cloud.com dashboard.artisan-cloud.com;

# 重定向 HTTP 请求到 HTTPS
return 301 https://$server_name$request_uri;
}

server {
listen 443 ssl;
server_name api.artisan-cloud.com;


ssl_certificate /etc/ssl/api.artisancloud.com.pem;
ssl_certificate_key /etc/ssl/api.artisancloud.com.key;

# 配置 SSL 协议和密码套件,可根据需要自定义
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384;


# 访问日志
access_log /var/log/nginx/access.log;

# 错误日志
error_log /var/log/nginx/error.log error;

# 拦截 /api 请求并代理到 server:8888
location /api {
proxy_pass http://server:8888;
}

# 其他请求解析为静态资源
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}

server {
listen 443 ssl;
server_name dashboard.artisan-cloud.com;


ssl_certificate /etc/ssl/dashboard.artisancloud.com.pem;
ssl_certificate_key /etc/ssl/dashboard.artisancloud.com.key;


# 配置 SSL 协议和密码套件,可根据需要自定义
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384;


# 访问日志
access_log /var/log/nginx/access.log;

# 错误日志
error_log /var/log/nginx/error.log error;

# 其他请求解析为静态资源
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}
22 changes: 22 additions & 0 deletions deploy/dashboard/nginx.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
server {
listen 80;
server_name localhost;

# 拦截 /api 请求并代理到 server:8888
location /api {
proxy_pass http://server:8888;
}

# 访问日志
access_log /var/log/nginx/access.log;

# 错误日志
error_log /var/log/nginx/error.log error;

# 其他请求解析为静态资源
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}
54 changes: 29 additions & 25 deletions deploy/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,61 +3,62 @@ version: '3.8'
services:
postgres:
image: postgres:latest
container_name: postgres-PowerX
container_name: postgres-powerx
environment:
POSTGRES_USER: PowerX
POSTGRES_PASSWORD: PowerXpw
POSTGRES_DB: PowerX
POSTGRES_USER: "powerx"
POSTGRES_PASSWORD: "powerxpw"
POSTGRES_DB: powerx
volumes:
- ./data/postgres:/var/lib/postgresql/data
ports:
- "5432:5432"
networks:
- PowerX-network
- powerx-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U PowerX"]
interval: 10s
test: ["CMD-SHELL", "pg_isready -U powerx"]
interval: 5s
retries: 5

redis:
image: redis:latest
container_name: redis-PowerX
container_name: redis-powerx
ports:
- "6379:6379"
networks:
- PowerX-network
- powerx-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
interval: 5s
timeout: 10s
retries: 5

minio:
image: minio/minio:latest
container_name: minio-PowerX
command: server --console-address ":9090" /mnt/data
container_name: minio-powerx
command: server --address :9001 --console-address ":9090" /mnt/data
environment:
MINIO_CONFIG_ENV_FILE: /etc/config.env
volumes:
- ./data/minio:/mnt/data
- ./etc/minio.env:/etc/config.env
ports:
- "9000:9000"
- "9001:9001"
- "9090:9090"
networks:
- PowerX-network
- powerx-network

server:
build:
context: ./PowerX
dockerfile: deploy/docker/Dockerfile
container_name: PowerX-server
context: ./
dockerfile: docker/Dockerfile
container_name: server-powerx
volumes:
- ./etc/powerx.yaml:/app/etc/powerx.yaml
- ./logs/powerx/:/app/logs/
ports:
- "8888:8888"
networks:
- PowerX-network
- powerx-network
depends_on:
redis:
condition: service_healthy
Expand All @@ -72,13 +73,16 @@ services:

web:
build:
context: ./PowerXDashboard
dockerfile: deploy/docker/Dockerfile
container_name: PowerX-web
context: ./
dockerfile: dashboard/docker/Dockerfile
container_name: web-powerx
volumes:
- ./etc/powerx.yaml:/app/etc/powerx.yaml
- ./logs/nginx/:/var/log/nginx
ports:
- "3000:80"
networks:
- PowerX-network
- powerx-network
depends_on:
postgres:
condition: service_healthy
Expand All @@ -87,11 +91,11 @@ services:

network-tools:
image: nicolaka/netshoot:latest
container_name: network-tools
container_name: network-tools-powerx
command: sleep infinity
networks:
- PowerX-network
- powerx-network

networks:
PowerX-network:
powerx-network:
driver: bridge
5 changes: 4 additions & 1 deletion deploy/docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ ENV GOPROXY=https://goproxy.cn,direct
# 拷贝当前目录到docker内
WORKDIR /app
RUN ls -l
COPY ./deploy /app/
COPY ./ /app/
COPY ./etc/ /app/etc/


Expand All @@ -24,6 +24,9 @@ COPY --from=builder /app/Makefile /app/Makefile
COPY --from=builder /app/powerx /app/powerx
COPY --from=builder /app/etc/ /app/etc/

RUN chmod +x /app/powerxctl
RUN chmod +x /app/Makefile
RUN chmod +x /app/powerx

WORKDIR /app

Expand Down
6 changes: 6 additions & 0 deletions deploy/etc/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
## 配置说明
#### [rbac_model.conf](rbac_model.conf)
基于域的RBAC模型, 建议不要变更

#### [rbac_policy.csv](rbac_policy.csv)
对应RBAC模型的策略文件, 如果不需要SAAS化或者动态管理, 建议直接使用该文件配置
Loading