I've just made my latest project public: Autoku
(Watch closely above, you might notice a little guest!)
Autoku is a command line tool for creating and configuring Heroku applications using configuration files i.e. "Infrastructure as Code". It allows you to specify exactly how your application should be configured, and modifies it to reflect that.
The tool has reached a point where I'm comfortable sharing it, but be forewarned that it's still in need of plenty of work. There are some quirks that need to be worked out and plenty of automated testing to get done. Seeing as this tool is open source, I welcome any and all contributions.
yarn global add autoku or
npm install -g autoku
Given this yaml file
name: sample-app region: us maintenance: false stack: cedar-14 configVars: SOME_VAR: foo addons: heroku-postgresql: hobby-dev collaborators: - firstname.lastname@example.org features: - log-runtime-metrics - http-session-affinity formation: web: quantity: 1 size: hobby worker: quantity: 1 size: hobby logDrains: - https://example.com:7000 domains: - mydomain.example.com sni: - certificate-chain: "-----BEGIN CERTIFICATE----- ..." private-key: "-----BEGIN RSA PRIVATE KEY----- ..." buildpacks: - heroku/python
autoku deploy ./sample.yaml -k $HEROKU_KEY to have Autoku create (if needed) and configure your application.
Subsequent calls will update the application if
Using Autoku you can maintain the following parts of your Heroku app using configuration files:
- maintenance status
- Configuration Variables
- platform features
- log drains
- sni endpoints
Again, this is a very new piece of software and so it has flaws. There's plenty of problems to solve, like how to store and retrieve sensitive variables, for example. On that note: don't use an Autoku config file to store secrets in a public repository