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 main 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 build - 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.

License

The HTTP Toolkit desktop application source code is licensed under AGPL-3.0, as documented in this repo.

The binary downloads available in this repo or from httptoolkit.tech however may be used under one of two licenses:

httptoolkit-desktop's People

Contributors

datenreisender avatar dependabot[bot] avatar evanrolfe avatar pimterry avatar shirshak55 avatar uvlad7 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

httptoolkit-desktop's Issues

Document how to do a silent install on Windows

Can you please document how to do a silent install?

Also, how to install at the machine level (e.g. C:\Program Files\httptoolkit) instead of at the current user level (e.g. C:\Users\vagrant\AppData\Local\Programs\httptoolkit)?

This is needed for the future chocolatey package as described at httptoolkit/httptoolkit#258

No UI is shown on Linux

I've tried to test HTTP.Toolkit-linux-x64-0.1.14.zip on Arch Linux, but when httptoolkit is launched from the command line, only an empty Electron window is shown.

$ ./httptoolkit 
Config checked in 2 ms
Certificates setup in 3 ms
Server started in 22 ms
Total startup took 28 ms

Screenshot from 2019-09-26 10-26-50

Building Issue Ubuntu 22.04 (improvement)

Thank you for making this tool!

Just a small thing, after downloading all the files, I received this message on my Ubuntu 22.04 machine:

"โจฏ to build rpm, executable rpmbuild is required, please install: sudo apt-get install rpm"

It would be nice to check the dependencies before downloading everything.

Error on Windows 7

I've installed HTTP Toolkit on Windows 7*64 and after launching got error
chrome_ciPmjUWsDG

Could someone help me please?

npm run start:dev fails to start

I'm trying to figure out how to add features like using existing chrome profiles.

So I tried to setup a local dev env following: https://github.com/httptoolkit/httptoolkit-desktop#contributing

It first seemed to miss "tslib" as a deps

I first tried:

npm run start:dev

It failed so I tried to run the separate steps from
npm run server:setup && npm run start:app

npm run server:setup ๐Ÿ‘

> [email protected] server:setup C:\PROG\Tests\_httptoolkit\httptoolkit-desktop
> ts-node ./setup-server.ts

Downloading httptoolkit-server v1.12.3 for win32-x64
Downloading server from https://github.com/httptoolkit/httptoolkit-server/releases/download/v1.12.3/httptoolkit-server-v1.12.3-win32-x64.tar.gz...
Extracting server to C:\PROG\Tests\_httptoolkit\httptoolkit-desktop
Server download completed
Server setup completed.

Process finished with exit code 0

npm run start:app => ๐Ÿ‘Ž

6:25:24 PM - Starting compilation in watch mode...

error TS6054: File '.'' has an unsupported extension. The only supported extensions are '.ts', '.tsx', '.d.ts'.

6:25:27 PM - Found 1 error. Watching for file changes.

Desktop app doesn't start.

support for offline usage

Hi,

This is quite similar to #27 and I understand the requirement of requiring to download for the first time. I was wondering if I am able to use a internet enabled machine to download, and copy over the (downloaded) content (assets, etc) to a offline machine.

In an air-gapped environment, there is no way to download the content for the first time usage.

I read through the docs, and couldn't find a way for this. If I missed out, please point me to the right place.

Thank you!

Add prettier to auto format?

I usually don't care about formatting as prettier do well for me. Maybe we can add prettier so that we can get consistent formatting?

We can even go one step further by adding husky and ensure prettier formats code before commiting.

[Feature suggestion] Implement Built-in Update Check Feature for Enhanced User Experience

I hope you're doing well. I've been using this fantastic tool for a while now, and I wanted to share some feedback. Currently, there is no built-in way to check for updates within the tool itself. As a user, I find myself having to visit the HTTP Toolkit website, download the Windows version, and then compare the version in the downloaded file's name with the installed version to determine if there's an update available. This process is a bit cumbersome and may lead to some users not staying up-to-date with the latest improvements. This happened to me when I started using the tool. I assumed that the tool would update on its own, but later I realized that I was running a 5-6-month-old version.

By incorporating this feature, users can easily ensure they have the latest version of the tool without the need to manually check the website. This will not only improve the user experience but also help users stay up-to-date with any bug fixes, enhancements, or new features you release.

Once again, thank you for your hard work on this tool, and I hope you'll consider this suggestion.

Edit: I use Http Toolkit on a Windows machine.

Move from Electron Forge to Electron Builder

Forge v5 is not really supported, Forge v6 is still very early, and Builder seems by far the more popular & well supported version for the future. Updating would set us up much better for future plans, and let us immediately update Electron etc, which would likely fix a few small bugs and let us bring back the Windows standalone build (currently broken)

app crashes

the http toolkit app on windows 11 keeps on crashing for me every time i try to start it.
HTTP_Toolkit_vfSjbhtXXN

Install issue

Hi, After running the exe file for windows 10 and 11, I keep getting "Server shut down unexpectedly with code 1" please file an issue with GitHub

`npm run start:dev` tries to start the server

Hi, first of all great piece of software you have created. This is a tiny bug but occurs when you are following the READMEs to run this locally so might hinder people looking to contribute.

Steps to reproduce

  1. Start httptoolkit-server by cloning and running npm start
  2. Start httptoolkit-ui by cloning and running npm run start:web
  3. Start httptoolkit-desktop by cloning and running npm run start:dev

What happens
You get an error:

HTTP Toolkit hit an error: spawn /home/evan/Code/httptoolkit/httptoolkit-desktop/httptoolkit-server/bin/httptoolkit-server ENOENT.

This is because its trying to start the server even though the server is already running. The README says:

npm run start:dev - runs the desktop app, with no built-in server

If I remove these lines then the desktop app starts fine. So I think maybe that just needs to be wrapped in an if statement to check if start or start:dev has been run.

Build with custom UI

I have cloned the UI repository and have applied some modifications. How would I go about building the desktop repo using the UI repo? I've tried building the UI repo and putting the dist contents into a UI folder inside the desktop repo but it doesn't recognize it. I've also tried using start:dev with a path to the built UI dist and a path to the SRC but It didn't work. I'm on windows 10 running Node 17.9.1.

Error with 3221225785

windows 7 home edition 64bit

result: server shutdown unexpectedly with code 3221225785

HTTP Toolkit not open

HTTP Toolkit not open win 7
It was working and now it does not open. This message appears. I scanned and installed the latest version and the same thing
Capture

Building issue

I am unable to build because the server isn't available for MacBook silicon.

Here is the error.

npm run build

> [email protected] build
> npm run build:src && npm run build:electron


> [email protected] build:src
> tsc


> [email protected] build:electron
> ts-node ./setup-server.ts && electron-builder build

Downloading httptoolkit-server v1.9.1 for darwin-arm64
Error: No server available matching /httptoolkit-server-v1.9.1-darwin-arm64.tar.gz/
    at /Users/quantum/Desktop/projects/mike/httptoolkit-desktop/setup-server.ts:78:15
    at Generator.next (<anonymous>)
    at fulfilled (/Users/quantum/Desktop/projects/mike/httptoolkit-desktop/node_modules/tslib/tslib.js:112:62)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)

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.