Giter VIP home page Giter VIP logo

dosyago / chai Goto Github PK

View Code? Open in Web Editor NEW
361.0 11.0 34.0 1.02 MB

chai - Experience Zero Trust security with Chai! Convert and view documents as vivid images right in your browser. No mandatory downloads, no hassleβ€”just pure, joyful security! 🌈

Home Page: https://dosyago.com

License: Other

JavaScript 36.50% Shell 33.90% HTML 29.41% Dockerfile 0.19%
clientless content-disarm-and-reconstruction converter document-viewer-app docx-converter pdf-viewer-application secure-view zero-trust docspunk document-spark

chai's Introduction

🌈 Chai: Your Zero Trust Document Viewer! 🌟

Visit us on GitHub

Please note: right now this repository is mirroring the version of chai used in BrowserBox and has not been tested to run separate to BrowserBox. The goal eventually is to create an isomorphic chai that mirrors BrowserBox's latest changes while continuing to operate independently when not configured nor run as part of BrowserBox remote browser isolation system.

The Future of Secure Document Viewing is Here! πŸŽ‰

Convert documents into spectacular images for each page, and view them securely in your browser! No downloads, no third-party appsβ€”just pure, joyful, Zero Trust goodness! Proudly part of the BrowserBox Pro cloud browser product by Dosyago.


🌈 Why You'll Love Chai 🌈

  • Zero Trust Security: Your document stays with you, always! πŸ›‘οΈ
  • Universal Formats: PDF, DOC, XLSXβ€”we speak all languages! 🌐
  • High-Performance: Get ready to be amazed by the speed! πŸš€
  • Open Source: Built by the community, for the community! πŸ’–

✨ How the Magic Happens ✨

  1. Send Us Your Document: Upload a file or just drop a URL.
  2. Transformation Time: We convert it into a beautiful gallery of high-quality images. 🎨
  3. Enjoy: Open your browser to a vivid, scrollable display of your document. 🌠

🌟 SEO Keywords 🌟

  • Zero Trust Document Viewer
  • Secure PDF Viewer
  • Browser-based Document Viewer
  • Multi-Format Document Viewer

πŸš€ Quick Start Guide πŸš€

# Clone the treasure!
git clone https://github.com/dosyago/chai.git
# Enter the magical kingdom
cd chai
# Set up the wizardry
./scripts/setup.sh
# Ignite the spark!
./scripts/restart.sh

If you just want to run the server temporarily, you can hit npm start instead of the pm2-using ./scripts/restart.sh


🌠 Pro Tips and Tricks 🌠

  • Got SSL certs? Place them in $HOME/sslcerts/ and we'll go HTTPS! 🌐
  • Tweak the secret=<your secret> URL parameter for extra magical powers. 🌟
  • Document lifespan is 3 days by default, but feel free to change that in /public/uploads/clean.sh. πŸ•°οΈ

πŸŽ‰ Turn It into an API πŸŽ‰

Want more? Use the POST endpoint with a secret= parameter to authorize conversion via a secure HTTPS API.


🌈 System Requirements 🌈

We recommend a beefy machine with at least 4 cores and 8 GB RAM for a spellbinding experience.


🌟 Special Thanks 🌟

*No affiliation


πŸ“œ License πŸ“œ

Non-commercial (Polyform Noncommercial 1.0) use or commercial licenses purchasable. For custom licensing options, email us at [email protected].


Enjoy your Documents Responsibly with Chai! 🌈


chai's People

Contributors

dependabot[bot] avatar o0101 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

chai's Issues

error during project setup

At startup ./scripts/setup.sh there is such an error, how to fix it?

npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '>= 14' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '>= 14' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '>= 14' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '>= 14' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '>= 14' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '>= 14' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '>= 14' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '>= 14' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '>= 14' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '>= 14' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }

Filenames with spaces do not work

If chosen from the local filesystem filenames with spaces do not work. This is probably not an issue for our integration as all filenames are changed first...but in the context of opening an archive (for example a Macos Application bundle) we see a failure when a path contains spaces (for instance "App Store"). This needs to be resolved or fixed

Add image resize logic

For example if I google for "spacex pdf" then open in SecureView/p2. I get images that are ~4 Mb in size.

I could easily get the same quality if I used jpeg or compressed or resized these.

capture documents that are archives

for instance a pages document is basically a zip file. so we unarchive it.

but what we should do is view it. We need a list of these types...or rather we need to check anything that presents as an archive against our existing extensions and run them through convert rather than explore

openmp and parallel execution: tuning CPU usage

I noticed when running on mac that convert CPU util never hits above 100% even across multiple cores. Is there a way i can tune this at the command line? Or is it simply an OS level thing, so i need to renice for greater utilization?

Anyway, would be nice to be able to tune that, both up and down for different scenarios

Perhaps renice is the ultimate solution

support deep links

some options are fragment link to page number, and fragment Link to text

"preview mode"

I think a good way to conserve resources for potentially large jobs (large PDFs, 1000s of pages, displaying binary files, etc). Is to limit the output to the first 100 pages. And then put a link in the top that says (decode more). Which just runs the command again, but this time selects any remaining pages (if indeed this is possible!!). There are multiple ways to do this (limit to first mb of binary file) that may need to be different for different types.

xxd mode

Can debug and disassemble page by page to save resources and just send 1 page at a time. This is optimal for large binary files. And combined with a "preview mode" first 10 or 100 pages or whatever, it's an effective way to make it more efficient by limiting / capping total resource usage caused by a conversion.

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.