Those are all valid and at the same time, it adds to the overhead. I tried to do it but encountered more concepts than I’m comfortable with (e.g., reverse proxy, volume, data migration, authentication, certificates, etc).
That means a) ensure it runs continually by not breaking stuff, and b) fixing issues as they arise. This is difficult for those who only wants to provide hands-on programming experience to teach domain knowledge. This setup will require an IT admin.