This repository has been archived on 2020-09-13. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
2020-07-02 15:00:27 +02:00
static Add back that static file 2020-07-01 20:08:00 +02:00
templates Add success rendering 2020-07-02 14:29:15 +02:00
.gitignore Hacking towards the db.json, trimming as much as possible 2020-07-01 10:40:54 +02:00
first.py Use template folders 2020-07-01 20:13:15 +02:00
LICENSE Add LICENSE and README 2020-06-30 20:08:29 +02:00
README.md Add more notes 2020-07-02 14:40:01 +02:00
requirements.txt Hacking towards the db.json, trimming as much as possible 2020-07-01 10:40:54 +02:00
second.py Add some notes 2020-07-02 15:00:27 +02:00

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