Giter VIP home page Giter VIP logo

buttercup-desktop's Introduction

Buttercup Desktop

Buttercup for Desktop - Mac, Linux and Windows

Buttercup Latest version Chat securely on Keybase

Buttercup Desktop screenshot ²

About

Buttercup is a free, open-source and cross-platform password manager, built on NodeJS with Typescript. It uses strong industry-standard encryption to protect your passwords and credentials (among other data you store in Buttercup vaults) at rest, within vault files (.bcup). Vaults can be loaded from and saved to a number of sources, such as the local filesystem, Dropbox, Google Drive or any WebDAV-enabled service (like ownCloud or Nextcloud ¹).

Why you need a password manager

Password management is a crucial tool when you have any online presence. It's vital that all of your accounts online use strong and unique passwords so that they're much more difficult to break in to. Even if one of your accounts are breached, having unique passwords means that the likelihood of the attacker gaining further access to your accounts portfolio is greatly reduced.

Without a password manager, such as Buttercup, it would be very tedious to manage different passwords for each service. If you remember your passwords it's a good sign that they're not strong enough. Ideally you should memorise a primary password for your vault, and not know any of the account-specific passwords off the top of your head.

Precautions

Buttercup securely encrypts your data in protected files, but this security is only as strong as the weakest component - and this is very often the primary password used to lock and unlock your vault. Follow these basic guidelines to ensure that your vault is safe even if exposed:

  • Choose a unique password that is not used elsewhere
  • Use a highly-varied set of different characters - such as alpha-numeric, symbols and spaces
  • Use a long password - the longer the better
  • Don't include words or names in the password
  • Never share your password with anyone

It is very important to note that no one associated with Buttercup will ever request your personal vault or its primary password. Do not share it or any of its related details with anyone. Developers or contributors working with Buttercup may request example vaults created via your system to try and reproduce issues, but please ensure to never use your real password or store actual credentails within such vaults.

Versions

The current stable version is 2. We recommend upgrading if you're still on v1, as it is no longer being actively maintained. You can still browse the v1 source and documentation here.

Buttercup is built on Node 20 LTS - no other platform is officially supported.

Operating Systems

Buttercup Desktop is officially supported on:

  • Most linux distributions (x64), such as Ubuntu
  • MacOS (x64, Apple Silicon¹)
  • Windows 10 / 11 (x64)

¹ No builds yet

Arch Linux

Buttercup is also available for Arch via the AUR. This release channel is maintained by our community.

Some Arch users have reported the occasional segfault - if you experience this please try this solution before creating an issue.

32bit builds (x86)

Buttercup no longer provides 32bit builds, due to the complexity of supporting them in the build pipeline.

Portability

Buttercup provides a portable Windows version. Look for the release with the name Buttercup-win-x64-2.0.0-portable.exe where 2.0.0 is the version and x64 is the architecture.

Although not explicitly portable, both the Mac zip and Linux AppImage formats are more or less standalone. They still write to the standard config/log destinations, however.

To make the most of the portable version, some enviroment variables are required:

Enviroment Variables Description
BUTTERCUP_HOME_DIR If provided buttercup will use this path for saving configrations , user settings or even temprorary files
BUTTERCUP_CONFIG_DIR Stores user settings, not allways needed but can be used to change config location or will default to BUTTERCUP_HOME_DIR Optional: Only activates if BUTTERCUP_HOME_DIR is provided
BUTTERCUP_TEMP_DIR Same as BUTTERCUP_CONFIG_DIR but stores temprory files Optional: Only activates if BUTTERCUP_HOME_DIR is provided

Sample ButtercupLauncher.bat for Windows portable executable

This example stores user settings and cache on the portable folder, but stores temprory files on the host PC.

@ECHO OFF
if not exist "%~dp0Buttercup" mkdir "%~dp0Buttercup"
set "BUTTERCUP_HOME_DIR=%~dp0Buttercup"
set "BUTTERCUP_TEMP_DIR=%temp%"
start %~dp0Buttercup.exe %*

Configuration

Configuration files are stored in OS-specific locations.

Command-Line arguments

The following arguments can be provided to Buttercup, but are all optional.

Argument Description
--autostart Flag passed to Buttercup when launched automatically by the OS.
--hidden Disables the automatic opening of the main window upon launch.
--no-update Disables automatic update checking. Not recommended: Use at your own risk.

App config

Application configuration.

  • Linux: $XDG_CONFIG_HOME/Buttercup/desktop.config.json
  • Mac: ~/Library/Preferences/Buttercup/desktop.config.json
  • Windows: $APPDATA/Buttercup/Config/desktop.config.json

Vault storage

Storage of connected vaults (not actual vault contents).

  • Linux: $XDG_DATA_HOME/Buttercup/vaults.json
  • Mac: ~/Library/Application\ Support/Buttercup/vaults.json
  • Windows: $LOCALAPPDATA/Buttercup/Data/vaults.json

Offline vault cache

Stored copies of vaults for offline use.

  • Linux: $(node -e "console.log(os.tmpdir())")/$(whoami)/Buttercup/vaults-offline.cache.json
  • Mac: $(node -e "console.log(os.tmpdir())")/Buttercup/vaults-offline.cache.json
  • Windows: $(node -e "console.log(os.tmpdir())")/Buttercup/vaults-offline.cache.json

Logs

Logs are written for all app sessions.

  • Linux: ~/.local/state/Buttercup-nodejs or $XDG_STATE_HOME/Buttercup-nodejs
  • Mac: ~/Library/Logs/Buttercup-nodejs
  • Windows: %LOCALAPPDATA%\Buttercup-nodejs\Log

Note that logs for portable Windows applications will be written to the same directory that the executable resides in.

Published Applications

You can view the current releases on the Buttercup Desktop releases page. Under each release are some assets - the various binaries and installers for each platform Buttercup supports. When installing or downloading, make sure to pick the right operating system and architecture for your machine.

Note that at this time, Buttercup only supports x64 (64 bit) machines.

Linux

We provide an AppImage build for Linux, because it is the most desirable format for us to release. AppImages support auto-updating, a crucial feature (we feel) for a security application. The other build types do not.

Important: Buttercup uses Electron to build its desktop application, which relies on AppImageLauncher for correct integration of AppImages into the host OS. Features like Google Drive authentication and correct .desktop icon use is only performed when integrating via AppImageLauncher. We highly recommend that you install it.

We won't be supporting formats like Snapcraft, deb or rpm images as they do not align with our requirements. Issues requesting these formats will be closed immediately. Discussion on topics like this should be started on other social channels.

Development

To begin developing features or bug-fixes for Buttercup Desktop, make sure that you first have Node v16 or greater installed with NPM v7 or greater.

Once cloned, make sure to install all dependencies: npm install. After that, open 2 terminals and run npm run start:build on one, and then npm run start:main in the other.

Contributing

There are a number of ways you can contribute to Buttercup!

Features & Bug fixes

We welcome pull-requests and issues that serve to better Buttercup as a platform. Please remain respecful (this is free & open source after all) with your ideas and observations, and always consider opening an issue before starting on a substantial pull request.

Translations

Buttercup relies on the community for translating its interfaces into languages besides English. We use British English (en_GB) as the base language, and translate into all others that our contributors are kind enough to provide.

To add support for a language, make sure to add the translations for our vault UI first. After that, you can follow these instructions to add another language to the desktop application:

  • Copy the source/shared/i18n/translations/en.json file to the language code you're providing (eg. fi.json for Finnish).
  • Edit the source/shared/i18n/translations/index.ts file and:
    • Import the new JSON file: import fi from "./fi.json";.
    • Export the imported constant inside the default export already in that file.

Contributions

This project exists thanks to all the people who contribute. [Contribute].

We'd also like to thank:

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

Notes and Caveats

  • ¹ External services like Nextcloud and ownCloud must be configured correctly to support access via the web (using WebDAV). CORS must permit access from any source.
  • ² Buttercup (including MadDev Oy) is not affiliated with any of the companies represented in screenshots or preview images.

buttercup-desktop's People

Contributors

abocide6714 avatar alireza-ahmadi avatar amin3mej avatar antoine-amara avatar asood123 avatar bovirus avatar brooksbecton avatar derek-li avatar devlanda avatar fmommeja avatar hugo-cardenas avatar julianpoemp avatar lalitsom avatar loktacar avatar lukaswerfel avatar matteocrippa avatar mpourismaiel avatar naitian avatar oxalin avatar perry-mitchell avatar ph1p avatar pleswi avatar quintushr avatar rakotstargazer avatar sallar avatar satler-git avatar situplastik avatar snhasani avatar theoricher avatar wolffles 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

buttercup-desktop's Issues

Entries searching

I have two entries 'Buttercup' and 'Some other website with a cup' and searching 'cup' hides both of them. Also searching any other phrase does the same thing.

Key-file support alongside password

It's not safe that all the archive is accessible by entering a pass-phrase, especially when the pass-phrase doesn't need to be strong. While by generating a key file and suggesting to keep it away from the system, the data will be more secure.

Saving and loading operations are slow

As a result of the increasing pbkdf2 iterations (buttercup/buttercup-core#46) the UI has gotten slow, since all operations are sync in the app.
The best way to fix this would be make backbone model operations async so the UI doesn’t wait for backend ops to complete before updating elements.

No confirmation for deleting a document

Hi there.
The UI of ButterCup is amazing. However, it would be nice to as for confirmation before deleting a password document. As it is saved automatically on Mac, when a user delete a document accidentally, theres no way to get it back.

Password verification field

I had a typo while setting the password, there is no way to restore it. so adding a verification field might help.

Selecting a password displays the "save" option

  1. Open a document you've already created
  2. Click the binoculars to show the password
  3. Click the password and click CTRL+A
  4. The save option appears at the bottom even though there have been no changes

Minimum master password strength

Master passwords should be of a certain strength, without exception. This is more to stop stupidly simple passwords rather than enforcing crazy-complex ones.

Cloud based sync

Since this is a cross-platform service, Offering cloud based saving should be an option, makes it easier to access the same bcup on different environments.

Improve password/alert UI

The password/alert UI is incompatible with the overall look of the system. Changing it would be nice.

Improve empty states

Right now the empty states are just blank. There should be an illustration or text for each of them to show that we don’t have any data yet.

Can't open app after grunt install

I tried to fork and work on buttercup but I get this error after running grunt build; electron ..

Error message

It's worth mentioning I had no problem installing Buttercup using the .deb package.

  • node v5.2.0
  • npm v3.3.12
  • electron v0.36.7

Better sidebar tree

The sidebar tree needs more work, especially on adding and removing groups.

New database should have slightly better defaults

E.g. something like this could be a nice screen to see after creating the new database:

image

.. that way users don't have to loop for the new group button, then name it something, then click on it and find the new document -button. Most likely the first action they want to do when creating a new database is to add a new document to it.

Add standard OS X menu to main window

This would enable system window management and copy & paste on various parts of the UI for OS X. Applications without the 'Edit' and 'Window' menus cannot do this by default.

Update notifications

Once we’ve shipped, we’ve shipped. We can’t ask people to always re-download our stuff. Let’s add an auto-update functionality according to this guide.

grunt build Failure

Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.7/bin/grunt", line 9, in
load_entry_point('grunt==0.1.1', 'console_scripts', 'grunt')()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/grunt/render.py", line 94, in main
render_from_file(**options)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/grunt/render.py", line 54, in render_from_file
with codecs.open(input, encoding=encoding) as f:
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/codecs.py", line 884, in open
file = builtin.open(filename, mode, buffering)
IOError: [Errno 2] No such file or directory: 'build'

Unable to delete any non-default folder

When using buttercup, I am unable to delete any folder apart from "General". If I make a new folder at the top level, or within "General", I don't get the icon to delete them.

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.