Skip to content
This repository was archived by the owner on Feb 26, 2024. It is now read-only.
This repository was archived by the owner on Feb 26, 2024. It is now read-only.

Project versioning and backups #192

Description

@saitho

Right now rollbacks were only tested on new projects.
DIfferent project versions should be kept on the server to allow rollbacks on existing projects.

Current folder structure:

  • <STACKHEAD_ROOT>/projects/<PROJECT_NAME> (<PROJECT_ROOT>)
    • Caddyfile
    • docker-compose.yaml
    • runtime/container
      • data
      • hooks

Envisioned folder structure:

  • <STACKHEAD_ROOT>/projects/<PROJECT_NAME> (<PROJECT_ROOT>)
    • deployments
      • current (Symlink to current version, e.g. v3) – probably no need to be referenced by StackHead, but nice to see the current version. The current version could also be written to a version file e.g. <PROJECT_ROOT>/CURRENT_VERSION
      • v1
        • Caddyfile
        • docker-compose.yaml
        • container
          • hooks
        • resources.json – Serialized list of resources created during the deploymend. Can be used by destroy to remove the project
      • v2
      • ...
      • vn
    • backups – contains folders named by backup timestamp. For backups of container data folders
    • data
      • container – container data. Versioning of is probably not needed, as we could create a backup before each deployment and restore that during rollback

Questions:

  • Should version number also be added into container names, so the new version can be created before shutting down the old containers (zero downtime deployment)?
  • How to deal with backups of running applications??? Especially databases may lose data -> research needed

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions