All Projects → saltyrtc → Saltyrtc Server Python

saltyrtc / Saltyrtc Server Python

Licence: mit
SaltyRTC signalling server implementation.

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Saltyrtc Server Python

Go Cloud
The Go Cloud Development Kit (Go CDK): A library and tools for open cloud development in Go.
Stars: ✭ 8,124 (+16148%)
Mutual labels:  server
Forgottenserver
A free and open-source MMORPG server emulator written in C++
Stars: ✭ 1,024 (+1948%)
Mutual labels:  server
Springsnail
《Linux 高性能服务器》附带的项目程序springsnil详细解读,一个负载均衡服务器
Stars: ✭ 47 (-6%)
Mutual labels:  server
Convergence Server
The Convergence Server
Stars: ✭ 44 (-12%)
Mutual labels:  server
Corgi
AWS Lambda / API Gateway native, fast and simple web framework
Stars: ✭ 44 (-12%)
Mutual labels:  server
Ward
Server dashboard
Stars: ✭ 1,026 (+1952%)
Mutual labels:  server
Nodemcu Espress
Ultra-Lightweight and modular Node.js express like http server for NodeMCU. web - ESP8266
Stars: ✭ 39 (-22%)
Mutual labels:  server
Angel
A polished, production-ready backend framework in Dart for the VM, AOT, and Flutter.
Stars: ✭ 1,055 (+2010%)
Mutual labels:  server
Minion Ci
minimalist, decentralized, flexible Continuous Integration Server for hackers.
Stars: ✭ 44 (-12%)
Mutual labels:  server
Sqlservermetadata
SQL Server Metadata Toolkit
Stars: ✭ 47 (-6%)
Mutual labels:  server
Docker Serveo Server
https://serveo.net is an alternative for ngrok. taichunmin/serveo-server can let you host your own serveo. And taichunmin/serveo can let you secure URL to your localhost server through any NAT or firewall in Docker.
Stars: ✭ 44 (-12%)
Mutual labels:  server
Dito
Dito.js is a declarative and modern web framework with a focus on API driven development, based on Objection.js, Koa.js and Vue.js – Released in 2018 under the MIT license, with support by Lineto.com
Stars: ✭ 44 (-12%)
Mutual labels:  server
Ecoleta
Projecto construído durante o Next Level Week 1 - Ecoleta by @Rocketseat
Stars: ✭ 46 (-8%)
Mutual labels:  server
Clashroyale
Server, client and proxy for Clash Royale.
Stars: ✭ 42 (-16%)
Mutual labels:  server
Freeflix
Freeflix is a streaming server that integrates a BitTorrent client.
Stars: ✭ 48 (-4%)
Mutual labels:  server
Go Raknet
An idiomatic Go library implementing a basic version of the RakNet protocol.
Stars: ✭ 40 (-20%)
Mutual labels:  server
Omdb Graphql Wrapper
🚀 GraphQL wrapper for the OMDb API
Stars: ✭ 45 (-10%)
Mutual labels:  server
Cti Taxii Server
OASIS TC Open Repository: TAXII 2 Server Library Written in Python
Stars: ✭ 50 (+0%)
Mutual labels:  server
Racingworld
💥 A multiplayer online 3D game about racing 💥
Stars: ✭ 50 (+0%)
Mutual labels:  server
Tox Node
A server application to run tox node written in pure Rust
Stars: ✭ 47 (-6%)
Mutual labels:  server

SaltyRTC Signalling Server

|CircleCI| |codecov| |PyPI| |Gitter|

This is a SaltyRTC server implementation for Python 3.5+ using asyncio_.

Note


On machines where Python 3 is not the default Python runtime, you should use pip3 instead of pip.

Prerequisites


.. code-block:: bash

sudo apt-get install python3 python3-pip

We recommend using venv_ to create an isolated Python environment:

.. code-block:: bash

pyvenv venv

You can switch into the created virtual environment venv by running this command:

.. code-block:: bash

source venv/bin/activate

While the virtual environment is active, all packages installed using pip will be installed into this environment.

To deactivate the virtual environment, just run:

.. code-block:: bash

deactivate

If you want easier handling of your virtualenvs, you might also want to take a look at virtualenvwrapper_.

Installation


If you are using a virtual environment, activate it first.

Install the module by running:

.. code-block:: bash

pip install saltyrtc.server

The dependency libnacl will be installed automatically. However, you may need to install libsodium_ for libnacl to work.

Command Line Usage


The script saltyrtc-server will be automatically installed and provides a command line interface for the server.

Run the following command to see detailed usage information:

.. code-block:: bash

saltyrtc-server --help

All command line options are also available as environment variables by prefixing them with SALTYRTC_SERVER_ and the upper case command name, followed by the option name in upper case. For example: SALTYRTC_SERVER_SERVE_PORT=8765.

Quick Start

Generate a new private permanent key:

.. code-block:: bash

saltyrtc-server generate /path/to/permanent-key

Run the following command to start the server on any address with port 8765:

.. code-block:: bash

saltyrtc-server serve \
    -p 8765 \
    -tc /path/to/x509-certificate \
    -tk /path/to/key \
    -k /path/to/permanent-key

Alternatively, provide the options via environment variables:

.. code-block:: bash

export SALTYRTC_SERVER_SERVE_PORT=8765 \
       SALTYRTC_SERVER_SERVE_TLSCERT=/path/to/x509-certificate \
       SALTYRTC_SERVER_SERVE_TLSKEY=/path/to/key \
       SALTYRTC_SERVER_SERVE_KEY=/path/to/permanent-key
saltyrtc-server serve

Docker

You can also use our official Docker images_ to run the server:

.. code-block:: bash

docker run \
    -v /path/to/cert-and-keys:/var/saltyrtc \
    -p 8765:8765
    -it saltyrtc/saltyrtc-server-python:<tag> serve \
    -p 8765 \
    -tc /var/saltyrtc/x509-certificate \
    -tk /var/saltyrtc/key \
    -k /var/saltyrtc/permanent-key

The above command maps port 8765 of the server within the container to port 8765 on the host machine.

Of course it is also possible to use environment variables to provide the options, as explained in the previous section.

Contributing


If you want to contribute to this project, you should install the optional dev requirements of the project in an editable environment:

.. code-block:: bash

git clone https://github.com/saltyrtc/saltyrtc-server-python.git
cd saltyrtc-server-python
pip install -e .[dev]

Before creating a pull request, it is recommended to run the following commands to check for code style violations (flake8), optimise imports (isort), do a static type analysis and run the project's tests:

.. code-block:: bash

flake8 .
isort -rc .
MYPYPATH=${PWD}/stubs mypy saltyrtc examples
py.test

Reporting Security Issues


Please report security issues directly to one or both of the following contacts:

  • Danilo Bargen

    • Email: [email protected]
    • Threema: EBEP4UCA
    • GPG: EA456E8BAF0109429583EED83578F667F2F3A5FA_
  • Lennart Grahl

    • Email: [email protected]
    • Threema: MSFVEW6C
    • GPG: 3FDB14868A2B36D638F3C495F98FBED10482ABA6_

.. _asyncio: https://docs.python.org/3/library/asyncio.html .. _venv: https://docs.python.org/3/library/venv.html .. _virtualenvwrapper: https://virtualenvwrapper.readthedocs.io/ .. _libsodium: https://download.libsodium.org/doc/installation/ .. _official Docker images: https://hub.docker.com/r/saltyrtc/saltyrtc-server-python

.. |CircleCI| image:: https://circleci.com/gh/saltyrtc/saltyrtc-server-python.svg?style=shield :target: https://circleci.com/gh/saltyrtc/saltyrtc-server-python .. |codecov| image:: https://codecov.io/gh/saltyrtc/saltyrtc-server-python/branch/master/graph/badge.svg :target: https://codecov.io/gh/saltyrtc/saltyrtc-server-python .. |PyPI| image:: https://badge.fury.io/py/saltyrtc.server.svg :target: https://badge.fury.io/py/saltyrtc.server .. |Gitter| image:: https://badges.gitter.im/saltyrtc/Lobby.svg :target: https://gitter.im/saltyrtc/Lobby .. _EA456E8BAF0109429583EED83578F667F2F3A5FA: https://keybase.io/dbrgn .. _3FDB14868A2B36D638F3C495F98FBED10482ABA6: https://keybase.io/lgrahl

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].