Magic App
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Luke Murphy eadb17d8c1
Get the env loading right for gitea
2 minutes ago
static Add back that static file 18 hours ago
templates Add success rendering 23 minutes ago
.gitignore Hacking towards the db.json, trimming as much as possible 1 day ago
LICENSE Add LICENSE and README 1 day ago
README.md Add more notes 12 minutes ago
first.py Use template folders 18 hours ago
requirements.txt Hacking towards the db.json, trimming as much as possible 1 day ago
second.py Get the env loading right for gitea 2 minutes ago

README.md

Magic App

A swarm of dreams.

first.py

Ideas contained within...

  • List apps from an app.json (points to https://git.autonomic.zone/compose-stacks)
  • Clone selected app template and parse configuration for inputs (env vars and secrets)
  • Generate a form so those values can be filled out and allow it to be saved
  • Save the form inputs to a db.json (as a start)
  • Deploy an applicaiton to a local swarm (assumes access to local docker socket)
  • Create an “edit app” page where the db.json is re-called and can be updated
  • Make sure re-deploy works (taking care of updating secret and app versions)

second.py

More ideas...

  • Don’t try to be smart with the auto-generation, hard-code everything. We maintain the app template (compose.yml) and this code anyway, so we just need to be aware of each other and keep in sync. This would optimise for trust and collaboration and not “smart” code.
  • Hard-code the secrets/configs required to make the code for generating versions simpler as well.

MVP screens

  • App selection screen: a list of apps, you choose which one you want
  • Install app screen:a form for installing the application
  • Edit app screen: re-load the configuration for an app, ability to update it
  • Delete app screen: remove the app

Development

$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip install -r requirements.txt
$ python first.py / second.py / third.py