DEWY

通过轮询存储库进行自动部署的应用程序服务器。「💧 The application server for automated deployment with polling a repository」

Github星跟蹤圖

Installation

To install, use go get:

$ go get -d github.com/linyows/dewy

Usage

When the application functions as a server:

$ cd /opt/yourapp
$ env GITHUB_TOKEN=xxx... SLACK_TOKEN=xxx... \
  dewy server --repository yourname/yourapp \
              --artifact yourapp_linux_amd64.tar.gz \
              --port 3000 \
              -- /opt/yourapp/current/yourapp

When the application and server are separated, or when the server is unnecessary:

$ cd /opt/yourapp
$ env GITHUB_TOKEN=xxx... SLACK_TOKEN=xxx... \
  dewy assets --repository yourname/yourapp \
              --artifact yourapp_linux_amd64.tar.gz

Architecture

Dewy has 3 abstract backends and can be used according to the user's environment.

  • Remote repository backend
  • Notification backend
  • Storage backend

Dewy shares the polling history within the cluster in storage so that it does not communicate excessively to remote repair acquisition.

dewy architecture

? Dewy is not CIOps but GitOps. As in the article on weave works, you do not have to grant permissions externally, so it's simple and easy to solve if problems arise.

Kubernetes anti-patterns: Let's do GitOps, not CIOps!
https://www.weave.works/blog/kubernetes-anti-patterns-let-s-do-gitops-not-ciops

Server mode

Process right after startup:

$ ps axf
/usr/bin/dewy server ...(main process)
 \_ /opt/your-app/current/your-app --args server (child process)

When deployment is started, a new child process is created and the old one is gracefully killed.

$ ps axf
/usr/bin/dewy server ...(main process)
 \_ /opt/your-app/current/your-app --args server (old child process) <-- kill
 \_ /opt/your-app/current/your-app --args server (current child process)

Provisioning

Todo

Repository

  • github release
  • git repo

KVS

  • file
  • memory
  • redis
  • consul
  • etcd

Notification

  • slack
  • email

Contribution

  1. Fork (https://github.com/linyows/dewy/fork)
  2. Create a feature branch
  3. Commit your changes
  4. Rebase your local changes against the master branch
  5. Run test suite with the go test ./... command and confirm that it passes
  6. Run gofmt -s
  7. Create a new Pull Request

Author

linyows

主要指標

概覽
名稱與所有者linyows/dewy
主編程語言Go
編程語言Makefile (語言數: 5)
平台
許可證MIT License
所有者活动
創建於2018-01-14 15:44:41
推送於2025-07-16 05:28:05
最后一次提交
發布數15
最新版本名稱v0.14.0 (發布於 )
第一版名稱v0.1.0 (發布於 )
用户参与
星數37
關注者數2
派生數2
提交數610
已啟用問題?
問題數4
打開的問題數0
拉請求數87
打開的拉請求數0
關閉的拉請求數1
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?