diff --git a/router/admin.py b/router/admin.py
new file mode 100644
index 00000000..4837e18d
--- /dev/null
+++ b/router/admin.py
@@ -0,0 +1,92 @@
+import os
+from fastapi import APIRouter, Request
+from fastapi.responses import HTMLResponse
+
+admin_router = APIRouter(prefix="/admin")
+
+
+def login_form() -> str:
+ return """
+
+
+
+
+
+
+
+
+
+ """
+
+
+def info(content: str) -> str:
+ return f"""
+
+
+
+
+
+
+ {content}
+
+
+
+ """
+
+def admin_auth() -> str:
+ if os.getenv("ADMIN_PASSWORD", "") == "":
+ return info("Please set a secure ADMIN_PASSWORD= in your ENV variables.")
+ else:
+ return login_form()
+
+
+def dashboard(request: Request) -> str:
+ return info("Admin dashboard")
+
+
+@admin_router.get("/", response_class=HTMLResponse)
+async def admin(request: Request):
+ admin_cookie = request.cookies.get("admin_password")
+ if admin_cookie and admin_cookie == os.getenv("ADMIN_PASSWORD"):
+ return dashboard(request)
+ return admin_auth()
diff --git a/router/main.py b/router/main.py
index e6d10352..7ae8e71d 100644
--- a/router/main.py
+++ b/router/main.py
@@ -4,6 +4,7 @@ from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from .db import init_db
+from .admin import admin_router
from .proxy import proxy_router
from .account import account_router
from .cashu import _initialize_wallet
@@ -42,6 +43,7 @@ async def info():
}
+app.include_router(admin_router)
app.include_router(account_router)
app.include_router(proxy_router)