GNS3 server
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
grossmj dac2cf4089 Bump version to 2.2.0dev17 1 day ago
conf Remove generic controller settings API endpoint. 9 months ago
docs Refresh documentation 4 months ago
gns3server Bump version to 2.2.0dev17 1 day ago
init Make sure upstart LANG is utf8 2 years ago
scripts Merge branch '2.2' 1 month ago
tests Merge remote-tracking branch 'origin/2.2' into 2.2 2 months ago
.coveragerc Fix coveralls configuration 4 years ago
.gitattributes Keep the version.py untouched when merging 3 years ago
.gitignore Merge branch '2.1' into 2.2 1 year ago
.pyup.yml Update pyup config to use 2.2 branch 1 year ago
.travis.yml Do not test with Python 3.4 on Travis. 10 months ago
AUTHORS Adjust AUTHORS. 4 years ago
CHANGELOG Release v2.2.0rc3 1 week ago
CONTRIBUTING.md Merge branch 'master' into 1.5 3 years ago
Dockerfile Update Dockerfile to Ubuntu 18.04 3 months ago
DockerfileTests.tpl Tests on TravisCI with docker compose 1 year ago
LICENSE Project structure & tools (pytest, tox etc.) 5 years ago
MANIFEST.in Remove 'include INSTALL' from MANIFEST. 1 year ago
README.rst Update README.rst 1 month ago
appveyor.yml Remove not working trigger of nightly build 2 years ago
dev-requirements.txt Update pytest from 4.4.0 to 4.4.1 4 months ago
docker-compose.yml Tests on TravisCI with docker compose 1 year ago
gns3server.bat Made the gns3server.bat successfully start the server independent of the CWD at the time of running. It's now relative to the location of the .bat file itself. 3 years ago
pytest.ini pytest.ini for ignoring files and recording DEBUG level in tests 1 year ago
readthedocs.yml Use Python3.6 to build the API documentation. 9 months ago
requirements.txt Revert to jsonschema 2.6.0 due to packaging problem. 1 week ago
setup.py Fix installation with Python 3.7. Fixes #1414. 10 months ago
tox.ini Increase test timeout to avoid random problems on travis 3 years ago
win-requirements.txt Early Hyper-V support to run the GNS3 VM. Ref https://github.com/GNS3/gns3-gui/issues/763. 1 year ago

README.rst

GNS3-server
===========

.. image:: https://travis-ci.org/GNS3/gns3-server.svg?branch=master
:target: https://travis-ci.org/GNS3/gns3-server

.. image:: https://img.shields.io/pypi/v/gns3-server.svg
:target: https://pypi.python.org/pypi/gns3-server

This is the GNS3 server repository.

The GNS3 server manages emulators such as Dynamips, VirtualBox or Qemu/KVM.
Clients like the GNS3 GUI controls the server using a HTTP REST API.

You will need the GNS3 GUI (gns3-gui repository) to control the server.

Branches
--------

master
******
master is the next stable release, you can test it in your day to day activities.
Bug fixes or small improvements pull requests go here.

2.x (2.1 for example)
*********************
Next major release

*Never* use this branch for production. Pull requests for major new features go here.

Linux
-----

GNS3 is perhaps packaged for your distribution:

* Gentoo: https://packages.gentoo.org/package/net-misc/gns3-server
* Alpine: https://pkgs.alpinelinux.org/package/v3.10/community/x86_64/gns3-server


Linux (Debian based)
--------------------

The following instructions have been tested with Ubuntu and Mint.
You must be connected to the Internet in order to install the dependencies.

Dependencies:

- Python 3.4 or above
- aiohttp
- setuptools
- psutil
- jsonschema

The following commands will install some of these dependencies:

.. code:: bash

sudo apt-get install python3-setuptools

Finally these commands will install the server as well as the rest of the dependencies:

.. code:: bash

cd gns3-server-master
sudo python3 setup.py install
gns3server

To run tests use:

.. code:: bash

py.test -v


Docker container
****************

For development you can run the GNS3 server in a container

.. code:: bash

bash scripts/docker_dev_server.sh


Run as daemon (Unix only)
**************************

You will find init sample scripts for various systems
inside the init directory.

Usefull options:

* --daemon: start process as a daemon
* --log logfile: store output in a logfile
* --pid pidfile: store the pid of the running process in a file and prevent double execution

All init scripts require the creation of a GNS3 user. You can change it to another user.

.. code:: bash

sudo adduser gns3

upstart
-------

For ubuntu < 15.04

You need to copy init/gns3.conf.upstart to /etc/init/gns3.conf

.. code:: bash

sudo chown root /etc/init/gns3.conf
sudo service gns3 start


systemd
-------

You need to copy init/gns3.service.systemd to /lib/systemd/system/gns3.service

.. code:: bash

sudo chown root /lib/systemd/system/gns3.service
sudo systemctl start gns3

Windows
-------


Please use our `all-in-one installer <https://community.gns3.com/community/software/download>`_ to install the stable build.

If you install via source you need to first install:

- Python (3.3 or above) - https://www.python.org/downloads/windows/
- Pywin32 - https://sourceforge.net/projects/pywin32/

Then you can call

.. code:: bash

python setup.py install

to install the remaining dependencies.

To run the tests, you also need to call

.. code:: bash

pip install pytest pytest-capturelog

before actually running the tests with

.. code:: bash

python setup.py test

or with

.. code:: bash

py.test -v

Mac OS X
--------

Please use our DMG package for a simple installation.

If you want to test the current git version or contribute to the project,
you can follow these instructions with virtualenwrapper: http://virtualenvwrapper.readthedocs.org/
and homebrew: http://brew.sh/.

.. code:: bash

brew install python3
mkvirtualenv gns3-server --python=/usr/local/bin/python3.5
python3 setup.py install
gns3server

SSL
---

If you want enable SSL support on GNS3 you can generate a self signed certificate:

.. code:: bash

bash gns3server/cert_utils/create_cert.sh

This command will put the files in ~/.config/GNS3/ssl

After you can start the server in SSL mode with:

.. code:: bash

python gns3server/main.py --certfile ~/.config/GNS3/ssl/server.cert --certkey ~/.config/GNS3/ssl/server.key --ssl


Or in your gns3_server.conf by adding in the Server section:

.. code:: ini

[Server]
certfile=/Users/noplay/.config/GNS3/ssl/server.cert
certkey=/Users/noplay/.config/GNS3/ssl/server.key
ssl=True

Running tests
*************

Just run:

.. code:: bash

py.test -vv

If you want test coverage:

.. code:: bash

py.test --cov-report term-missing --cov=gns3server

Security issues
----------------
Please contact us using contact form available here:
http://docs.gns3.com/1ON9JBXSeR7Nt2-Qum2o3ZX0GU86BZwlmNSUgvmqNWGY/index.html