WebUI implementation for GNS3
Go to file
2024-12-02 11:27:15 +10:00
.circleci New attempt to fix CircleCI build 2021-02-27 16:24:47 +10:30
.github/workflows Remove cache and scan master branch in codeql.yml 2023-02-01 11:55:08 +08:00
.vscode Debugging configruation and merge with latest angular 2018-11-27 11:26:23 +01:00
e2e Removing unnecessary imports 2021-04-12 13:46:28 +02:00
scripts Fix CVE-2024-6345 and CVE-2024-39689. Fixes #1521 #1520 2024-07-22 19:13:46 +02:00
src Add .iol extension filter. Ref https://github.com/GNS3/gns3-gui/issues/3664 2024-11-25 11:02:49 +10:00
.appveyor.yml Fix typo in .appveyor.yml 2021-04-08 00:38:37 +09:30
.editorconfig Debugging configruation and merge with latest angular 2018-11-27 11:26:23 +01:00
.gitignore Update .gitignore 2021-11-08 13:41:11 +01:00
.prettierrc Implement prettier in package.json, Fixes: #220 2018-12-10 13:44:49 +01:00
.sentryclirc Added .sentryclirc 2019-03-27 10:49:33 +01:00
.snyk fix: package.json, yarn.lock & .snyk to reduce vulnerabilities 2020-07-10 04:13:48 +00:00
.travis.yml Codecov disabled 2021-04-16 12:10:33 +02:00
.whitesource Scan master-3.0 branch with Mend 2022-12-27 13:21:53 +08:00
.yarnclean Remove .md from yarnclean 2018-11-06 10:31:09 +01:00
angular.json Add ipaddr.js to "allowedCommonJsDependencies" 2023-12-06 22:34:22 +10:00
console-executor.js Basic PuTTY support, Ref. #368 2019-04-12 12:16:46 +02:00
debug.log Stabilize unit tests #1010 2020-11-09 01:27:37 +01:00
Dockerfile Update Dockerfile 2020-10-11 15:30:47 +08:00
electron-builder.yml Merge with master 2019-04-10 13:23:54 +02:00
installed-software.js Install SolarPuTTY when available 2019-02-04 11:32:01 +01:00
karma.conf.js Update karma.conf.js 2022-02-08 23:47:22 +01:00
LICENSE Initial commit 2017-09-25 11:27:22 +02:00
local-server.js Dynamips delivery with WebUI, Fixes: #326 2019-03-05 12:40:19 +01:00
main.js Support of stderr CRITICAL issues forwarded to app 2019-02-20 11:32:54 +01:00
package.json Development on 2.2.53.dev1 2024-12-02 11:27:15 +10:00
protractor.conf.js Draft of WebUI 2017-09-25 13:07:52 +02:00
README.md Update README.md 2021-04-19 12:17:50 +02:00
renderer.js Adding templates of IOS routers 2019-02-05 01:26:35 -08:00
SECURITY.md Create SECURITY.md 2022-12-20 21:34:44 +08:00
sentry.js Fix white screen on electron app, Ref: #244 2019-01-04 12:57:58 +01:00
set-variables-in-env.js Update prod env only when variables are defined 2019-01-29 09:54:26 +01:00
tsconfig.base.json Updating angular to 12, removing indexed db 2021-05-27 22:17:22 +02:00
tsconfig.json Update to Angular 10 2020-06-30 10:42:31 +02:00
tslint.json Update to Angular 10 2020-06-30 10:42:31 +02:00
yarn.lock Bump body-parser from 1.20.1 to 1.20.3 2024-09-21 09:40:03 +00:00

gns3-web-ui

Build Dependency Packages versions Packages

Demo

Please use GNS3 WebUI bundled in gns3server and gns3.

Development

Branches policy

On branch master you can find the latest codebase including under development features. If you are looking for stable version with features promoted to be included in the current/next release please switch to stable branch.

Installation

We're using yarn for packages installation:

yarn install

JavaScript heap out of memory

Increase the memory allocated to Node if you get JavaScript heap out of memory errors.

export NODE_OPTIONS=--max-old-space-size=8192

Run GNS3 server

Visit gns3-server for guide how to run GNS3 server.

Run WebUI

yarn ng serve

Application is accessible on http://127.0.0.1:4200/. The app will automatically reload if you change any of the source files.

Docker container

For development you can also run the GNS3 Web UI in a container

bash scripts/docker_dev_webui.sh

How to upgrade package.json?

yarn upgrade --latest

gns3server bundled in WebUI - electron based

In special cases it's possible to build gns3server for GNS3 WebUI. This version is included in electronjs dist application.

python3 scripts/build.py build -b dist

Code scaffolding

Run yarn ng generate component component-name to generate a new component. You can also use yarn ng generate directive|pipe|service|class|module.

Build

Run yarn ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the -prod flag for a production build.

Running unit tests

Run yarn ng test to execute the unit tests via Karma.

Releasing

Release naming convention

Releases are named by the year and quarter when release is happening, e.g. January 2020 release is named 2020.1.X.

Bumping releases

We're using version-bump-prompt for increasing version.

Install version-bump-prompt via:

    npm install -g version-bump-prompt

If you would like to bump prepatch just type:

    bump --prepatch --tag --push

Distribute release

We have got configured CircleCI, TravisCI and AppVeyor for distributing application for particular platform. In order to release you need to tag&push your changes from master.

First of all please remove dev from version in package.json (for instance 2019.2.0-alpha.4dev to 2019.2.0-alpha.4). Commit & push changes with message Release 2019.2.0-alpha.4 . Next step is to tag repository and push to origin:

    git tag v2019.2.0-alpha.4
    git push origin v2019.2.0-alpha.4

When artifacts are made you can see draft release here: gns3-web-ui releases which is waiting to be published. After release please change current version in package.json to 2019.2.0-alpha.5dev'. Otherwise artifacts will be overwritten during the next commit. Don't forget to commit & push changes.

Updating gns3server

Checkout the latest master of gns3server. Run command ./scripts/update-bundled-web-ui.sh --tag=v2019.2.0-alpha.5. Commit & push changes with message Release 2019.2.0-alpha.4.

Staging release

In case you would like to create a new staging release. Please create draft release on github, like 0.0.1-dev1. After successful build you can find artifacts there.

Updating signing certificate for Windows

Please follow this guide: code-signing, use certmgr.msc exporting tool to limit the size of certificate.

Further help

If you want to contribute to GNS3 Web UI feel free to reach us at developers@gns3.net.