Heroku + AWS Fargate = Herogate ๐ Deploy and manage containerized applications like Heroku on AWS.
Herogate wraps management services on AWS and provides a Heroku like interface. All updates are done via CloudFormation, including targeting CodePipleline, CodeBuild, AWS Fargate, CodeCommit etc.
When pushing the new source code to CodeCommit, the Pipeline executes and a new image is built on CodeBuild. Finally, CloudFormation updates Fargate's service with the created image.
For details, you can see internal section in the documentation.
Currently, you need to build from the source code when installing.
$ go get -d github.com/wata727/herogate
$ cd $GOPATH/src/github.com/wata727/herogate
$ make install
No. This is a highly experimental project. It should not be used in a production environment.
Currently, we don't provide a migration path from the old version. This means that you cannot bump up version without downtime.
You can create an app on AWS by the create
command:
$ herogate create your-first-app
Creating app... 0%
This process takes about 5 minutes. After that, the remote repository is automatically added locally as herogate
.
$ git remote -v
herogate ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/your-first-app (fetch)
herogate ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/your-first-app (push)
You can see the created app via browser.
$ herogate open
Congratulations! ๐ Your first app is now available.
You can run arbitrary containers by creating Procfile.
$ cat Procfile
web: bundle exec rails server
worker: bundle exec rake jobs:work
You can easily deploy new app with git push
.
$ git push herogate master
Deployment logs can be seen with herogate logs
. Unlike Heroku, git push
is completed soon.
$ herogate logs
Please check the documentation for details.
This project requires Go 1.9 or higher. You can build and install with make install
.
$ make install