{"id":19439682,"url":"https://github.com/gns3/gns3-server","last_synced_at":"2026-04-02T00:28:02.605Z","repository":{"id":10833109,"uuid":"13111330","full_name":"GNS3/gns3-server","owner":"GNS3","description":"GNS3 server","archived":false,"fork":false,"pushed_at":"2025-05-13T18:52:50.000Z","size":82296,"stargazers_count":890,"open_issues_count":115,"forks_count":276,"subscribers_count":73,"default_branch":"master","last_synced_at":"2025-05-13T19:53:25.909Z","etag":null,"topics":["network","network-emulator","networking"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GNS3.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2013-09-26T02:45:09.000Z","updated_at":"2025-05-13T01:22:50.000Z","dependencies_parsed_at":"2023-02-17T01:01:34.749Z","dependency_job_id":"7f30009c-cf3c-47ec-a7a3-4c50560bfeeb","html_url":"https://github.com/GNS3/gns3-server","commit_stats":{"total_commits":4258,"total_committers":72,"mean_commits":"59.138888888888886","dds":0.5674025364020667,"last_synced_commit":"040608399127197551f8582c01c99252af05a53d"},"previous_names":[],"tags_count":211,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GNS3%2Fgns3-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GNS3%2Fgns3-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GNS3%2Fgns3-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GNS3%2Fgns3-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GNS3","download_url":"https://codeload.github.com/GNS3/gns3-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254041716,"owners_count":22004757,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["network","network-emulator","networking"],"created_at":"2024-11-10T15:26:25.497Z","updated_at":"2026-04-02T00:28:02.596Z","avatar_url":"https://github.com/GNS3.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"GNS3-server\n===========\n\n[![image](https://github.com/GNS3/gns3-server/workflows/testing/badge.svg)](https://github.com/GNS3/gns3-server/actions?query=workflow%3Atesting)\n\n[![image](https://img.shields.io/pypi/v/gns3-server.svg)](https://pypi.python.org/pypi/gns3-server)\n\n[![image](https://snyk.io/test/github/GNS3/gns3-server/badge.svg)](https://snyk.io/test/github/GNS3/gns3-server)\n\nThis is the GNS3 server repository.\n\nThe GNS3 server manages emulators such as Dynamips, VirtualBox or\nQemu/KVM. Clients like the [GNS3 GUI](https://github.com/GNS3/gns3-gui/)\nand the [GNS3 Web UI](https://github.com/GNS3/gns3-web-ui) control the\nserver using an HTTP REST API.\n\nSoftware dependencies\n---------------------\n\nIn addition of Python dependencies listed in a section below, other\nsoftware may be required, recommended or optional.\n\n-   [uBridge](https://github.com/GNS3/ubridge/) is required, it\n    interconnects the nodes.\n-   [Dynamips](https://github.com/GNS3/dynamips/) is required for\n    running IOS routers (using real IOS images) as well as the internal\n    switches and hubs.\n-   [VPCS](https://github.com/GNS3/vpcs/) is recommended, it is a\n    builtin node simulating a very simple computer to perform\n    connectitivy tests using ping, traceroute etc.\n-   Qemu is strongly recommended on Linux, as most node types are based\n    on Qemu, for example Cisco IOSv and Arista vEOS.\n-   libvirt is recommended (Linux only), as it\\'s needed for the NAT\n    cloud.\n-   Docker is optional (Linux only), some nodes are based on Docker.\n-   mtools is recommended to support data transfer to/from QEMU VMs\n    using virtual disks.\n-   i386-libraries of libc and libcrypto are optional (Linux only), they\n    are only needed to run IOU based nodes.\n\n### Docker support\n\nDocker support needs the script program (bsdutils or\nutil-linux package), when running a docker VM and a static\nbusybox during installation (python3 setup.py install / pip3 install /\npackage creation).\n\nBranches\n--------\n\n### master\n\nmaster is the next stable release, you can test it in your day to day\nactivities. Bug fixes or small improvements pull requests go here.\n\n### 2.x (2.3 for example)\n\nNext major release\n\n*Never* use this branch for production. Pull requests for major new\nfeatures go here.\n\nLinux\n-----\n\nGNS3 is perhaps packaged for your distribution:\n\n-   Gentoo: \u003chttps://packages.gentoo.org/package/net-misc/gns3-server\u003e\n-   Alpine:\n    \u003chttps://pkgs.alpinelinux.org/package/v3.10/community/x86_64/gns3-server\u003e\n-   NixOS:\n    \u003chttps://search.nixos.org/packages?channel=unstable\u0026from=0\u0026size=50\u0026sort=relevance\u0026type=packages\u0026query=gns3-server\u003e\n\nLinux (Debian based)\n--------------------\n\nThe following instructions have been tested with Ubuntu and Mint. You\nmust be connected to the Internet in order to install the dependencies.\n\nDependencies:\n\n-   Python \u003e= 3.8, setuptools and the ones listed\n    [here](https://github.com/GNS3/gns3-server/blob/master/requirements.txt)\n\nThe following commands will install some of these dependencies:\n\n``` {.bash}\nsudo apt-get install python3-setuptools python3-pip\n```\n\nFinally, these commands will install the server as well as the rest of\nthe dependencies:\n\n``` {.bash}\ncd gns3-server-master\npython3 -m pip install -r requirements.txt\npython3 -m pip install .\ngns3server\n```\n\nTo run tests use:\n\n``` {.bash}\npython3 -m pytest tests\n```\n\n### Docker container\n\nFor development, you can run the GNS3 server in a container\n\n``` {.bash}\nbash scripts/docker_dev_server.sh\n```\n\n#### use Docker Compose\n\n``` {.bash}\ndocker compose up -d\n```\n\n### Run as daemon (Unix only)\n\nYou will find init sample scripts for various systems inside the init\ndirectory.\n\nUseful options:\n\n-   `--daemon`: start process as a daemon\n-   `--log logfile`: store output in a logfile\n-   `--pid pidfile`: store the pid of the running process in a file and\n    prevent double execution\n\nAll init scripts require the creation of a GNS3 user. You can change it\nto another user.\n\n``` {.bash}\nsudo adduser gns3\n```\n\nupstart\n-------\n\nFor ubuntu \u003c 15.04\n\nYou need to copy init/gns3.conf.upstart to /etc/init/gns3.conf\n\n``` {.bash}\nsudo chown root /etc/init/gns3.conf\nsudo service gns3 start\n```\n\nsystemd\n-------\n\nYou need to copy init/gns3.service.systemd to\n/lib/systemd/system/gns3.service\n\n``` {.bash}\nsudo chown root /lib/systemd/system/gns3.service\nsudo systemctl start gns3\n```\n\nWindows\n-------\n\nPlease use our [all-in-one\ninstaller](https://community.gns3.com/software/download) to install the\nstable build.\n\nIf you install via source you need to first install:\n\n-   Python (3.3 or above) - \u003chttps://www.python.org/downloads/windows/\u003e\n-   Pywin32 - \u003chttps://sourceforge.net/projects/pywin32/\u003e\n\nThen you can call\n\n``` {.bash}\npython setup.py install\n```\n\nto install the remaining dependencies.\n\nTo run the tests, you also need to call\n\n``` {.bash}\npip install pytest pytest-capturelog\n```\n\nbefore actually running the tests with\n\n``` {.bash}\npython setup.py test\n```\n\nor with\n\n``` {.bash}\npy.test -v\n```\n\nMac OS X\n--------\n\nPlease use our DMG package for a simple installation.\n\nIf you want to test the current git version or contribute to the\nproject, you can follow these instructions with virtualenvwrapper:\n\u003chttp://virtualenvwrapper.readthedocs.org/\u003e and homebrew:\n\u003chttp://brew.sh/\u003e.\n\n``` {.bash}\nbrew install python3\nmkvirtualenv gns3-server --python=/usr/local/bin/python3.5\npython3 setup.py install\ngns3server\n```\n\nSSL\n---\n\nIf you want enable SSL support on GNS3 you can generate a self signed\ncertificate:\n\n``` {.bash}\nbash gns3server/cert_utils/create_cert.sh\n```\n\nThis command will put the files in \\~/.config/GNS3/ssl\n\nAfter you can start the server in SSL mode with:\n\n``` {.bash}\npython gns3server/main.py --certfile ~/.config/GNS3/ssl/server.cert --certkey ~/.config/GNS3/ssl/server.key --ssl\n```\n\nOr in your gns3\\_server.conf by adding in the Server section:\n\n``` {.ini}\n[Server]\ncertfile=/Users/noplay/.config/GNS3/ssl/server.cert\ncertkey=/Users/noplay/.config/GNS3/ssl/server.key\nssl=True\n```\n\n### Running tests\n\nJust run:\n\n``` {.bash}\npy.test -vv\n```\n\nIf you want test coverage:\n\n``` {.bash}\npy.test --cov-report term-missing --cov=gns3server\n```\n\nSecurity issues\n---------------\n\nPlease use GitHub's report a vulnerability feature. More information can be found in https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgns3%2Fgns3-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgns3%2Fgns3-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgns3%2Fgns3-server/lists"}