All Projects → passwall → Passwall Server

passwall / Passwall Server

Licence: agpl-3.0
PassWall Server is the core backend infrastructure for PassWall platform

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Passwall Server

PASSY
This project has moved to GitLab.com
Stars: ✭ 14 (-97.14%)
Mutual labels:  password-manager, password
PasswordX
Offline password manager for iOS/macOS
Stars: ✭ 26 (-94.68%)
Mutual labels:  password-manager, password
mopass
A OpenSource Clientless & Serverless Password Manager
Stars: ✭ 40 (-91.82%)
Mutual labels:  password-manager, password
Upash
🔒Unified API for password hashing algorithms
Stars: ✭ 484 (-1.02%)
Mutual labels:  api, password
Purse
GPG asymmetric (YubiKey) password manager
Stars: ✭ 313 (-35.99%)
Mutual labels:  password, password-manager
mpw-rs
Master Password in Pure Rust
Stars: ✭ 34 (-93.05%)
Mutual labels:  password-manager, password
gpgpwd
Moved to GitLab
Stars: ✭ 22 (-95.5%)
Mutual labels:  password-manager, password
Passky-Desktop
Desktop application for Passky (password manager)
Stars: ✭ 47 (-90.39%)
Mutual labels:  password-manager, password
Freepass
[DEPRECATED] password manager thing
Stars: ✭ 308 (-37.01%)
Mutual labels:  password, password-manager
Devops Api
Golang + Beego 编写 提供开发/运维常用操作的HTTP API接口: 手机归属地查询、IP地址查询、工作日节假日判断、微信报警、钉钉报警、2步验证、密码存储、发送邮件、生成随机密码等功能
Stars: ✭ 258 (-47.24%)
Mutual labels:  api, password
turaku-client
Web / Electron client application for Turaku
Stars: ✭ 27 (-94.48%)
Mutual labels:  password-manager, password
Pick
A secure and easy-to-use CLI password manager for macOS and Linux
Stars: ✭ 359 (-26.58%)
Mutual labels:  password, password-manager
pwm
自用的密码管理工具
Stars: ✭ 34 (-93.05%)
Mutual labels:  password-manager, password
Passky-Server
API and Database for Passky (password manager)
Stars: ✭ 77 (-84.25%)
Mutual labels:  password-manager, password
PassHUD
A HUD-style interface for pass on macOS
Stars: ✭ 31 (-93.66%)
Mutual labels:  password-manager, password
password-list
Password lists with top passwords to optimize bruteforce attacks
Stars: ✭ 174 (-64.42%)
Mutual labels:  password-manager, password
buttercup-importer
🎣 3rd-party archive importer for Buttercup
Stars: ✭ 39 (-92.02%)
Mutual labels:  password-manager, password
pass-audit
A pass extension for auditing your password repository.
Stars: ✭ 71 (-85.48%)
Mutual labels:  password-manager, password
OormiPass
Free open source cross platform password manager
Stars: ✭ 50 (-89.78%)
Mutual labels:  password-manager, password
Buttercup Core
🎩 The mighty NodeJS password vault
Stars: ✭ 340 (-30.47%)
Mutual labels:  password, password-manager

PassWall Server

PassWall Server is the core backend for open source password manager PassWall platform. Using this server, you can safely store your passwords and access them from anywhere.

License GitHub issues Build Status Coverage Status Docker Pull Status
Deploy

Support

I promise all the coffee you have ordered will be spent on this project
Become a Patron

Clients

PassWall Server can be used with PassWall Desktop

API Documentation

API documentation available at Postman Public Directory

PassWall has both server and client side encryption. So when creating user to work with Postman you should use already SHA256 encrypted password in JSON or use a Postman Pre-request Script to encrypt json in form.

Postman Pre-request Script Usage
While creating a user via Postman, you should send a post request to /auth/signup endpoint. In the request use the JSON schema below as raw body. Do not change {{password}}, it is an environment variable in Postman.

{
    "name": "Erhan Yakut",
    "email": "[email protected]",
    "master_password": "{{password}}"
}

Then in Pre-request Script, copy and paste the javascript code below. You should change the password in the code.

var newPassword = '123456' // Change this

pm.environment.set('password', newPassword);

var encryptedPassword = CryptoJS.SHA256(pm.environment.get('password')).toString();

pm.environment.set('password',encryptedPassword);

console.log(encryptedPassword);

Click on this link to visit our Youtube playlist.

Database support

PassWall works with PostgreSQL databases.

Configuration

When PassWall Server starts, it automatically generates config.yml in the folders below:
MacOS: $HOME/Library/Application Support/passwall-server
Windows: $APPDATA/passwall-server
Linux: $HOME/.config/passwall-server

Security

  1. PassWall uses The Advanced Encryption Standard (AES) encryption algorithm with Galois/Counter Mode (GCM) symmetric-key cryptographic mode. Passwords encrypted with AES can only be decrypted with the passphrase defined in the config.yml file.

  2. Endpoints are protected with security middlewares against attacks like XSS.

  3. Against SQL injection, PassWall uses Gorm package to handle database queries which clears all queries.

  4. There is rate limiter for signin attempts against brute force attacks.

Environment Variables

These environment variables are accepted:

Server Variables:

  • PORT
  • PW_SERVER_USERNAME
  • PW_SERVER_PASSWORD
  • PW_SERVER_PASSPHRASE
  • PW_SERVER_SECRET
  • PW_SERVER_TIMEOUT
  • PW_SERVER_GENERATED_PASSWORD_LENGTH
  • PW_SERVER_ACCESS_TOKEN_EXPIRE_DURATION
  • PW_SERVER_REFRESH_TOKEN_EXPIRE_DURATION

Database Variables

  • PW_DB_NAME
  • PW_DB_USERNAME
  • PW_DB_PASSWORD
  • PW_DB_HOST
  • PW_DB_PORT
  • PW_DB_LOG_MODE

Backup Variables

  • PW_BACKUP_FOLDER
  • PW_BACKUP_ROTATION
  • PW_BACKUP_PERIOD

Development usage

Install Go to your computer. Pull the server repo. Execute the command in server folder.

go run ./cmd/passwall-server

Docker

docker-compose up --build

Hello Contributors

  1. Don't send too much commit at once. It will be easier for us to do a code review.

  2. Be sure to take a look at the dev branch. The version I am working on is there.

  3. First try to fix // TODO:s in the code.

  4. Then you can contribute to the development by following the mile stones.

  5. Don't mess with the user interface. The design guide has not been released yet.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].