✨ Sparkle Motion ✨
Sparkle Motion manages appcasts and application binaries in S3, making
Sparkle updates a dance in the park.

Getting Started
Sparkle Motion is a tiny web application, so the easiest way to get started is
to deploy to Heroku.
S3
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/*"
]
}
]
}
Heroku
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
).
GitHub
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.
Configuration
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')
Deploy 🤘
git push heroku master
heroku open
Usage
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.
Xcode Integration
There is a release script that can be used to automatically upload and sign releases.
URLs
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
✨ 💫 💃 🌟
