Coder Social home page Coder Social logo

terryzhao / 1password Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nitecon/1password-legacy

0.0 1.0 0.0 2.54 MB

1Password Linux client.

License: BSD 3-Clause "New" or "Revised" License

JavaScript 44.55% Shell 12.82% Go 25.83% CSS 16.81%

1password's Introduction

#1Password linux edition

1Password_1 1Password_2

Binary Downloads

Currently only the following binaries are available, if you require additional binaries feel free to put in a ticket.

Binary install / usage information

If you downloaded one of the binaries above please follow these steps to run the application.

  • Extract the binary
  • Move the folder to whatever location you please and optionally create a symlink to the <yourfolder>/1pass file that resides in your path.
  • Run the 1pass binary from cli with: ./1pass or create a desktop link for it etc.

About 1Password

This application was started due to the need for a linux 1Password client. There currently is no other packages that even compare closely to the functionality. As seen in the screenshots above this does work however currently it requires compilation / manipulation of the main.go file to indicate where the 1password files live. AND easy of use that 1Password provides. I know there are many others like dashlane / lastpass / keypass etc and I've used them all, but none compares to 1password. I Welcome contributions to this repository as with life sometimes I have time and sometimes I will have no time to work on this but I'm always appreciative of testers, and merge requests.

Getting started with the project

Requirements for building this application:

  • Golang (1.5+)
  • NPM / Node

go get -u https://github.com/Nitecon/1Password

or if you would like to contribute, fork and clone it, (but make sure you check it out under the correct path in golang scope) fix / add functionality and PR back!

Once you have the repo cloned you should be able to immediately build it (if you run on a linux 64 bit host with golang installed + configured) That will upgrade you to the revision that we currently use for the program.

Why electron / some webkit garbage?

Answer to this is simple, it's easy to support multiple OS's which is obviously missing from the official clients. Second and probably most importantly it will allow us an easy way to do non intrusuve updates as the frontend is disconnected from the backend application that actually does the work etc. The frontend in this case electron is only responsible for spawning the application and eventually to check and do updates, downloads of the updates and respawn of the newly downloaded go binary. This greatly simplifies things and simplicity is very dear to me, so live with it. Finally this allows us the ability to build a cross OS app that can be deployed on windows / mac and perhaps in the future support more than basic functionality.

How the application is structured / works and how I can contribute.

There is a couple of different ways you can help.

  • Electron frontend to check a location for updates and downlaod / respawn
    • See the app/main.js file if you are interested in binary names / where it will be stored.
  • If you are a go developer, think of this as a web app
  • Which means we need both GUI / Backend help to interface with the 1Password api's etc.

More questions beyond reading the entry points (app/main.js) for electron and (main.go) for golang feel free to ask / create an issue.

How does 1Password essentially work?

1Password design is based on a frontend / backend setup. The frontend is handled by electron (chromium) as it already has window management etc solved and reduces our need to deal with native gui implementations across multiple OS's. Node.js is responsible for spawning the OS specific golang binary application, and go into listening mode. The go application upon startup responds to the electron application with a random port location that the application is listening to locally, and then redirects to that location for the actual "main" or homepage whatever you want to call it. Beyond the redirection electron will have a couple of menu items over time for getting general application help / checking for updates, downloading updates / respawning the app and exit etc and thats just about it.

1password's People

Contributors

nitecon avatar diegoboston 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.