{"id":13472964,"url":"https://github.com/padloc/padloc","last_synced_at":"2025-05-13T20:22:32.006Z","repository":{"id":11753002,"uuid":"14284411","full_name":"padloc/padloc","owner":"padloc","description":"A modern, open source password manager for individuals and teams.","archived":false,"fork":false,"pushed_at":"2025-03-29T04:40:17.000Z","size":50533,"stargazers_count":2758,"open_issues_count":102,"forks_count":257,"subscribers_count":36,"default_branch":"main","last_synced_at":"2025-05-11T14:48:24.869Z","etag":null,"topics":["cryptography","end-to-end-encryption","javascript","lit-element","lit-html","password-generator","password-manager","progressive-web-app","pwa","tauri","typescript"],"latest_commit_sha":null,"homepage":"https://padloc.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/padloc.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2013-11-10T21:06:35.000Z","updated_at":"2025-05-09T18:13:19.000Z","dependencies_parsed_at":"2023-11-26T13:16:34.019Z","dependency_job_id":"304bc10b-5837-4371-96ca-7d730804e75a","html_url":"https://github.com/padloc/padloc","commit_stats":{"total_commits":3230,"total_committers":34,"mean_commits":95.0,"dds":0.096594427244582,"last_synced_commit":"1d2e9129d65afad72cf7fefc80fd5eb20b5671d9"},"previous_names":[],"tags_count":73,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/padloc%2Fpadloc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/padloc%2Fpadloc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/padloc%2Fpadloc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/padloc%2Fpadloc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/padloc","download_url":"https://codeload.github.com/padloc/padloc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253584480,"owners_count":21931545,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cryptography","end-to-end-encryption","javascript","lit-element","lit-html","password-generator","password-manager","progressive-web-app","pwa","tauri","typescript"],"created_at":"2024-07-31T16:00:59.586Z","updated_at":"2025-05-13T20:22:31.981Z","avatar_url":"https://github.com/padloc.png","language":"JavaScript","readme":"# Padloc\n\n[![](https://github.com/padloc/padloc/workflows/Run%20Tests/badge.svg?branch=main)](https://github.com/padloc/padloc/actions?workflow=Run+Tests)\n\nSimple, secure password and data management for individuals and teams.\n\n[![Deploy to DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://cloud.digitalocean.com/apps/new?repo=https://github.com/padloc/padloc/tree/main)\n\n## About\n\nThis repo is split into multiple packages:\n\n| Package Name                            | Description                                                                                      |\n| --------------------------------------- | ------------------------------------------------------------------------------------------------ |\n| [@padloc/core](packages/core)           | Core Logic                                                                                       |\n| [@padloc/app](packages/app)             | Web-based UI components                                                                          |\n| [@padloc/server](packages/server)       | The Backend Server                                                                               |\n| [@padloc/pwa](packages/pwa)             | The Web Client, a [Progressive Web App](https://developers.google.com/web/progressive-web-apps). |\n| [@padloc/locale](packages/locale)       | Package containing translations and other localization-related things                            |\n| [@padloc/electron](packages/electron)   | The Desktop App, built with Electron                                                             |\n| [@padloc/cordova](packages/cordova)     | Cordova project for building iOS and Android app.                                                |\n| [@padloc/tauri](packages/tauri)         | Cross-platform native app, powered by [Tauri](https://github.com/tauri-apps/tauri)               |\n| [@padloc/extension](packages/extension) | Padloc browser extension                                                                         |\n\n## How to use\n\nAs you can see in the [About](#about) section, there are lots of different\ncomponents to play with! But at a minimum, in order to set up and use your own\ninstance of Padloc you'll need to install and configure the\n[Server](packages/server) and [Web Client](packages/pwa). In practice, there a\nfew different ways to do this, but if you just want to install and test Padloc\nlocally, doing so is really quite easy:\n\n```sh\ngit clone git@github.com:padloc/padloc.git\ncd padloc\nnpm ci\nnpm start\n```\n\nThe web client is now available at `http://localhost:8080`!\n\nIn-depth guides on how to host your own \"productive\" version of Padloc and how\nto build and distribute your own versions of the desktop and mobile apps are\ncoming soon!\n\n## Contributing\n\nAll kinds of contributions are welcome!\n\nIf you want to **report a bug or have a feature request**, please\n[create an issue](https://github.com/padloc/padloc/issues).\n\nIf you **have question, feedback or would just like to chat**, head over to the\n[discussions](https://github.com/padloc/padloc/discussions) section.\n\nIf you want to **contribute to Padloc directly** by implementing a new feature\nor fixing an existing issue, feel free to\n[create a pull request](https://github.com/padloc/padloc/pulls)! However if you\nplan to work on anything non-trivial, please do talk to us first, either by\ncommenting on an existing issue, creating a new issue or by pinging us in the\ndissusions section!\n\nTo learn how to get started working on Padloc, refer to the\n[Development](#development) section of the readme.\n\n## Security\n\nFor a security design overview, check out the\n[security whitepaper](security.md).\n\n## Development\n\n### Setup\n\nSetting up your dev environment for working with Padloc is as simple as:\n\n```sh\ngit clone git@github.com:padloc/padloc.git\ncd padloc\nnpm ci\n```\n\nThis may take a minute, so maybe grab a cup of ☕️.\n\n### Dev Mode\n\nTo start \"dev mode\", simply run\n\n```sh\nnpm run dev\n```\n\nfrom the root of the project. This will start the backend server (by default\nlistening on port `3000`), as well as the PWA (available on\n`http://localhost:8080`) by default.\n\nThe server and PWA port can be changed vie the `PL_TRANSPORT_HTTP_PORT` and\n`PL_PWA_PORT` environvent variables, respectively. For more configuration\noptions, check out the **Conguration** section of the\n[server](packages/server#configuration) and [pwa](packages/pwa#configuration).\n\n### Formatting\n\nThis project is formatted with [Prettier](https://prettier.io/). To re-format\nall files using our [.prettierrc.json](.prettierrc.json) specification, run the\nfollowing from the root of the project.\n\n```sh\nnpm run format\n```\n\nTo simply check whether everything is formatted correctly, you can use the\nfollowing command:\n\n```sh\nnpm run format:check\n```\n\n### Testing\n\nTo run unit tests, use:\n\n```sh\nnpm run test\n```\n\nCypress end-to-end tests can be run via:\n\n```sh\nnpm run test:e2e\n```\n\nAnd to start cypress tests in \"dev mode\":\n\n```ssh\nnpm run test:e2e:dev\n```\n\n### Adding / removing dependencies\n\nSince this is a monorepo consisting of multiple packages, adding/removing\nto/from a single package can be less than straightforward. The following\ncommands are meant to make this easier.\n\nTo add a dependency to a package, run:\n\n```sh\nscope=[package_name] npm run add [dependency]\n```\n\nAnd to remove one:\n\n```sh\nscope=[package_name] npm run remove [dependency]\n```\n\nFor example, here is how you would add `typescript` to the `@padloc/server`\npackage:\n\n```sh\nscope=server npm run add typescript\n```\n\n**Note**: We're trying to keep the number and size of third-party dependencies\nto a minumum, so before you add a dependency, please think twice if it is really\nneeded! Pull requests with unnecessary dependencies will very likely be\nrejected.\n\n### Updating The Version\n\nThe Padloc project consists of many different subpackages. To simplify\nversioning, we use a global version for all them. This means that when releasing\na new version, the version of all subpackages needs to be updated, regardless of\nwhether there have been changes in them or not. To update the global version\naccross the project, you can use the following command:\n\n```sh\nnpm run version [semver_version]\n```\n\n### Deployment / Publishing\n\nPadloc has a lot of different components that all need to be\nbuilt/released/published in different ways. To manage this complexitiy, we have\ncompiled all deployment steps for all components in a single Github Workflow. To\nrelease a new version, simply:\n\n1. [Update project version](#updating-the-version)\n2. Commit and push.\n3. Run the\n   [Publish Release](https://github.com/padloc/padloc/actions?workflow=Publish+Release)\n   action.\n\n## Licensing\n\nThis software is published under the\n[GNU Affero General Public License](LICENSE). If you wish to acquire a\ncommercial license, please contact us as\n[sales@padloc.app](mailto:sales@padloc.app?subject=Padloc%20Commercial%20License).\n","funding_links":[],"categories":["JavaScript","Applications","Security","javascript","TypeScript","Apps"],"sub_categories":["Security","Utilities","Password","🛠️ Utilities (79)","Open Source"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpadloc%2Fpadloc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpadloc%2Fpadloc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpadloc%2Fpadloc/lists"}