Electron Release Server
A node web server which serves & manages releases of your Electron App, and is fully compatible with Squirrel Auto-updater (which is built into Electron).
Note: Despite being advertised as a release server for Electron applications, it would work for any application using Squirrel.
If you host your project on your Github and do not need a UI for your app, then Nuts is probably what you're looking for. Otherwise, you're in the same boat as I was, and you've found the right place!
Advisory Notices
IMPORTANT:
- Version
2.0.0
updates many packages, most importantly to SailsJS 1.x.x. At a bare minimum, you must renameconnections
todatastores
in yourconfig/local.js
file. You may need to make further changes depending on how significantly you have customized the project. - The release of Angular
1.6.0
has broken allelectron-release-server
versions prior to1.4.2
. Please use the instructions under theMaintenance
heading below to update your fork! Sorry for the inconvenience. - Since release
1.5.0
several models have changed to accommodate new features. Please use the instructions under Migration to update your database! Sorry for the inconvenience.
Features
- β¨ Docker π³ support (thanks to EvgeneOskin)!
β¨ Awesome release management interface powered by AngularJS- Authenticates with LDAP, easy to modify to another authentication method if needed
⨠Store assets on server disk, or Amazon S3 (with minor modifications)⨠Code-less app customization through env variables⨠Simple but powerful download urls (NOTE: when no assets are uploaded, server returns404
by default):/download/latest
/download/latest/:platform
/download/:version
/download/:version/:platform
/download/:version/:platform/:filename
/download/channel/:channel
/download/channel/:channel/:platform
/download/flavor/:flavor/latest
/download/flavor/:flavor/latest/:platform
/download/flavor/:flavor/:version
/download/flavor/:flavor/:version/:platform
/download/flavor/:flavor/:version/:platform/:filename
/download/flavor/:flavor/channel/:channel
/download/flavor/:flavor/channel/:channel/:platform
- β¨ Support pre-release channels (
beta
,alpha
, ...) ⨠Support multiple flavors of your app⨠Auto-updates with Squirrel:- Update URLs provided:
/update/:platform/:version[/:channel]
/update/flavor/:flavor/:platform/:version[/:channel]
- Mac uses
*.dmg
and*.zip
- Windows uses
*.exe
and*.nupkg
- Update URLs provided:
- β¨ Auto-updates with NSIS differential updates for Windows
- β¨ Serve the perfect type of assets:
.zip
for Squirrel.Mac,.nupkg
for Squirrel.Windows,.dmg
for Mac users, ... β¨ Specify date of availability for releases- β¨ Release notes endpoint
/notes/:version/:flavor?
NOTE: if you don't provide the appropriate type of file for Squirrel you won't be able to update your app since the update endpoint will not return a JSON. (.zip
for Squirrel.Mac, .nupkg
for Squirrel.Windows).
Deploy it / Start it
Follow our guide to deploy Electron Release Server.
Auto-updater / Squirrel
This server provides an endpoint for Squirrel auto-updater, it supports both OS X and Windows.
Documentation
Check out the documentation for more details.
Building Releases
I highly recommend using electron-builder for packaging & releasing your applications. Once you have built your app with that, you can upload the artifacts for your users right away!
Maintenance
You should keep your fork up to date with the electron-release-server master.
Doing so is simple, rebase your repo using the commands below.
git remote add upstream https://github.com/ArekSredzki/electron-release-server.git
git fetch upstream
git rebase upstream/master
Credit
This project has been built from Sails.js up by Arek Sredzki, with inspiration from nuts.