Request for Implementation: CMS with online editing for JupyterHub support pages / home page

https://jupyter.utoronto.ca has a nice home page, rendered via custom jinja templates. It works ok, but any modifications to it require a new deployment + modifying jinja code. It has to go via GitHub. Wouldn’t it be lovely if you had a regular CMS that admin users can log in to and modify the home page without requiring github / jinja2 intervention?

So what I’d love is a simple pre-existing CMS (not something we build) that can integrate run as a JupyterHub service, integrate with the JupyterHub auth system to allow admins to edit, and can provide routing properly so that pages can be served from the home page of JupyterHub itself (rather than in another domain).

Even something like wordpress with an auth plugin could work, but I don’t want to run something as heavy weight as that. So I want a super light weight CMS that ideally can just run off sqlite (not require MySQL), and not require familiarity with git to edit.

Suggestions? Other avenues and potential solutions to explore for this problem?

6 Likes

I wanted to more clearly express what I think requirements for such a CMS are.

  1. Keeps content on disk, either in flat files or on a sqlite database. We can hook this up to the hub db if necessary, so we only have one backup target. Simplifies operations a lot, IMO!
  2. Has the concept of users, that we can use OAuth2 to plug into JupyterHub users. I want admins to be able to edit, and eventually hopefully other ‘groups’ can be given rights to edit certain pages. Alternatively, if there is no concept of users, we can put a proxy in front that does the oauth2 authentication - but can’t be fine grained.
  3. Is flexible with how pages are named and routed, so we can easily have a ‘homepage’ at the landing site of the hub
  4. Reasonably secure without requirement for constant upkeep.

Thoughts on what might work?

@yuvipanda, this is a fantastic idea. What are your thoughts on the Django CMS? It can be served it through a proxy similar to RStudio.

@yuvipanda - Based on this resource you shared, I reviewed all the suggested flat-file CMS options to find the ones which fit the requirements you had shared in this post.

  • Grav seems to fit your requirements in multiple ways with a flat-file structure, the concept of users with admin privileges and allows for managing multiple web pages with an option to specify the home page. Grav seems to have a well thought out security policy IMO. A complete list of features can get accessed through this link. In addition, Grav is also free to use
  • Pico follows a flat-file structure but does not have the concept of admin users or home pages from my limited understanding.
  • Kirby seems to have all the requirements you had highlighted (flat file structure, user-based authentication, multipage functionality, and security) but one needs to pay for their services
  • Satanic seems to have all the features you highlighted, which may also mean paying for a few use cases
  • Bolt and Wonder CMS may not be that relevant as many functionalities that you had highlighted are not available as part of both these CMS’s which are optimized for keeping things simple.
1 Like