Refactor all project READMEs

This commit is contained in:
mitchell 2019-07-13 16:43:26 -04:00
parent ce8596ce8a
commit 80f9705b19
4 changed files with 109 additions and 50 deletions

69
README.md Normal file
View File

@ -0,0 +1,69 @@
# selfpass
This is the project home of *selfpass*, the self-hosted password manager. This project is
a single-user password manager capable of encrypting/decrypting credentials and storing them
remotely through encrypted transportation. All of which is deployable locally or to popular cloud
platforms such as GCP and AWS.
It is still currently in development. However, the server is already capable of serving a gRPC
based API using mutual TLS encryption, backed by Redis and Docker. It is also capable of being
deployed in a semi-automated fashion locally and to GCP thanks to Docker.
**Server Roadmap**
| Goal | Progress | Comment |
| --- | :---: | --- |
| Support credentials CRUD on gRPC API. | 100% | |
| Enable server-side mutual TLS, using cfssl. | 100% | |
| Deployable on Docker. | 100% | |
| Automatically deployable to GCP using docker-machine and Terraform. | 50% | TODO: Terraform |
| Automatically deployable to AWS using docker-machine and Terraform. | 0% | |
## sp CLI
In addition to the server there is `sp`, which is a fully fledged *selfpass* client capable of
interacting with the whole selfpass API and creating AES-CBC encrypted credentials using a *private
key* and *master password*. All of which is done using mutual TLS and an AES-GCM encrypted config.
**CLI Roadmap**
| Goal | Progress | Comment |
| --- | :---: | --- |
| Support mutual TLS. | 100% | |
| Support credentials CRUD via gRPC. | 100% | |
| Support storage of certs, PK, and host in AES-GCM encrypted config. | 100% | |
| Support AES-CBC encryption of passes and OTP secrets, using MP and PK. | 100% | |
| Support AES-GCM encryption of local files, using MP and PK. | 100% | |
## Client
The newest addition to the *selfpass* project is the client built using Flutter, which makes it
capable of targeting to iOS, Android, and Desktop. It supports all the same features as the CLI tool
using GUIs, with all the same safety and encryption as the CLI.
| Goal | Progress | Comment |
| --- | :---: | --- |
| Support mutual TLS. | 100% | |
| Support credentials CRUD via gRPC. | 25% | TODO: CUD |
| Support storage of certs, PK, and host in shared preferences, encrypted. | 100% | |
| Support AES-CBC encryption of passes and OTP secrets, using MP and PK. | 50% | TODO: decryption |
## Other Info
**Unplanned Goals**
- Sensitive financial info support.
- Miscellaneous text/file encryption and storage support.
- Vault separation.
**Architectural 3rd-party Technologies in Use (and where)**
- Golang (services & protobuf)
- Dart (client & protobuf)
- Flutter (client)
- Go-Kit (services)
- gRPC & Protobuf (all)
- Cobra Commander & Viper Config (spc)
- Redis (services)
- Docker (services)
- Debian (docker images and machines)

View File

@ -1,3 +1,5 @@
# selfpass_client
This is the multi-platform native Selfpass client built with the Flutter framework.
Still under early development.

View File

@ -1,52 +1,5 @@
# selfpass
# services
This is the project home of *selfpass*, the self-hosted password manager. This project is intended
to be a single-user (or **trusted** multi-user) password manager capable of encrypting/decrypting
credentials and storing them remotely through encrypted transportation, all of which is deployable
locally or to popular cloud platforms such as GCP and AWS.
This is project home of *selfpass* API services and the server entrypoint.
It is still currently in development. However, the service is already capable of serving a gRPC based
API using mutual TLS encryption, backed by Redis and Docker. It is also capable of being deployed in
a semi-automated fashion locally and to GCP thanks to Docker.
In addition to the service there is `spc` (**s**elf**p**ass **C**LI), which is a fully fledged *selfpass* client
capable of interacting with the whole selfpass API and creating AES-GCM encrypted credentials using
a *private key* and *master password*. All of which is done using mutual TLS and an AES-GCM
encrypted config.
#### Service Roadmap
| Goal | Progress | Comment |
| --- | :---: | --- |
| Support credentials CRUD on gRPC API. | 100% | |
| Enable server-side mutual TLS, using cfssl. | 100% | |
| Deployable on Docker. | 100% | |
| Automatically deployable to GCP using docker-machine and Terraform. | 50% | TODO: Terraform |
| Automatically deployable to AWS using docker-machine and Terraform. | 0% | |
#### SPC Roadmap
| Goal | Progress | Comment |
| --- | :---: | --- |
| Support credentials CRUD via gRPC. | 100% | |
| Support mutual TLS. | 100% | |
| Support storage of certs, PK, and host in AES-CBC encrypted config. | 100% | |
| Support AES-GCM encryption of passes and OTP secrets, using MP and PK. | 100% | |
| Support AES-GCM encryption of local files, using MP and PK. | 100% | |
#### Unplanned Goals
- Web client.
- Sensitive financial info support.
- Miscellaneous text/file encryption and storage support.
- Vault separation.
#### 3rd-party Technologies in Use (and where):
- Golang (all)
- Go-Kit (all)
- gRPC (all)
- Cobra Commander & Viper Config (spc)
- Redis (service)
- Docker (service)
- Debian (docker images and machines)
For more project level information see the root `README.md`.

35
sp/README.md Normal file
View File

@ -0,0 +1,35 @@
# sp
This is the project home of `sp` the *selfpass* CLI.
To install with Go run `go get -u github.com/mitchell/selfpass/sp`.
Help menu:
```
This is the CLI client for Selfpass, the self-hosted password manager. With this tool you
can interact with the entire Selfpass API.
Usage:
sp [command]
Available Commands:
create Create a credential in Selfpass
decrypt Decrypt a file using your masterpass and secret key
decrypt-cfg Decrypt your config file
delete Delete a credential using the given ID
encrypt Encrypt a file using your masterpass and secret key
get Get a credential info and copy password to clipboard
help Help about any command
init This command initializes SPC for the first time
list List the metadata for all credentials
update Update a credential in Selfpass
Flags:
--config string config file (default is $HOME/.sp.toml)
-h, --help help for sp
--version version for sp
Use "sp [command] --help" for more information about a command.
```
For more project-level information see the root `README.md`.