dshoreman / servidor

A modern web application for managing servers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Deployments feature

dshoreman opened this issue · comments

While working on project creation progress, I had this brainwave that at some point it'd be a good idea to have dedicated deployments handling bits. Essentially when you POST to /projects/42/applications it would come with a deployment_uuid that would be used for progress reports and the like.

Perks

  • Ability to check if a deployment is already happening before starting a new one
  • If a deploy fails at any point, its status can be updated to reflect that
  • If logs are saved to a deployment, they can be retrieved should the page be refreshed

In future, things like branch and/or commit SHA could be saved with the deployment, adding the possibility of re-deploying a previous "build" if a new commit breaks things etc.. Better yet, if the app 'source' (ie github/bitbucket/whomever) were stored in its own table, we could easily reference it from both the project and any deployments.

Example endpoints

POST /projects/69/deploy -- to deploy a project
{ uuid: 'aef1c239d', complete: false }

GET /deployments/aef1c239d -- to view status of a deployment
{ uuid: 'aef1c239d', project_id: 69, complete: false }

Brainwave (maybe):

Rather than a fully-fledged deployments system, it may be enough to simply create projects as a draft as soon as the "New Project" page is entered.

Would add a bit of complexity in terms of checking for existing drafts (or having redundant drafts build up), but it would mean we have a Project ID before the progress modal is initialised, thus the monitor can be setup in the background.

One downside though: we still wouldn't immediately know wether to display steps for app or redirect creation.