diff --git a/Containerfile b/Containerfile index 1a1812f..5285dbd 100644 --- a/Containerfile +++ b/Containerfile @@ -11,10 +11,10 @@ ENV UV_NO_MANAGED_PYTHON=true ENV VIRTUAL_ENV=/usr/local/share/dooris/venv/ ENV PNPM_HOME=/usr/local/share/dooris/pnpm/ ENV PATH=$PNPM_HOME:$VIRTUAL_ENV/bin:$PATH -ENV DOORIS_SERVE_STATIC=/var/www/dooris/static/ +ENV DOORIS_STATIC_ROOT=/var/www/dooris/static/ WORKDIR /usr/local/src/dooris/ -RUN apk add --no-cache uv python3 pnpm +RUN apk add --no-cache uv nginx python3 pnpm RUN addgroup -g $APP_GID dooris &&\ adduser -h /usr/local/src/dooris -u $APP_UID -G dooris -D dooris &&\ mkdir -p /var/www/dooris/ /usr/local/share/dooris/ /usr/local/src/dooris/ /var/cache/dooris/ &&\ @@ -25,19 +25,25 @@ RUN addgroup -g $APP_GID dooris &&\ FROM base AS deps USER dooris ADD --link --chown=dooris:dooris api/pyproject.toml api/uv.lock api/ -ADD --link --chown=dooris:dooris app/package.json app/pnpm-lock.yaml app/ +# ADD --link --chown=dooris:dooris package.json pnpm-lock.yaml . RUN uv venv $VIRTUAL_ENV &&\ uv sync --active --frozen --no-install-project --no-editable -RUN pnpm --dir=app/ install --frozen-lockfile --package-import-method=copy +# RUN pnpm install --frozen-lockfile --package-import-method=copy FROM deps AS final ADD --chown=dooris:dooris --link . /usr/local/src/dooris/ -RUN pnpm --dir=app/ run build --outDir=$DOORIS_SERVE_STATIC +# RUN pnpm run build RUN --mount=type=cache,uid=$APP_UID,gid=$APP_GID,target=$UV_CACHE_DIR \ uv sync --active --frozen +# RUN export dooris_SECRET_KEY=django-insecure \ +# dooris_BASE_URI=http://invalid.invalid \ +# dooris_DB_URL=sqlite:///:memory: &&\ +# ./manage.py collectstatic --no-input -ENTRYPOINT [ "uv", "run", "--active", "dooris-api" ] +# ADD dev/cmd.sh /usr/local/bin/cmd.sh +ENTRYPOINT [ "/usr/local/bin/cmd.sh" ] +CMD [ "0.0.0.0:8000" ] EXPOSE 8000/tcp diff --git a/api/src/dooris_api/__init__.py b/api/src/dooris_api/__init__.py index 5e684af..f587774 100644 --- a/api/src/dooris_api/__init__.py +++ b/api/src/dooris_api/__init__.py @@ -40,22 +40,12 @@ def main(): default=os.environ.get("DOORIS_BASE_URL", None), help="The Base-URL that this application is reachable under", ) - argp.add_argument( - "--serve-static", - required=False, - default=os.environ.get("DOORIS_SERVE_STATIC", None), - help="In addition to the API functionality, serve static files from this path", - ) args = argp.parse_args() app_config.set(args) import uvicorn from dooris_api.app import app - if args.serve_static: - from fastapi.staticfiles import StaticFiles - app.mount("/", StaticFiles(directory=args.serve_static, html=True), name="static") - config = uvicorn.Config(app, port=8000, log_level="debug") server = uvicorn.Server(config) server.run() diff --git a/api/src/dooris_api/app.py b/api/src/dooris_api/app.py index f4b54ee..9f8bedc 100644 --- a/api/src/dooris_api/app.py +++ b/api/src/dooris_api/app.py @@ -48,7 +48,6 @@ async def lifespan(app: FastAPI): app = FastAPI( title="Dooris", summary="Server to interact with CCCHH doors via locks over CCUJACK over HomeMatic over WiFi", - openapi_url="/api/openapi.json", docs_url="/api/docs", lifespan=lifespan, )