Sparkle Motion manages appcasts and application binaries in S3, making Sparkle updates a dance in the park.
Sparkle Motion is a tiny web application, so the easiest way to get started is to deploy to Heroku.
If you don't have a S3 bucket set up yet, go do that now. While you're in the AWS console, get credentials for a new user in IAM that only has the permissions needed to access the S3 bucket:
{
"Statement": [
{
"Action": [
"s3:*"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::YOUR_BUCKET",
"arn:aws:s3:::YOUR_BUCKET/*"
]
}
]
}
You will need a Heroku account and the Heroku Toolbelt installed to deploy.
git clone git://github.com/cupcake/sparklemotion.git
cd sparklemotion
heroku create -b https://github.com/kr/heroku-buildpack-go.git
Heroku will create an app and tell you the URL (eg.
https://sparkle-motion-42.herokuapp.com
).
Sparkle Motion uses GitHub for authentication, so create a new
app. Set the Main URL
to the
URL of your new Heroku app. The Callback URL
should be
https://APP_DOMAIN/auth/return
where APP_DOMAIN
is the domain of your Heroku
app.
heroku config:add \
APP_NAME=<the name of your application (no spaces)> \
AWS_ACCESS_KEY_ID=<from the IAM S3 user> \
AWS_SECRET_ACCESS_KEY=<from the IAM S3 user> \
S3_BUCKET=<the name of the S3 bucket> \
GITHUB_CLIENT_ID=<from the GitHub app> \
GITHUB_CLIENT_SECRET=<from the GitHub app> \
BASE_URL=<the Heroku app URL> \
AUTHORIZED_USERS=<comma separated GitHub usernames> \
REQUIRE_SIGNATURE=1 # remove this line if you sign apps with a certificate from Apple \
API_KEY=$(openssl rand -hex 16 | tr -d '\r\n')
COOKIE_SECRET=$(openssl rand -hex 16 | tr -d '\r\n')
git push heroku master
heroku open
Pushing to the stable
channel will also push to the beta
and alpha
channels, and pushing to the beta
channel will also push to the alpha
channel.
There is a release script that can be used to automatically upload and sign releases.
Alpha Appcast: https://s3.amazonaws.com/BUCKET/APPNAME-alpha.xml
Beta Appcast: https://s3.amazonaws.com/BUCKET/APPNAME-beta.xml
Stable Appcast: https://s3.amazonaws.com/BUCKET/APPNAME-stable.xml
Application Release: https://s3.amazonaws.com/BUCKET/APPNAME-VERSION.EXT
Release Notes: https://s3.amazonaws.com/BUCKET/APPNAME-VERSION.html
✨ 💫 💃 🌟