PassWall is an open source password manager API written with Go.
Using this tool, you can safely store your passwords and access them from anywhere with PassWall Web or PassWall Desktop.
The screenshot of Passwall Desktop working with Passwall API is as follows
Currently, this project is focused on storing URL, username and password which is basically called Login at PassWall API.
An admin can;
- View and search logins
- Create login with automatically generated strong password
- Update login
- Delete login
- Import logins from other password managers
- Export logins as CSV format
API documentation available at:
Click to see at Public Postman
This API uses JWT Token to secure endpoints. So user must generate token with /auth/signin first. Then with generated token, all endpoints in API documentation can be reachable.
User information for signin is in config.yml file.
Just change config-sample.yml to config.yml in store folder and update the content of this file for your usage. Then you can run API with standard command:
go run main.go
You can start PassWall API with a database with one line command:
P.S: You should uncomment database service sections
docker-compose up --build
First get into you project folder. Then:
To build
docker build -t passwall-api .
To run
cp ./store/config-sample.yml ./store/config.yml
docker run --name passwall-api --rm -v $(pwd)/store:/app/store -p 3625:3625 passwall-api
To store persistent data (config.yml and passwall.db)
mkdir $HOME/docker/volumes/passwall-api
cp ./store/config-sample.yml $HOME/docker/volumes/passwall-api/config.yml
docker run --name passwall-api -d --restart=always -v $HOME/docker/volumes/passwall-api:/app/store -p 3625:3625 passwall-api
There are different kinds of password managers. Almost all of them can export login information as CSV file. Here is an example CSV file (let's say example.csv).