Giter VIP home page Giter VIP logo

httptoolkit-desktop's Introduction

HTTP Toolkit Desktop Build Status

This repo contains the desktop build setup for HTTP Toolkit, a beautiful, cross-platform & open-source HTTP(S) debugging proxy, analyzer & client.

Looking to file bugs, request features or send feedback? File an issue or vote on existing ones at github.com/httptoolkit/httptoolkit.

What is this?

This repo is responsible for building HTTP Toolkit into standalone desktop installers & executables that users can run directly on Windows, Linux & Mac.

HTTP Toolkit consists of two runtime parts: a UI, written as a single-page web application, and a server, written as a node.js CLI application.

This repo builds a single executable that:

  • Includes the latest build of httptoolkit-server
  • When run:
    • Starts the server in the background
    • Opens the UI in an Electron window
    • Kills the server when closed

This means this is mostly Electron configuration & setup, and build configuration for the executable and various installers. It's built using Electron Builder.

This isn't the only way to run HTTP Toolkit! It's the most convenient option for most users, but it's also completely possible to run the server as a standalone tool and open the UI (hosted at https://app.httptoolkit.tech) in any browser you'd like.

Note that the resulting executable doesn't autoupdate (at the moment). Instead both the server (as an oclif app) and the web UI (via service workers) include their own auto-update functionality.

The builds themselves are done on GitHub Actions, and tagged master builds are automatically published from there as github releases.

Contributing

If you want to change the behaviour of the HTTP Toolkit desktop shell (but not its contents), change how it's built, or add a new target platform or format, then you're in the right place ๐Ÿ‘.

To get started:

  • Clone this repo.
  • npm install
  • To build & run the electron app locally:
    • npm start - runs the desktop app, downloading the latest live server & using the live UI from app.httptoolkit.tech.
      • This is useful if you're working on just the desktop app, and want to see your changes with the real live environment.
    • npm run start:dev - runs the desktop app, with no built-in server using the UI from localhost:8080
      • This effectively assumes you're bringing your own working UI & server, and is useful for working on this.
      • You can start both from the UI project with just npm start, to work on the UI within the desktop app.
      • Alternatively, you can run npm start in the server project, and npm run start:web in the UI project, to work on the server or both.
  • To build distributable packages:
    • npm run make - this will attempt to build & package the desktop app for your current platform

A few tips:

  • Electron dev behaviour isn't identical to production build behaviour, make sure you check your changes in a real built version.
  • Most distributable build configuration is in under the build field in package.json.
  • To fully build packages, you may find some platforms complain about that signing certificates are required. You'll probably need to unset fields like forceCodeSigning to disable that.
  • In CI, pull requests don't receive secret environment variables, so builds may fail. Confirm that that's what's happening, and if so that's ok - the team will manually build & evaluate PR changes to resolve this.

httptoolkit-desktop's People

Contributors

dependabot[bot] avatar evanrolfe avatar pimterry avatar

Watchers

 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.