All Projects → atlassian → Nucleus

atlassian / Nucleus

Licence: other
A configurable and versatile update server for all your Electron apps

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Nucleus

docker base images
Vlad's Base Images for Docker
Stars: ✭ 61 (-77.07%)
Mutual labels:  s3
storage
Go package for abstracting local, in-memory, and remote (Google Cloud Storage/S3) filesystems
Stars: ✭ 49 (-81.58%)
Mutual labels:  s3
qwery
A SQL-like language for performing ETL transformations.
Stars: ✭ 28 (-89.47%)
Mutual labels:  s3
django-docker-s3
Django + S3
Stars: ✭ 43 (-83.83%)
Mutual labels:  s3
WebServerCloudBackups
Automatic backups your web projects bases and files to the clouds via WebDAV.
Stars: ✭ 20 (-92.48%)
Mutual labels:  s3
picgo-plugin-s3
PicGo S3 插件
Stars: ✭ 13 (-95.11%)
Mutual labels:  s3
verneuil
Verneuil is a VFS extension for SQLite that asynchronously replicates databases to S3-compatible blob stores.
Stars: ✭ 169 (-36.47%)
Mutual labels:  s3
Roapi
Create full-fledged APIs for static datasets without writing a single line of code.
Stars: ✭ 253 (-4.89%)
Mutual labels:  s3
serverlessS3Upload
Example of using the Serverless framework to upload files to S3.
Stars: ✭ 35 (-86.84%)
Mutual labels:  s3
simply-static-deploy
WordPress plugin to deploy static sites easily to an AWS S3 bucket.
Stars: ✭ 48 (-81.95%)
Mutual labels:  s3
terraform-aws-serverless-pypi
Serverless PyPI backed by S3
Stars: ✭ 33 (-87.59%)
Mutual labels:  s3
s3-server
Generic S3 server implementation
Stars: ✭ 27 (-89.85%)
Mutual labels:  s3
synapse-s3-storage-provider
Synapse storage provider to fetch and store media in Amazon S3
Stars: ✭ 58 (-78.2%)
Mutual labels:  s3
terraform-aws-s3-bucket
A Terraform module to create a Simple Storage Service (S3) Bucket on Amazon Web Services (AWS). https://aws.amazon.com/s3/
Stars: ✭ 47 (-82.33%)
Mutual labels:  s3
Csi S3
A Container Storage Interface for S3
Stars: ✭ 255 (-4.14%)
Mutual labels:  s3
laravel-s3-tools
This Laravel package contains additional functionality not currently in Laravel for interfacing with Amazon's S3 service (including managing versioned objects).
Stars: ✭ 31 (-88.35%)
Mutual labels:  s3
benji
📁 This library is a Scala reactive DSL for object storage (e.g. S3/Amazon, S3/CEPH, Google Cloud Storage).
Stars: ✭ 18 (-93.23%)
Mutual labels:  s3
Shrine
File Attachment toolkit for Ruby applications
Stars: ✭ 2,903 (+991.35%)
Mutual labels:  s3
Burry.sh
Cloud Native Infrastructure BackUp & RecoveRY
Stars: ✭ 260 (-2.26%)
Mutual labels:  s3
s3-mongo-backup
Mongodb backups to S3
Stars: ✭ 18 (-93.23%)
Mutual labels:  s3

Nucleus Server

Build Status npm status

A configurable and versatile update server for all your Electron apps

Features

  • Multiple applications
  • Multiple channels for each application
  • Companion publisher for electron-forge to greatly simplify release publishing
  • Backed by a static file store so minimal server costs
  • One command to run so insanely simple to set up
  • Staged Rollouts
    • macOS
    • Windows
  • Latest Downloads - Static URL's for downloading the latest version of your application
  • Platform Support:
    • macOS
    • Windows
    • Linux - RedHat
    • Linux - Debian

Electron Version Requirements

Please note that using Nucleus requires that you use Electron >=2.0.0.

Setup

Docker

You'll need to set up your own docker image using a Dockefile like below.

FROM atlassian/nucleus

COPY config.js /opt/service/config.js

Then running your built docker image will run nucleus on port 8080.

Manual

git clone https://github.com/atlassian/nucleus.git nucleus-server
cd nucleus-server
cp config.template.js config.js
yarn
yarn dev

This will launch Nucleus running on your local machine with a local file store and a SQLite database.

Configuration

All the config options are thoroughly documented and explained in the config.template.js file in this repository.

Uploading Releases

Release uploading is explained inside Nucleus itself, for more advanced information check out the Uploading Docs.

More Information

Please see the following documents for more information on Nucleus and how it works.

FAQ

Why does this use a static file store, why not use a traditional update server?

$$$, static file stores quite simply cost less to run than arrays of update servers

Can I use CloudFront to speed up my downloads?

Yes, check out the CloudFront section of the S3 config inside config.template.js.

How do I switch to this from Update Server X?

Switching update servers in an Electron app is quite simple

  1. Modify your autoUpdater code to point to this server (follow the instructions on your app page inside Nucleus)
  2. Release a new update for your application on your existing update server with this change
  3. Release all future updates on Nucleus :)

Is this really awesome?

Pretty sure it is :D

How do I set this up in a production environment?

You can use the published version of this module nucleus-server which has an exported CLI command (nucleus). You then run the command with the first argument being a path to your config file. E.g.

NODE_ENV=production nucleus path/to/config.js

Please ensure you add redis session config and a proper (not local) authentication method when running in a production environment.

To enable logging you need to set DEBUG=nucleus*.

System Requirements

  • Node >= 8
  • Yarn
  • Linux
    • createrepo
    • rpmsign
    • dpkg-scanpackages
    • dpkg-scansources
    • gpg
    • apt-ftparchive
  • macOS / Windows
    • docker
    • gpg

Contributors

Pull requests, issues and comments welcome. For pull requests:

  • Add tests for new features and bug fixes
  • Follow the existing style
  • Separate unrelated changes into multiple pull requests

See the existing issues for things to start contributing.

For bigger changes, make sure you start a discussion first by creating an issue and explaining the intended change.

Atlassian requires contributors to sign a Contributor License Agreement, known as a CLA. This serves as a record stating that the contributor is entitled to contribute the code/documentation/translation to the project and is willing to have it used in distributions and derivative works (or is willing to transfer ownership).

Prior to accepting your contributions we ask that you please follow the appropriate link below to digitally sign the CLA. The Corporate CLA is for those who are contributing as a member of an organization and the individual CLA is for those contributing as an individual.

Team

Samuel Attard
Samuel Attard

License

Apache 2.0 © Atlassian Pty Ltd

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].