Host static HTML pages using MVI

A common use case for a service is to host static HTML pages. For instance, these HTML pages can be usage reports, summaries, welcome pages, or whatever you need and want them to be!

You only need 1 line of code in your service to host your static HTML pages:

from mvi import service
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles

service.app.mount("/", StaticFiles(directory="my_pages", html=True), name="")

if __name__ == "__main__":
    service.run()

The folder structure of the above service is:

my_service
|── .s2i
|   └── environment
├── servcice.py
├── requirements.txt
├── my_pages
│   └── index.html
│   └── report.html
└── tests
    ├── base_functionality_test.py
    └── user_test.py

Note

The HTML pages need to be located togheter in a sub-directory. In this example, they are located in the my_pages directory.

The service can be deployed by:

>>> mvi deploy my_service 1.0.0 my_service/ 
Active host: http://your-host
Deploying service...
Service deployed successfully
MAIN    NAME         VERSION    STATUS    RUNNING
------  -----------  ---------  --------  -----------------------------------
*       my_service   1.0.0      running   Running (since 2020-12-15 12:10:25)

By going to the following URL, the index.html page will be loaded:

http://your-host/services/my_service/

And to load report.html, go to:

http://your-host/services/my_service/report.html