Compare commits

...

4 commits

6 changed files with 20 additions and 11 deletions

View file

@ -22,6 +22,7 @@ RUN set -ex; \
export DEBIAN_FRONTEND=noninteractive; \ export DEBIAN_FRONTEND=noninteractive; \
apt-get update; apt-get -y install --no-install-recommends \ apt-get update; apt-get -y install --no-install-recommends \
easy-rsa \ easy-rsa \
git-flow \
; rm -rf /var/lib/apt/lists/*; \ ; rm -rf /var/lib/apt/lists/*; \
ln -s /usr/share/easy-rsa/easyrsa /usr/local/bin; ln -s /usr/share/easy-rsa/easyrsa /usr/local/bin;

View file

@ -56,7 +56,7 @@ class EasyRSA:
days: int = 365 * 50, days: int = 365 * 50,
cn: str = "kiwi-vpn-ca" cn: str = "kiwi-vpn-ca"
) -> crypto.X509: ) -> crypto.X509:
return self.__build_cert( cert = self.__build_cert(
Path("ca.crt"), Path("ca.crt"),
f"--passout=pass:{self.__ca_password}", f"--passout=pass:{self.__ca_password}",
@ -79,6 +79,9 @@ class EasyRSA:
"build-ca", "build-ca",
) )
self.__easyrsa("gen-dh")
return cert
def issue( def issue(
self, self,
days: int = 365 * 50, days: int = 365 * 50,

View file

@ -15,13 +15,12 @@ from fastapi import FastAPI
from .config import Config, Settings from .config import Config, Settings
from .db import Connection from .db import Connection
from .db.schemas import User from .db.schemas import User
from .routers import admin, dn, user from .routers import main_router
settings = Settings.get() settings = Settings.get()
app = FastAPI()
api = FastAPI( app = FastAPI(
title="kiwi-vpn API", title="kiwi-vpn API",
description="This API enables the `kiwi-vpn` service.", description="This API enables the `kiwi-vpn` service.",
contact={ contact={
@ -37,11 +36,7 @@ api = FastAPI(
redoc_url=settings.redoc_url if not settings.production_mode else None, redoc_url=settings.redoc_url if not settings.production_mode else None,
) )
api.include_router(admin.router) app.include_router(main_router)
api.include_router(user.router)
api.include_router(dn.router)
app.mount("/api", api)
@app.on_event("startup") @app.on_event("startup")

View file

@ -0,0 +1,10 @@
from fastapi import APIRouter
from . import admin, user
main_router = APIRouter(prefix="/api/v1")
main_router.include_router(admin.router)
main_router.include_router(user.router)
__all__ = ["main_router"]

View file

@ -10,7 +10,7 @@ from ..db import Connection
from ..db.schemas import User, UserCapability, UserCreate from ..db.schemas import User, UserCapability, UserCreate
from ._common import Responses, get_current_user from ._common import Responses, get_current_user
router = APIRouter(prefix="/admin") router = APIRouter(prefix="/admin", tags=["admin"])
@router.put( @router.put(

View file

@ -12,7 +12,7 @@ from ..db import Connection
from ..db.schemas import User, UserCapability, UserCreate from ..db.schemas import User, UserCapability, UserCreate
from ._common import Responses, get_current_user, get_current_user_if_admin from ._common import Responses, get_current_user, get_current_user_if_admin
router = APIRouter(prefix="/user") router = APIRouter(prefix="/user", tags=["user"])
class Token(BaseModel): class Token(BaseModel):