summaryrefslogtreecommitdiffstats
path: root/ttun_server
diff options
context:
space:
mode:
Diffstat (limited to 'ttun_server')
-rw-r--r--ttun_server/__init__.py14
-rw-r--r--ttun_server/endpoints.py8
2 files changed, 19 insertions, 3 deletions
diff --git a/ttun_server/__init__.py b/ttun_server/__init__.py
index cf589cc..85cdc7d 100644
--- a/ttun_server/__init__.py
+++ b/ttun_server/__init__.py
@@ -2,16 +2,24 @@ import logging
2import os 2import os
3 3
4from starlette.applications import Starlette 4from starlette.applications import Starlette
5from starlette.routing import Route, WebSocketRoute 5from starlette.routing import Route, WebSocketRoute, Host, Router
6 6
7from ttun_server.endpoints import Proxy, Tunnel 7from ttun_server.endpoints import Proxy, Tunnel, Health
8 8
9logging.basicConfig(level=getattr(logging, os.environ.get('LOG_LEVEL', 'INFO'))) 9logging.basicConfig(level=getattr(logging, os.environ.get('LOG_LEVEL', 'INFO')))
10 10
11base_router = Router(routes=[
12 Route('/health/}', Health),
13 WebSocketRoute('/tunnel/', Tunnel)
14])
15
16proxy_router = Router(routes=[
17])
18
11server = Starlette( 19server = Starlette(
12 debug=True, 20 debug=True,
13 routes=[ 21 routes=[
22 Host(os.environ['TUNNEL_DOMAIN'], base_router, 'base'),
14 Route('/{path:path}', Proxy), 23 Route('/{path:path}', Proxy),
15 WebSocketRoute('/tunnel/', Tunnel)
16 ] 24 ]
17) 25)
diff --git a/ttun_server/endpoints.py b/ttun_server/endpoints.py
index 5b9e57f..b62313c 100644
--- a/ttun_server/endpoints.py
+++ b/ttun_server/endpoints.py
@@ -48,6 +48,14 @@ class Proxy(HTTPEndpoint):
48 await response(self.scope, self.receive, self.send) 48 await response(self.scope, self.receive, self.send)
49 49
50 50
51class Health(HTTPEndpoint):
52 async def get(self) -> None:
53 response = Response(content='OK', status_code=200)
54
55 await response(self.scope, self.receive, self.send)
56
57
58
51class Tunnel(WebSocketEndpoint): 59class Tunnel(WebSocketEndpoint):
52 encoding = 'json' 60 encoding = 'json'
53 61