Skip to content

About

How it Works

graph LR
  Webhook/CI & CLI --> API -->|Project Deployment| p[Git Pull] --> d[Docker Deploy] --> n[Notify] 
  API -->|Page Upload| f[Extract Payload] --> c[Config Update] --> n
  • create a project pointing to a git repository, authenticate by ssh key or PAT
  • a project can have several deployment environments pointing to different branches
  • deployments are triggered by cli/API or Webhook/CI
  • environment variables are available on runtime and can be referenced within compose.yml
  • environment determines additional files for merging, ie production corresponds to compose.production.yml:

deployment setup examples

  • deploy environment dev from project source repo branch develop immediately on webhook call
  • deploy environment staging from project source repo when latest docker image tag has been updated or webhook
  • deploy environment production on changes in infrastructure repo with fixed versions
  • deploy static content by pushing directly to API simply by curl
Project Database Relationship
graph LR
    p[Project]
    p --> g[Git-Key]
    p -->|branch| e[Environment] --> v[Variables] --> Key & Value
Repository Example Structure
compose.yml
compose.dev.yml
compose.staging.yml
compose.production.yml

deployment merges files matching the environment name, ie:

docker compose -f compose.yaml -f compose.production.yaml ..
$DATA_DIR/ structure
data
├── repositories
   └── my-project
       ├── environment-branch
       ├── default-dev
       ├── staging-main
       └── production-v1.2.3
└── pages
    └── example.dev
Was this page helpful?