Categories
All Softwares
Sublime Text VSCode Binaries Postman TeamViewer Firebase Visual Studio Code Contentful Tribe Circle Notion Datadog NewRelic Vmix Archbee Docker Desktop Bitly GitHub BitBucket Upsource Zapier Make Medium substack Facebook Amazon S3 Maya 3DS MAX Adobe Substance Airtable Roam Research Azure DevOps Retool Powerapps Appsheet 1Password Plex Emby Netflix Apple HomeKit Algolia Lightshot Confluence Toad tableau Data Studio Salesforce SAP Calendly Google photos Bloomberg Terminal BigQuery ML Google AutoML Tables Shopify BigCommerce Google Drive Redis Memcached Windows media player WhatsApp Heroku Render Looker Quizlet Google Analytics Auth0 Trello Elasticsearch Adobe Premiere Pro Zerotier Zoom Skype Docker Polypane Google Chrome Microsoft Edge Safari Gitbook Gmail Google Vertex AI Kdb+ Amplitude Google Docs Typora Roboflow ML Kit Azure Intercom Quicken YNAB Uptime Robot Figma npm TigerGraph Amazon Neptune Fivetran Okta YouTube LastPass Mailchimp Sendinblue Adobe Acrobat Pocket Reddit Onenote Shogun DaVinci Resolve UiPath Taliscale Adobe Lightroom FullStory LogRocket RescueTime Boxcryptor LaunchDarkly ArcGIS AWS SageMaker Tailscale NordVPN WooCommerce Twitter Dropbox Nagios Zabbix Prtg Google Cloud Webflow ActiveCampaign Quickbooks .Net Maui Airplane.dev Pipedream Evernote Autodesk AutoCAD HCL Connections Google Sheets Excel Rundeck Ansible Tower Salt Twilio Pastebin Zoho Unity3D GameMaker AWS Config GCP Cloud Asset inventory AWS GuardDuty Unreal Engine (UE4) Jira YouTrack Stytch Suite CRM Greynoise Photoshop LinkTree BlackBoard Zendesk Discord Rollout.io Disqus Oracle Fusion ERP Cloud Odoo Microsoft Dynamics Alfred Sophos Firewall UniFi Security Gateway Azure AD Doodle Office Online Power BI MicroStrategy Qlik Ampache Socrata Drone CI IOS WordPress IDM FDM Ninja Download Manager McAfee Google Meet WIX cPanel LucidChart HubSpot Landbot Typeform CCleaner Ecwid Spotify Stackstrom N8N Substance Painter Onshape SketchUp Canny Miro XMind Segment GoogleForms Adobe Illustrator MultiSim Proteus Prezi Slack Microsoft Teams SumSub JAWS Wetransfer Framer Microsoft 365 Telegram Threema Signal Lokalise Crowdin Phrase WolframAlpha Dataclay Templater Bot WorkOS FrontEgg Snorkel AI ZohoCRM Voicemod Chromatic Percy POEditor Transifex Microsoft Office Selenium vBulletin Xenforo Hightouch Logseq Bundlephobia Webpack Esbuild Rollup Session Berty WHMCS Stripe Billing Google Camera ImgIX Netlify Google Keep SocialPilot Hootsuite Firebase Analytics Access Manager Wordle Amazon Redshift Snowflake Microsoft Active Directory ClubHouse Tenable Nessus Obsidian Scrivener IDA Neo4j Pushbullet Pushover TinkerCAD Fusion360 SolidWorks TablePlus Cryptomator Glasswire Comodo Firewall Coyim Splunk Hungry Bring Panther IFTTT openHAB Alexa Google Home Twitch Asana IBM Watson Discovery FL Studio Ableton Google Maps Gather Aseprite Instagram Agora Wowza Docuware ELO Office Apollo GraphQL Supabase Hasura Stepzen Postgraphile Lyket.dev Kahoot Clubdesk Fairgate Bandicam Revoltchat Element Imply Pinot MongoDB Oracle Peoplesoft CurseForge Google Tag Manager MS SQL AppWrite Nhost AWS Kendra QnA Maker Apigee Google Cloud IoT Core Microsoft OneNote Amazon API Gateway Qualtrics Sprig Hotjar Sibelius Finale Dorico Snyk Common Room Orbit Toggl Track Adobe Scan Microsoft Lens CamScanner Vercel Stack Overflow Traktor Pro 3 Markup CMS Documentation Atlassian Confluence Raindrop Akeneo Salsify Informatica SuiteCRM VtigerCRM Cruise Tesla autopilot Waymo Adobe Animate Pencil2D Men&Mice Solarwinds Infoblox Device42 AWS WAF
Padloc

Padloc

Open Source Alternative to 1Password, LastPass
Language
JavaScript
Stars
2758
Watchers
2758
Forks
257
Open Issues
102
Last Updated
5/9/2025

REAMDE.md

Padloc

Simple, secure password and data management for individuals and teams.

Deploy to DigitalOcean

About

This repo is split into multiple packages:

Package Name Description
@padloc/core Core Logic
@padloc/app Web-based UI components
@padloc/server The Backend Server
@padloc/pwa The Web Client, a Progressive Web App.
@padloc/locale Package containing translations and other localization-related things
@padloc/electron The Desktop App, built with Electron
@padloc/cordova Cordova project for building iOS and Android app.
@padloc/tauri Cross-platform native app, powered by Tauri
@padloc/extension Padloc browser extension

How to use

As you can see in the About section, there are lots of different components to play with! But at a minimum, in order to set up and use your own instance of Padloc you'll need to install and configure the Server and Web Client. In practice, there a few different ways to do this, but if you just want to install and test Padloc locally, doing so is really quite easy:

git clone git@github.com:padloc/padloc.git
cd padloc
npm ci
npm start

The web client is now available at http://localhost:8080!

In-depth guides on how to host your own "productive" version of Padloc and how to build and distribute your own versions of the desktop and mobile apps are coming soon!

Contributing

All kinds of contributions are welcome!

If you want to report a bug or have a feature request, please create an issue.

If you have question, feedback or would just like to chat, head over to the discussions section.

If you want to contribute to Padloc directly by implementing a new feature or fixing an existing issue, feel free to create a pull request! However if you plan to work on anything non-trivial, please do talk to us first, either by commenting on an existing issue, creating a new issue or by pinging us in the dissusions section!

To learn how to get started working on Padloc, refer to the Development section of the readme.

Security

For a security design overview, check out the security whitepaper.

Development

Setup

Setting up your dev environment for working with Padloc is as simple as:

git clone git@github.com:padloc/padloc.git
cd padloc
npm ci

This may take a minute, so maybe grab a cup of ☕️.

Dev Mode

To start "dev mode", simply run

npm run dev

from the root of the project. This will start the backend server (by default listening on port 3000), as well as the PWA (available on http://localhost:8080) by default.

The server and PWA port can be changed vie the PL_TRANSPORT_HTTP_PORT and PL_PWA_PORT environvent variables, respectively. For more configuration options, check out the Conguration section of the server and pwa.

Formatting

This project is formatted with Prettier. To re-format all files using our .prettierrc.json specification, run the following from the root of the project.

npm run format

To simply check whether everything is formatted correctly, you can use the following command:

npm run format:check

Testing

To run unit tests, use:

npm run test

Cypress end-to-end tests can be run via:

npm run test:e2e

And to start cypress tests in "dev mode":

npm run test:e2e:dev

Adding / removing dependencies

Since this is a monorepo consisting of multiple packages, adding/removing to/from a single package can be less than straightforward. The following commands are meant to make this easier.

To add a dependency to a package, run:

scope=[package_name] npm run add [dependency]

And to remove one:

scope=[package_name] npm run remove [dependency]

For example, here is how you would add typescript to the @padloc/server package:

scope=server npm run add typescript

Note: We're trying to keep the number and size of third-party dependencies to a minumum, so before you add a dependency, please think twice if it is really needed! Pull requests with unnecessary dependencies will very likely be rejected.

Updating The Version

The Padloc project consists of many different subpackages. To simplify versioning, we use a global version for all them. This means that when releasing a new version, the version of all subpackages needs to be updated, regardless of whether there have been changes in them or not. To update the global version accross the project, you can use the following command:

npm run version [semver_version]

Deployment / Publishing

Padloc has a lot of different components that all need to be built/released/published in different ways. To manage this complexitiy, we have compiled all deployment steps for all components in a single Github Workflow. To release a new version, simply:

  1. Update project version
  2. Commit and push.
  3. Run the Publish Release action.

Licensing

This software is published under the GNU Affero General Public License. If you wish to acquire a commercial license, please contact us as sales@padloc.app.