Code Monkey home page Code Monkey logo

keeweb's Introduction

Free cross-platform password manager compatible with KeePass

This webapp is a browser and desktop password manager compatible with KeePass databases. It doesn't require any server or additional resources. The app can run either in browser, or as a desktop app.

screenshot

Quick Links

Apps: Web, Desktop
Timeline: Release Notes, TODO
On one page: Features, FAQ
Website: keeweb.info
Twitter: kee_web
Donate: OpenCollective, GitHub

Status

The app is quite stable now. Basic stuff, as well as more advanced operations, should be rather reliable.
Looking for a new maintainer, see #2022

Self-hosting

Everything you need to host this app on your server is any static file server. The app is a single HTML file + a service worker (optionally; for offline access). You can download the latest distribution files from gh-pages branch.

If you are using Docker:

  1. put your dh.pem, cert.pem, key.pem to /etc/nginx/external/
  2. run this script:
docker run --name keeweb -d -p 443:443 -p 80:80 -v $EXT_DIR:/etc/nginx/external/ antelle/keeweb

To make Dropbox work in your self-hosted app, go to this Wiki page.

Building

The easiest way to clone all KeeWeb repos is:

curl https://raw.githubusercontent.com/keeweb/keeweb/develop/dev-env.sh | bash -

The app can be built with grunt: grunt (html files will be in dist/).
Desktop apps are built with grunt desktop. This requires some magic and currently works only on CI, you can find more details in the GitHub Actions workflow.

To run the desktop (electron) app without building an installer, build the app with grunt and start it this way:

npm run dev
npm run electron

For debug build:

  1. run npm run dev
  2. open http://localhost:8085

To build desktop apps, use these goals, the result can be found in tmp:

npm run dev-desktop-macos
npm run dev-desktop-windows
npm run dev-desktop-linux

Contributing

Please read contribution guidelines for pull requests.
Here's a list of issues where your help would be very welcome. Also you can help by translating KeeWeb to your language.

Other ways of contribution can be found on this page.

Important notes for pull requests

  • please branch from develop, not master
  • don't edit translation files except base.json, they will be replaced

Donations

KeeWeb is not free to develop. It takes time, requires paid code signing certificates and domains.
You can help the project or say "thank you" with this button:
OpenCollective

You can also sponsor the developer directly on GitHub.

Please note: donation does not imply any type of service contract.

Thank you

Notable contributions to KeeWeb:

License

MIT

keeweb's People

Contributors

aetherinox avatar alex-shpak avatar b3nj5m1n avatar baumhoto avatar bradchristensen avatar coises avatar darkkain avatar dploeger avatar emyarod avatar enricomonese avatar ericbn avatar exromany avatar ffflorian avatar grantmoyer avatar harlemsquirrel avatar ik9999 avatar lawrencium avatar luckyrat avatar magnetikonline avatar meduzen avatar miafoo avatar mrsnix avatar peterdavehello avatar return42 avatar sainaen avatar sauloal avatar trickert76 avatar twang2218 avatar umlx5h avatar whatifwedigdeeper 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  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

keeweb's Issues

Add security level check

It would be nice to add one button for security level check. This button checks all the open files for weak, reused and expanded passwords.
Maybe also to add result table with sortable columns: entries, pwd strength, last updated time.

Use webcrypto for keyfile encryption if it's available

It will give us performance equal or even faster than the native app.
Reference working code:

var data = new Uint8Array(32);
var key = new Uint8Array(32);
var transformRounds = 10000000;
for (var i = 0; i < 32; i++) {
    data[i] = i;
    key[i] = i + 1;
}

function webcr() {
    var now = performance.now();
    var part1, part2;
    var subtle = crypto.subtle || crypto.webkitSubtle || crypto.msSubtle;
    subtle.importKey('raw', key.buffer, { name: 'AES-CBC' }, false, ['encrypt']).then(function(encKey) {
        var zeroData = new Uint8Array(16 * transformRounds);
        subtle.encrypt({ name: 'AES-CBC', iv: data.subarray(0, 16) }, encKey, zeroData).then(function(encData) {
            part1 = asmCrypto.bytes_to_hex(new Uint8Array(encData, transformRounds * 16 - 16, 16));
            checkComplete();
        });
        subtle.encrypt({ name: 'AES-CBC', iv: data.subarray(16) }, encKey, zeroData).then(function(encData) {
            part2 = asmCrypto.bytes_to_hex(new Uint8Array(encData, transformRounds * 16 - 16, 16));
            checkComplete();
        });
    });

    function checkComplete() {
        if (part1 && part2) {
            pre.innerHTML += '\nWebCrypto ' + Math.round(performance.now() - now) + 'ms: ' + part1 + part2;
        }
    }
}

Cmd+S spinner not stopping

On 0.34.0 on OS X (El Capitan) when pressing Cmd+S the little green spinner next to the DB name tab never seems to stop.

Pressing 'Save to file' in the settings menu seems to stop it and ensures the database is saved.

Column size is not remembered

Hi

It would be nice if app remember last width of columns. UX will be improved a lot.

I have several sub folders and on start my left columns look very small.

Cannot edit fields in entries without name

I create new entry, press tab, and entry disappears! :)
In keepass i can create entry without title, btw.
Possible solution: Highlight title with red and not delete entry instantly.

Increase maximum generated password length

Currently the maximum generated password length is only 32 characters. Could this please be increased to at least 64 for those of us who like a really long password?

Confusing versioning

I've just installed app using link for .dmg from this page:

screenshot 2015-11-11 21 37 35

I expect it to be 0.2.0 version. When I check version in the app itself I see this version:

screenshot 2015-11-11 21 41 27

Taking into account message for 87a26a commit I expect to see column sizes preserved between app relaunches. But it seems not working.. On each launch they are default one. Maybe it's expected..

How to debug this app

Hello antelle ! Can you tell me how to debug this app, I'm really new to webpack. THANKS!!!

Request to include vault

Kudos for this! My favorite tool getting even more favored!

I'd like to point you to the vaultproject.io by Hashicorp, which takes secrets management to the next level in distributed environenmets, sure they have no UI included, and both KeePass and your Webport would probably make a very nice complement.

A vault backend to your Keepass app would just be hilarious.

Save on close

Thank you for your project! I was waiting to see it :)

On Mac I don't see any notification that database is not saved before app close. Its easy to lose some changes. It would be nice if you figure out how to integrate it.

cannot add a group

Hi,

The interface works fine for browsing; but I cannot add a new group. Clicking "+" and selecting group doesn't do anything.

Chris.

⌘C does not copy password on MacOSX 10.11.1 (15B42)

I cannot copy the selected password on Mac.
Actually, I cannot copy anything from this application at all.

KeeWeb v0.2.1 (built at 2015-11-10)
Environment: electron v0.34.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) KeeWeb/0.1.0 Chrome/45.0.2454.85 Electron/0.34.0 Safari/537.36

Security improvements

There are two nice improvements to consider:

  1. New version notification without automatic update.
  2. Automatic memory cleanup after few seconds (very nice feature from KeePass).

Minor UI improvements

Last release looks great! Two little things to polish when you have time:

I see a wrong version number in the About page.

screenshot 2015-11-07 05 50 19

Also contrast between icon and background on my mac is a bit odd. Can you use less saturated color for icon's background?

Wrong css font string

Maybe it's something on my side, but... When I tried to compile keeweb myself, I've got the following in stylesheet:
font: normal normal normal 14px/\ 1 FontAwesome;
Which is obviously not working, it breaks all the icons. I tried to investigate this trouble, this line breaks after postcss grunt task. I've read a changelog of cssnano which is executed in postcss and found that there was a fix of this trouble in 3.0.x. When I upgraded cssnano to the latest version, everything gone fine. So... Maybe it's a bug that there is an old version in your package.json?

save file cannot work in mac

the sync icon is always show when i press ⌘+s

image

KeeWeb v0.1.1 (built at 2015-11-04)
Environment: electron v0.34.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) KeeWeb/0.1.1 Chrome/45.0.2454.85 Electron/0.34.0 Safari/537.36

Minimize to tray bug

Windows 10 64-bit

Each time when the application is minimized to tray, the tray receive a new icon
alt text

Time out

Добавить автовыход по времени из keeWeb

Visual glitches

When moving a mouse over an application window, some unwanted visual effects on text appears. It looks like an antialiasing is fastly switching on/off.

OS: Windows 10 Pro.

KeePassX cannot open, alert History element in history entry

open the saved kdbx file with using keeweb, KeePassX alert

Unable to open the database.
History element in history entry

KeeWeb v0.1.1 (built at 2015-11-04)
Environment: electron v0.34.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) KeeWeb/0.1.1 Chrome/45.0.2454.85 Electron/0.34.0 Safari/537.36

Copy/paste in Mac OS app

Hi, thanks for your project!

In Mac Os app copy/paste/select all hotkeys seem to be broken, but "Generate" works, and those named in 'help' work too.

Web-version hosted on your site works fine.

  • Mac os 10.9
  • Browser: chromium

[Error] Dropbox unaccesible from self-hosted page

Dropbox says:
Error (400)
It seems the app you were using submitted a bad request. If you would like to report this error to the app's developer, include the information below.
More details for developers
Invalid redirect_uri: "https://******.ru/keeweb/": It must exactly match one of the redirect URIs you've pre-configured for your app (including the path).

Keep entries displayed in groups and sub-groups

In KeePass, my entries are grouped into their respective groups and sub-groups. As shown in the GIF below:
Example GIF 1 for comparison

However, in Keeweb, they seem to be shown under the main group and their sub-groups. Like this:
Example GIF 2 for comparison

Any way to only have them grouped under their direct sub-groups?

selfhosting

Hi,

First of all thanks for the app
Can u provide more documentation about self hosting keeweb please or maybe someone share dockerfile for it.

Thanks...

Show a passive notification when the password is copied

When you do CTRL-C the application copies password to the clipboard but shows no notification. A passive popup with something like "Password copied to clipboard" would be very useful.

Also it should show a progress-bar for time-out to clearing clipboard if its enabled in settings.

Amazing

Thank you for this. Keep up the awesome work. (notarealissue)

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.