added config

This commit is contained in:
Enju Aihara 2022-04-22 20:56:58 +02:00
parent 80b9cba5f3
commit 009d7fcab3
4 changed files with 18 additions and 4 deletions

View file

@ -16,8 +16,10 @@ sudo -Hu fba git clone https://gitlab.com/EnjuAihara/fedi-block-api.git /opt/fed
cd /opt/fedi-block-api
sudo -Hu fba pip3 install -r requirements.txt
sudo -Hu fba cp blocks_preloaded.db blocks.db
sudo -Hu fba cp config.defaults.json config.json
```
### Install the services
```bash

14
api.py
View file

@ -1,10 +1,15 @@
import uvicorn
from fastapi import FastAPI, Request, HTTPException, responses
import sqlite3
from hashlib import sha256
from fastapi.templating import Jinja2Templates
from requests import get
from json import loads
base_url = ""
with open("config.json") as f:
config = loads(f.read())
base_url = config["base_url"]
port = config["port"]
app = FastAPI(docs_url=base_url+"/docs", redoc_url=base_url+"/redoc")
templates = Jinja2Templates(directory=".")
@ -57,13 +62,16 @@ def blocked(domain: str = None):
def index(request: Request, domain: str = None):
if domain == "":
return responses.RedirectResponse("/")
blocks = get(f"http://127.0.0.1:8069{base_url}/api?domain={domain}")
blocks = get(f"http://127.0.0.1:{port}{base_url}/api?domain={domain}")
info = None
if domain == None:
info = get(f"http://127.0.0.1:8069{base_url}/info")
info = get(f"http://127.0.0.1:{port}{base_url}/info")
if not info.ok:
raise HTTPException(status_code=info.status_code, detail=info.text)
info = info.json()
if not blocks.ok:
raise HTTPException(status_code=blocks.status_code, detail=blocks.text)
return templates.TemplateResponse("index.html", {"request": request, "domain": domain, "blocks": blocks.json(), "info": info})
if __name__ == "__main__":
uvicorn.run("api:app", host="127.0.0.1", port=port, log_level="info")

4
config.defaults.json Normal file
View file

@ -0,0 +1,4 @@
{
"base_url": "",
"port": 8069
}

View file

@ -7,7 +7,7 @@ Restart=on-failure
RestartSec=10
User=fba
WorkingDirectory=/opt/fedi-block-api
ExecStart=uvicorn api:app --port 8069
ExecStart=python3 api.py
[Install]
WantedBy=multi-user.target