• Stars
    star
    164
  • Rank 229,330 (Top 5 %)
  • Language
    PHP
  • License
    MIT License
  • Created about 3 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Self-hosted Password Manager based on Laravel 10 + PHP 8 + MySQL 8. Gestor de Contraseñas basado en Laravel 10 + PHP 8 + MySQL 8.

Castellano

Password Manager

This application allows complete password management for multiple types of services (web, ssh, phones, wifi, etc ...).

The data of each application is stored encrypted in the database.

The encryption of this data is done using the value of APP_KEY as salt, so it is very important not to regenerate this key or you will lose access to all registered applications.

Don't even think about installing this project in an environment without HTTPS protection

The main features are:

  • User Management.
  • Team management.
  • Access to applications limited by teams.
  • Multiple types of data records.
  • Encryption in database.
  • Authentication by certificate and double factor with Google Authenticator.
  • Using certificate, you can to disable password auth.
  • Logged every time a user accesses, consults or updates an application.
  • Allows private or shared applications.
  • Limited access by country.
  • It has a chrome extension that connects via API and directly accesses the credentials of the web you are visiting.
  • API Password control on every different IP.

This project has an extension for Google Chrome that you can download at https://github.com/eusonlito/Password-Manager-Chrome

Requirements

  • Apache2 (nginx does not support authentication with certificate limited to certain routes)
  • PHP 8.1 or higher (php-curl php-imagick php-mbstring php-mysql php-zip)
  • MySQL 8.0
  • ImageMagick

If PHP 8.1 is not the default PHP version on your system you must use the binary prefix to execute composer and artisan, for example:

php8.1 /usr/local/bin/composer install --no-dev --optimize-autoloader --classmap-authoritative --ansi
php8.1 artisan key:generate

Local Installation

  1. Create the database in MySQL.

  2. Clone the repository.

git clone https://github.com/eusonlito/Password-Manager.git
  1. Copy the .env.example file as .env and fill in the necessary variables.
cp .env.example .env
  1. Install composer dependencies (remember that we always use the PHP 8.1 binary).
composer install --no-dev --optimize-autoloader --classmap-authoritative --ansi
  1. Generate the application key. Remember to backup this key in a secure location (.env > APP_KEY).
php artisan key:generate
  1. Regenerate the caches.
composer artisan-cache
  1. Launch the initial migration.
php artisan migrate
  1. Launch the seeder.
php artisan db:seed --class=Database\\Seeders\\Database
  1. Configure the cron task for the user related to the project:
* * * * * cd /var/www/password.domain.com && php artisan schedule:run >> storage/logs/artisan-schedule-run.log 2>&1
  1. Create the main user.
php artisan user:create [email protected] --name=Admin --password=StrongPassword2 --admin
  1. Configure the server for web access with DOCUMENT_ROOT in public.

  2. Profit!

Upgrade

The platform update can be done easily with the composer deploy command executed by the user who manages that project (usually www-data).

Docker Installation

Currently only for testing (no certificate support).

  1. Clone the repository
git clone https://github.com/eusonlito/Password-Manager.git
  1. [OPTIONAL] Copy file docker/.env.example to .env and configure your own settings
cp docker/.env.example .env
  1. [OPTIONAL] Copy file docker/docker-compose.yml.example to docker/docker-compose.yml and configure your own settings
cp docker/docker-compose.yml.example docker/docker-compose.yml
  1. Build docker images (will ask for the sudo password)
./docker/build.sh
  1. Start containers (will ask for the sudo password)
./docker/run.sh
  1. Create the admin user (will ask for the sudo password)
./docker/user.sh
  1. Open your web browser and goto http://localhost:8080

  2. Remember to add a web server (apache2, nginx, etc...) as a proxy to add features as SSL.

Upgrade

  1. Update the project source
git pull
  1. Build docker images (will ask for the sudo password)
./docker/build.sh
  1. Start containers (will ask for the sudo password)
./docker/run.sh
  1. Open your web browser and goto http://localhost:8080

Certificate Authentication

In order to authenticate with a certificate, we must add the following configuration in Apache's VirtualHost:

<Location /user/profile/certificate>
        SSLVerifyClient require
        SSLVerifyDepth 2
        SSLOptions +StdEnvVars +ExportCertData +OptRenegotiate
</Location>

<Location /user/auth/certificate>
        SSLVerifyClient require
        SSLVerifyDepth 2
        SSLOptions +StdEnvVars +ExportCertData +OptRenegotiate
</Location>

SSLCACertificateFile /var/www/password.domain.com/resources/certificates/certificates.pem

The /user/profile/certificate location allows obtaining the certificate identifier automatically from the user profile itself, and /user/auth/certificate is the authentication path by certificate.

The OptRenegotiate option allows Apache to independently renegotiate the connection per path, something that nginx does not support.

Commands

Create User:

php artisan user:create {--email=} {--name=} {--password=} {--admin} {--readonly} {--teams=}

User update:

php artisan user:update {--id=} {--email=} {--name=} {--password=} {--certificate=} {--tfa_enabled=} {--admin=} {- readonly=} {--enabled=} {--teams=}

Help!

I need help to improve english translations on this project.

Default locale files are located in resources/lang/es and should be translated into resources/lang/en.

Also, I need to translate the English Readme.

Thanks!

Screenshots

Password-Manager

Password-Manager

Password-Manager

Password-Manager

Password-Manager

Password-Manager

Password-Manager

Password-Manager

Password-Manager

Password-Manager

Password-Manager

Password-Manager

More Repositories

1

laravel-Meta

HTML Meta Tags management package available for for Laravel >= 5 (Including 10)
JavaScript
187
star
2

jquery.applink

Launch native apps from web page links for mobile and desktop devices
JavaScript
135
star
3

redsys-TPV

Controlador en PHP para pasarelas de pago (TPV) Redsys / Sermepa / Servired
PHP
60
star
4

laravel-Packer

CSS, Javascript and Images packer/processors to Laravel
JavaScript
57
star
5

GPS-Tracker

GPS Tracker platform for Sinotrack ST-90x, OsmAnd and Queclink devices built with Laravel 10 + PHP 8.1 and MySQL 8. Plataforma GPS Tracker para dispositivos Sinotrack ST-90x, OsmAnd y Queclink creada con Laravel 10 + PHP 8.1 y MySQL 8.
PHP
40
star
6

Sublime-Text-ChatGPT

A Sublime Text Plugin/Package to connect with OpenAI ChatGPT
Python
25
star
7

crypto

Plataforma multiusuario para gestión de cryptos en PHP 8.1 y Laravel 10
PHP
23
star
8

Password-Manager-Chrome

Extensión de Chrome para el Gestor de Contraseñas
JavaScript
19
star
9

laravel-database-cache

Cache Database Query results on Laravel
PHP
17
star
10

php-changes-cheatsheet

HTML
16
star
11

magento2-language-es_es

Magento 2 Spanish (Spain) language package - Paquete de idioma Español (España) para Magento 2
PHP
13
star
12

redsys-Fake

Emulador de TPV redsys remoto para pruebas de pagos
PHP
12
star
13

PHPCan

A PHP Framework as tool for world domination.
PHP
11
star
14

PHPFileNavigator

PHPfileNavigator is state-of-the-art, open source web based application to complete manage your files and folders.
PHP
11
star
15

redsys-Messages

Listado de mensajes de error y pago correcto remitidos a través de Ds_Response y Ds_ErrorCode
PHP
10
star
16

laravel-Gettext

PHP
9
star
17

Ceca-TPV

Genera los formularios para la integración de la pasarela de pago de sistemas CECA
PHP
9
star
18

disposable-email-validator

Validate emails against multiple databases with disposable email domains
PHP
8
star
19

web-deploy

Easy panel to web deploy
PHP
7
star
20

Cache

PHP Cache Interface
PHP
7
star
21

invoice-api

Laravel Backend | https://invoice.lito.com.es/ | https://invoice-demo.lito.com.es/
PHP
6
star
22

php-microoptimizations

Website with PHP code comparison
PHP
6
star
23

captcha

A new simple and easy-to-implement captcha package.
PHP
6
star
24

auto-reaver

Launch reaver against all WPA/WPS discovered networks
Shell
5
star
25

invoice-vue

Vue Frontend | https://invoice.lito.com.es/ | https://invoice-demo.lito.com.es/
JavaScript
4
star
26

Apalabro

PHP project to create an Apalabrados (Angry Words) web interface.
PHP
3
star
27

facebook-birthdays

Automate the Facebook Birthdays Wishes from your own profile
PHP
3
star
28

SkyDriveAPI

Microsoft SkyDrive PHP API
PHP
2
star
29

Laravel-Domain-Scaffolding

PHP
1
star
30

Curl

A Simple Curl Interface
PHP
1
star
31

laravel-Processor

PHP
1
star
32

Gettext

A Simple Gettext Interface
PHP
1
star
33

laravel-FormManager

PHP
1
star
34

Timer

A simple timer mark script
PHP
1
star
35

Db

DB Interface Library using PDO and Respect/Relational repository
PHP
1
star
36

laravel-SimpleRoute

PHP
1
star