# 1.6 参与JUNO开发

# 目录结构

── CONTRIBUTING.md
├── LICENSE
├── Makefile
├── README.md
├── api 
│   └── apiv1 # 对外api提供
├── assets # 前端资源
├── cmd
│   ├── juno-admin
│   └── juno-proxy
├── config # config demo
│   ├── casbin_test
│   ├── install.toml
│   ├── juno-grafana.ini
│   ├── juno-prometheus.yml
│   ├── model.conf
│   ├── multiple-region-admin.toml
│   ├── multiple-region-proxy.toml
│   ├── resource.yaml
│   └── single-region-admin.toml
├── configs # 本地开发配置,不要推送到仓库
│   ├── config-multiple-region-admin.toml
│   └── config-single-region-admin.toml
├── data # mock 数据
│   ├── docker
│   ├── grafana
│   └── mockdata
├── docs
│   ├── LICENSEHEADER.txt
│   ├── logo.png
│   └── wiki-cn
├── go.mod
├── go.sum
├── internal # 内部逻辑
│   ├── app
│   └── pkg
├── logs # 本地开发日志
│   ├── biz.json
│   └── system.json
├── pkg # 外部可引用代码
│   ├── auth
│   ├── cfg
│   ├── constx
│   ├── errorconst
│   ├── model
│   ├── pb
│   └── util
└── script
    └── build
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

# internal

├── app
│   ├── adminengine # router
│   │   ├── engine_admin.go
│   │   ├── engine_install.go
│   │   ├── form_validator.go
│   │   ├── router_admin.go
│   │   └── router_api.go
│   ├── core 
│   │   └── core.go
│   ├── middleware
│   │   ├── casbin.go
│   │   ├── gateway.go
│   │   ├── login.go
│   │   ├── openauth.go
│   │   └── openauth_test.go
│   └── proxyengine
│       └── engine.go
└── pkg
    ├── datasource
    │   └── datasource.go
    ├── install
    │   ├── base.go
    │   ├── mock_app.go
    │   └── mock_setting.go
    ├── invoker # 数据源初始化
    │   └── invoker.go
    ├── packages
    │   ├── contrib
    │   └── roundtrip
    └── service
        ├── agent
        ├── analysis
        ├── app_topology.go
        ├── appevent
        ├── applog
        ├── assist
        ├── auth
        ├── casbin
        ├── clientproxy
        ├── confgo
        ├── confgov2
        ├── configresource
        ├── gateway
        ├── grafana
        ├── grpcgovern
        ├── init.go
        ├── notify
        ├── openauth
        ├── parse
        ├── permission
        ├── pprof
        ├── proxy
        ├── report
        ├── resource
        ├── service_suite_test.go
        ├── supervisor
        ├── system
        ├── tool.go
        └── user
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59

# 开发方式

# 数据库初始化与调整

参考Makefile文件,以下是相关的数据库操作,初始化、数据清理、数据mock

相关代码逻辑在 internal/pkg/install

database.install:
    @go run cmd/juno-admin/main.go --config=config/install.toml --install=true
database.clear:
    @go run cmd/juno-admin/main.go --config=config/install.toml --clear=true
database.mock:
    @go run cmd/juno-admin/main.go --config=config/install.toml --mock=true
database.debug: database.clear database.install database.mock
1
2
3
4
5
6
7

# 后端启动

有两种模式:

  • single-region-admin

只调整juno功能、不涉及跨机房通信开发使用make run.single-region-admin即可

run.single-region-admin:
    @go run cmd/juno-admin/main.go --config=config/single-region-admin.toml
1
2
  • multiple-region-admin+multiple-region-proxy

需要跨机房数据调用调试使用make run.multiple-region-adminmake run.multiple-region-proxy

run.multiple-region-admin:
    @go run cmd/juno-admin/main.go --config=config/multiple-region-admin.toml
run.multiple-region-proxy:
    @go run cmd/juno-proxy/main.go --config=config/multiple-region-proxy.toml
1
2
3
4

# 开发配置不要推送到远端仓库

本地开发配置放在configs文件夹中,使用.gitignore进行文件忽略,切记不要推送、不要推送、不要推送

推送前代码做好审核工作

# 前端启动

进入assest文件夹执行npm run start

修改 config/proxy.ts 里面的后端代理端口配置,即可打通本地调试

生产环境进行npm run build进行dist构建推送即可

├── README.md
└── config
    ├── config.ts
    ├── defaultSettings.ts
    └── proxy.ts
├── dist
├── favicon.png
├── jest.config.js
├── jsconfig.json
├── mock
├── node_modules
├── package.json
├── public
├── src
├── tests
└── tsconfig.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

访问 localhost:8000 进入本地调试