Coder Social home page Coder Social logo

isabella232 / electron-build-service Goto Github PK

View Code? Open in Web Editor NEW

This project forked from electron-userland/electron-build-service

0.0 0.0 0.0 349 KB

Package Electron applications in a distributable format on any platform for any platform

Shell 3.19% Makefile 2.22% Go 89.42% Dockerfile 5.17%

electron-build-service's Introduction

electron-build-service

Electron Build Service — package Electron applications in a distributable format on any platform for any platform.

Experimental and not fully feature complete. Currently, Linux targets are supported.

Intended only for programmatic usage.

Free public Electron Build Service is provided and used by electron-builder since 19.48.0.

This readme contains information not about electron-build-server, but about free public electron build service. You can setup self-hosted instance if needed.

Why

  • Free public service for easier packaging Electron applications on any OS for any OS.
  • No need to setup build environment and copy project sources. Just run server and that's all (if for some reasons you cannot use free service).
  • Much faster builds compared to CI servers because no need to checkout project sources, build it and so on.

Please note — it is not Electron issue that you cannot build app for all platforms on one platform.

Pricing

Service not going to be monetized. But build servers costs money. Donations welcome. Do not forget to specify your app name in the form — your donation will affect build time not only indirectly (new build server for all), but directly — specified apps will have higher priority.

Privacy

Only what your end users see and get, are sent to remote build server. electron-builder, that works with your local project sources on your local machine, packs application in a prepackaged format, that contains only what your end users get on installation/run. The whole project sources are not included and remains only on your local machine.

What is sent to remote build server:

  • info.json - this file contains project metadata (e.g. version, name) and effective electron-builder configuration.
  • prepackaged application — e.g. linux-unpacked. This directory in your dist and you can inspect what are sent.
  • Headers x-targets and x-platform that contain information what to build. e.g. {"name": "appImage", "arch": "x64"}.

Communication is encrypted. Custom certificate authority is used and required by client (electron-builder), it means that even if someone will take control over domain, build will be rejected due to incorrect certificate (build agent certificate must be issued only by expected certificate authority).

To disable using Electron Build Service set option remoteBuild: false in the electron-builder.

Server Locations

  • Europe — Amsterdam and Frankfurt.
  • Canada — Beauharnois.

Which build server will be used is not predictable. Your actual location is not used for now to select build server, but planned (by IP address).

See Cloud Hosting Choice about used providers.

Build Time

Total build time consists of upload, queue waiting, build and download.

Upload depends on your CPU, internet connection and location. Download depends on your internet connection (location doesn't matter). Project packed using zstd compression and 50MB will be uploaded in a ~20 seconds for example.

Queue waiting is not predictable for now. In the future build agents will be started on demand.

Build time depends on target.

  • AppImage — 10s.
  • deb — 10s.
  • Snap — 20s (no custom stage packages).

electron-build-service's People

Contributors

develar avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.