

You can use basically any HTTP server to achieve that, like Apache or Nginx. If the directory (specified by the path in the URL) doesn’t contain a file that matches the default file in the config (index.html and such), the server will list the directory contents instead.
My immediate thought is a cron job that tests the user account’s last login time and fires a script if it is exceeded.