summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ttun_server/__init__.py11
-rw-r--r--ttun_server/endpoints.py8
2 files changed, 16 insertions, 3 deletions
diff --git a/ttun_server/__init__.py b/ttun_server/__init__.py
index cf589cc..17a8e7a 100644
--- a/ttun_server/__init__.py
+++ b/ttun_server/__init__.py
@@ -2,16 +2,21 @@ 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
11server = Starlette( 16server = Starlette(
12 debug=True, 17 debug=True,
13 routes=[ 18 routes=[
19 Host(os.environ['TUNNEL_DOMAIN'], base_router, 'base'),
14 Route('/{path:path}', Proxy), 20 Route('/{path:path}', Proxy),
15 WebSocketRoute('/tunnel/', Tunnel)
16 ] 21 ]
17) 22)
diff --git a/ttun_server/endpoints.py b/ttun_server/endpoints.py
index b33fe65..b25ffe4 100644
--- a/ttun_server/endpoints.py
+++ b/ttun_server/endpoints.py
@@ -55,6 +55,14 @@ class Proxy(HTTPEndpoint):
55 await response(self.scope, self.receive, self.send) 55 await response(self.scope, self.receive, self.send)
56 56
57 57
58class Health(HTTPEndpoint):
59 async def get(self, _) -> None:
60 response = Response(content='OK', status_code=200)
61
62 await response(self.scope, self.receive, self.send)
63
64
65
58class Tunnel(WebSocketEndpoint): 66class Tunnel(WebSocketEndpoint):
59 encoding = 'json' 67 encoding = 'json'
60 68