Skip to content
katakombi edited this page Jul 8, 2017 · 15 revisions

Dolmades GUI Draft

Dolmades?

For an intro about dolmades check out http://dolmades.org

Rough sketch-up

GUI sketch-up

Desired functionality Stage I

  • Targets End User
  • All dolmades run in user space
  • No GitHub account needed
  • Fetch a collection of online available images prepared on singularity hub/docker hub
  • Find a dolmade for an ingredient known to fit well
  • Install in the empty dolmade the ingredient(=software) he/she wants to use
  • Configurable windows profile (bind mounts to store it on the host)
  • Export: makes dolmade self-contained (import profile etc) and writes as singularity.img
  • Import: let user import a readily-installed singularity.img
  • Rate a recipe<->ingredients combination
  • NO local modification of recipes
  • NO local bootstrap

Concepts

  • Recipe: singularity build spec to create a dolmade
  • Dolmade: singularity v2.3 and above container image, has at least one world-rwx location, preconfigured wine and some meta data (Icon, Description, ...)
  • Ingredient: basically anything which is covered by licensing and therefore cannot be integrated at build time such as native MS Dlls, ISO, MSI/EXE Installer,packed archives, RPMs/DEBs, digital content, sensitive data ...

Goals

  • Maximize freedom: separate strictly the free from the non-free stuff but make it as simple as it gets to combine both on the users side!
  • Maintain stability: a software which once worked well should remain that way even if moved to another machine
  • Reproducibility: be able to repeat a installation without going crazy over try&error by keeping as much as possible automated

Modes

  • EXECUTION: immutable, ro - rw data is bind mounted
  • INSTALLATION: rw-mounted - ingredients gets installed permanently, only needed once
  • SEARCH: find available dolmades by key words / by a sha256 sum of an ingredient / by a locally computed similarity score using ingredients
  • REPORT: is specific to the installed set of ingredients. User rates and comments on usability/functionality. Requires: assignment and/or annotation of ingredients

TODOs / Open questions

  • link from singularity hub container image to GitHub repo containing build spec
  • singularity per-container config (User binds, options...)
  • develop a similarity score for ingredients to either find an exact or close match between ingredients and dolmades
  • How to deal with non-terminating daemons (workaround: do a fsck after termination?)
  • REPORT MODE: is there a way to properly implement this utilizing existing services?
  • Can needed singularity functionality be linked directly in C++ from current singularity master? Guess so...
  • Can needed singularity functionality be utilized without setsuid? Just using user name space? Guess so, too...

How to achieve functionality

  • singularity exec (user space) functionality
  • Recipes - singularity build specs hosted on GitHub
  • GitHub API - retrieves a list of dolmades forks
  • Singularity Hub / Docker Hub -- serving as build server