|
1 | | -# CloudStack Primate [](https://travis-ci.org/apache/cloudstack-primate) |
| 1 | +Codebase has moved and merged with [apache/cloudstack](https://github.com/apache/cloudstack/tree/master/ui), please see: |
2 | 2 |
|
3 | | -A modern role-based progressive CloudStack UI based on VueJS and Ant Design. |
4 | | - |
5 | | - |
6 | | - |
7 | | -## Getting Started |
8 | | - |
9 | | -Install node: (Debian/Ubuntu) |
10 | | - |
11 | | - curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - |
12 | | - sudo apt-get install -y nodejs |
13 | | - # Or use distro provided: sudo apt-get install npm nodejs |
14 | | - |
15 | | -Install node: (CentOS/Fedora/RHEL) |
16 | | - |
17 | | - curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash - |
18 | | - sudo yum install nodejs |
19 | | - |
20 | | -Optionally, you may also install system-wide dev tools: |
21 | | - |
22 | | - sudo npm install -g @vue/cli npm-check-updates |
23 | | - |
24 | | -## Development |
25 | | - |
26 | | -Clone the repository: |
27 | | - |
28 | | - git clone https://github.com/apache/cloudstack-primate.git |
29 | | - cd cloudstack-primate |
30 | | - npm install |
31 | | - |
32 | | -Override the default `CS_URL` to a running CloudStack management server: |
33 | | - |
34 | | - cp .env.local.example .env.local |
35 | | - Change the `CS_URL` in the `.env.local` file |
36 | | - |
37 | | -To configure https, you may use `.env.local.https.example`. |
38 | | - |
39 | | -Build and run: |
40 | | - |
41 | | - npm run serve |
42 | | - # Or run: npm start |
43 | | - |
44 | | -Upgrade dependencies to the latest versions: |
45 | | - |
46 | | - ncu -u |
47 | | - |
48 | | -Run Tests: |
49 | | - |
50 | | - npm run test |
51 | | - npm run lint |
52 | | - npm run test:unit |
53 | | - |
54 | | -Fix issues and vulnerabilities: |
55 | | - |
56 | | - npm audit |
57 | | - |
58 | | -A basic development guide and explaination of the basic components can be found |
59 | | - [here](docs/development.md) |
60 | | - |
61 | | -## Production |
62 | | - |
63 | | -Fetch dependencies and build: |
64 | | - |
65 | | - npm install |
66 | | - npm run build |
67 | | - |
68 | | -This creates a static webpack application in `dist/`, which can then be served |
69 | | -from any web server or CloudStack management server (jetty). |
70 | | - |
71 | | -To use CloudStack management server (jetty), you may copy the built Primate build |
72 | | -to a new/existing webapp directory on the management server host. For example: |
73 | | - |
74 | | - npm install |
75 | | - npm run build |
76 | | - cd dist |
77 | | - mkdir -p /usr/share/cloudstack-management/webapp/primate |
78 | | - cp -vr . /usr/share/cloudstack-management/webapp/primate/ |
79 | | - # Use Primate at {management-server}:8080/client/primate in browser |
80 | | - |
81 | | -If the webapp directory is changed, please change the `webapp.dir` in the |
82 | | -`/etc/cloudstack/management/server.properties` and restart the management server host. |
83 | | - |
84 | | -To use a separate webserver, note that the API server is accessed through the path |
85 | | -`/client`, which needs be forwarded to an actual CloudStack instance. |
86 | | - |
87 | | -For example, a simple way to serve Primate with nginx can be implemented with the |
88 | | -following nginx configuration (to be put into /etc/nginx/conf.d/default.conf or similar): |
89 | | - |
90 | | -```nginx |
91 | | -server { |
92 | | - listen 80; |
93 | | - server_name localhost; |
94 | | - location / { |
95 | | - # /src/primate/dist contains the built Primate webpack |
96 | | - root /src/primate/dist; |
97 | | - index index.html; |
98 | | - } |
99 | | - location /client/ { |
100 | | - # http://127.0.0.1:800 should be replaced your CloudStack management |
101 | | - # server's actual URI |
102 | | - proxy_pass http://127.0.0.1:8000; |
103 | | - } |
104 | | -} |
105 | | -``` |
106 | | - |
107 | | -### Docker |
108 | | - |
109 | | -A production-ready Docker container can also be built with the provided |
110 | | -Dockerfile and build script. Official builds are available here: |
111 | | -https://hub.docker.com/r/apache/cloudstack-primate |
112 | | - |
113 | | -Make sure Docker is installed, then run: |
114 | | - |
115 | | - bash tools/docker.sh |
116 | | - |
117 | | -Change the example configuration in `nginx/default.conf` according to your needs. |
118 | | - |
119 | | -Run Primate: |
120 | | - |
121 | | - docker run -ti --rm -p 8080:80 -v $(pwd)/nginx:/etc/nginx/conf.d:ro cloudstack-primate:latest |
122 | | - |
123 | | -### Packaging |
124 | | - |
125 | | -The following is tested to work on any Ubuntu 18.04/20.04 base installation or |
126 | | -docker container: |
127 | | - |
128 | | - # Install nodejs (lts) |
129 | | - curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - |
130 | | - sudo apt-get install -y nodejs debhelper rpm |
131 | | - # Install build tools |
132 | | - npm install -g @vue/cli webpack eslint |
133 | | - # Clone this repository and run package.sh |
134 | | - cd <cloned-repository>/packaging |
135 | | - bash -x package.sh |
136 | | - |
137 | | -## Documentation |
138 | | - |
139 | | -- VueJS Guide: https://vuejs.org/v2/guide/ |
140 | | -- Vue Ant Design: https://www.antdv.com/docs/vue/introduce/ |
141 | | -- Primate Developer [Docs](docs) |
142 | | -- JavaScript ES6 Reference: https://www.tutorialspoint.com/es6/ |
143 | | -- Introduction to ES6: https://scrimba.com/g/gintrotoes6 |
144 | | - |
145 | | -## Attributions |
146 | | - |
147 | | -Primate uses the following: |
148 | | - |
149 | | -- [VueJS](https://vuejs.org/) |
150 | | -- [Ant Design Spec](https://ant.design/docs/spec/introduce) |
151 | | -- [Ant Design Vue](https://vue.ant.design/) |
152 | | -- [Ant Design Pro Vue](https://github.com/sendya/ant-design-pro-vue) |
153 | | -- [Fontawesome](https://github.com/FortAwesome/vue-fontawesome) |
154 | | -- [ViserJS](https://viserjs.github.io/docs.html#/viser/guide/installation) |
155 | | -- [Icons](https://www.iconfinder.com/iconsets/cat-force) by [Iconka](https://iconka.com/en/downloads/cat-power/) |
156 | | - |
157 | | -## History |
158 | | - |
159 | | -The project was created by [Rohit Yadav](https://rohityadav.cloud) over several |
160 | | -weekends during late 2018 and early 2019. During ApacheCon CCCUS19, on 9th |
161 | | -September 2019, Primate was introduced and demoed as part of the talk [Modern UI |
162 | | -for CloudStack](https://rohityadav.cloud/files/talks/cccna19-primate.pdf) |
163 | | -([video](https://www.youtube.com/watch?v=F2KwZhechzs)). |
164 | | -[Primate](https://markmail.org/message/vxnskmwhfaagnm4r) was accepted by the |
165 | | -Apache CloudStack project on 21 Oct 2019. |
166 | | - |
167 | | -## License |
168 | | - |
169 | | -Licensed to the Apache Software Foundation (ASF) under one |
170 | | -or more contributor license agreements. See the NOTICE file |
171 | | -distributed with this work for additional information |
172 | | -regarding copyright ownership. The ASF licenses this file |
173 | | -to you under the Apache License, Version 2.0 (the |
174 | | -"License"); you may not use this file except in compliance |
175 | | -with the License. You may obtain a copy of the License at |
176 | | - |
177 | | - http://www.apache.org/licenses/LICENSE-2.0 |
178 | | - |
179 | | -Unless required by applicable law or agreed to in writing, |
180 | | -software distributed under the License is distributed on an |
181 | | -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
182 | | -KIND, either express or implied. See the License for the |
183 | | -specific language governing permissions and limitations |
184 | | -under the License. |
| 3 | +https://github.com/apache/cloudstack/pull/4598 |
| 4 | +https://markmail.org/message/bgnn4xkjnlzseeuv |
0 commit comments