Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/areksredzki/electron-release-server
A fully featured, self-hosted release server for electron applications, compatible with auto-updater.
https://github.com/areksredzki/electron-release-server
angularjs electron electron-application nodejs squirrel update-server updater
Last synced: about 1 month ago
JSON representation
A fully featured, self-hosted release server for electron applications, compatible with auto-updater.
- Host: GitHub
- URL: https://github.com/areksredzki/electron-release-server
- Owner: ArekSredzki
- License: mit
- Created: 2016-02-28T10:06:53.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-04-22T04:21:09.000Z (7 months ago)
- Last Synced: 2024-10-11T08:02:40.266Z (about 1 month ago)
- Topics: angularjs, electron, electron-application, nodejs, squirrel, update-server, updater
- Language: JavaScript
- Homepage:
- Size: 540 KB
- Stars: 2,089
- Watchers: 35
- Forks: 548
- Open Issues: 66
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Electron Release Server
[![GitHub stars](https://img.shields.io/github/stars/ArekSredzki/electron-release-server.svg)](https://github.com/ArekSredzki/electron-release-server/stargazers)
[![GitHub forks](https://img.shields.io/github/forks/ArekSredzki/electron-release-server.svg)](https://github.com/ArekSredzki/electron-release-server/network)
[![Join the chat at https://gitter.im/ArekSredzki/electron-release-server](https://badges.gitter.im/ArekSredzki/electron-release-server.svg)](https://gitter.im/ArekSredzki/electron-release-server?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
>A node web server which serves & manages releases of your [Electron](http://electron.atom.io) App, and is fully compatible with [Squirrel](https://github.com/Squirrel) Auto-updater (which is built into Electron).[![Electron Release Server Demo](https://j.gifs.com/wpyY1X.gif)](https://youtu.be/lvT7rfB01iA)
_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](https://github.com/GitbookIO/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 rename `connections` to `datastores` in your `config/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 all `electron-release-server` versions prior to `1.4.2`. Please use the instructions under the `Maintenance` 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](docs/database.md#migration) to update your database! Sorry for the inconvenience.## Features
- :sparkles: Docker :whale: support (thanks to EvgeneOskin)!
- :sparkles: Awesome release management interface powered by [AngularJS](https://angularjs.org)
- Authenticates with LDAP, easy to modify to another authentication method if needed
- :sparkles: Store assets on server disk, or Amazon S3 (with minor modifications)
- Use pretty much any database for persistence, thanks to [Sails](http://sailsjs.org) & [Waterline](http://waterlinejs.org)
- :sparkles: Code-less [app customization through env variables](docs/customization.md)
- :sparkles: Simple but powerful download urls (**NOTE:** when no assets are uploaded, server returns `404` 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`
- :sparkles: Support pre-release channels (`beta`, `alpha`, ...)
- :sparkles: Support multiple flavors of your app
- :sparkles: Auto-updates with [Squirrel](https://github.com/Squirrel):
- Update URLs provided:
- `/update/:platform/:version[/:channel]`
- `/update/flavor/:flavor/:platform/:version[/:channel]`
- Mac uses `*.dmg` and `*.zip`
- Windows uses `*.exe` and `*.nupkg`
- :sparkles: Auto-updates with [NSIS differential updates for Windows](docs/update-windows.md#NSIS-differential-updates)
- :sparkles: Serve the perfect type of assets: `.zip` for Squirrel.Mac, `.nupkg` for Squirrel.Windows, `.dmg` for Mac users, ...
- :sparkles: Specify date of availability for releases
- :sparkles: 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](docs/deploy.md).
## Auto-updater / Squirrel
This server provides an endpoint for [Squirrel auto-updater](https://github.com/atom/electron/blob/master/docs/api/auto-updater.md), it supports both [OS X](docs/update-osx.md) and [Windows](docs/update-windows.md).
## Documentation
[Check out the documentation](docs/) for more details.## Building Releases
I highly recommend using [electron-builder](https://github.com/loopline-systems/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.
```bash
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](https://github.com/GitbookIO/nuts).## License
[MIT License](LICENSE.md)