Add SHRoNK ip online checker
This commit is contained in:
parent
1f350d8399
commit
38acfebea0
3 changed files with 14 additions and 1 deletions
|
@ -2,6 +2,7 @@ FROM python:3-slim
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY ipserv.py /app
|
COPY ipserv.py /app
|
||||||
|
COPY cert/ /app/cert
|
||||||
EXPOSE 80/tcp
|
EXPOSE 80/tcp
|
||||||
RUN pip install fastapi requests gunicorn uvicorn[standard] aiohttp
|
RUN pip install fastapi requests gunicorn uvicorn[standard] aiohttp
|
||||||
CMD ["gunicorn", "-b", "0.0.0.0:80", "--forwarded-allow-ips", "*", "--worker-class", "uvicorn.workers.UvicornWorker", "ipserv:app"]
|
CMD ["gunicorn", "-b", "0.0.0.0:80", "--forwarded-allow-ips", "*", "--worker-class", "uvicorn.workers.UvicornWorker", "ipserv:app"]
|
|
@ -2,7 +2,7 @@
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>SHRoNK IP Specification test</title>
|
<title>SHRoNK IP Specification test</title>
|
||||||
<script src="script.js" defer></script>
|
<script src="./script.js" defer></script>
|
||||||
<style>
|
<style>
|
||||||
html {
|
html {
|
||||||
font-family: sans-serif;
|
font-family: sans-serif;
|
||||||
|
|
12
ipserv.py
12
ipserv.py
|
@ -6,6 +6,8 @@ import aiohttp
|
||||||
import random
|
import random
|
||||||
from fastapi import FastAPI, Header, Request, Query, HTTPException
|
from fastapi import FastAPI, Header, Request, Query, HTTPException
|
||||||
from fastapi.responses import JSONResponse, PlainTextResponse
|
from fastapi.responses import JSONResponse, PlainTextResponse
|
||||||
|
from fastapi.staticfiles import StaticFiles
|
||||||
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
from contextlib import asynccontextmanager
|
from contextlib import asynccontextmanager
|
||||||
|
|
||||||
logging.basicConfig(level=logging.INFO)
|
logging.basicConfig(level=logging.INFO)
|
||||||
|
@ -43,6 +45,13 @@ app = FastAPI(lifespan=lifespan)
|
||||||
app.state.cache = {}
|
app.state.cache = {}
|
||||||
app.state.meta = Manager(app)
|
app.state.meta = Manager(app)
|
||||||
|
|
||||||
|
app.add_middleware(
|
||||||
|
CORSMiddleware,
|
||||||
|
allow_origins=["*"],
|
||||||
|
allow_methods=["GET", "HEAD", "OPTIONS"],
|
||||||
|
allow_headers=["*"],
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@app.middleware("http")
|
@app.middleware("http")
|
||||||
async def http_middleware(request: Request, call_next):
|
async def http_middleware(request: Request, call_next):
|
||||||
|
@ -176,3 +185,6 @@ async def get_health():
|
||||||
detail["status"] = "critical"
|
detail["status"] = "critical"
|
||||||
|
|
||||||
return JSONResponse(detail)
|
return JSONResponse(detail)
|
||||||
|
|
||||||
|
|
||||||
|
app.mount("/check", StaticFiles(directory="./cert", html=True), name="shronk-cert")
|
||||||
|
|
Reference in a new issue