Skip to content

snizamaddinov/local-password-manager

Repository files navigation

Local Password Manager

A secure, local password manager built with Django that allows you to store and manage your login credentials with features like password versioning, custom fields, and file import/export capabilities.

Features

  • Secure storage of login credentials (domain, username, password)
  • Optional 2FA code and backup codes storage
  • Custom fields for additional information
  • Password version history
  • Daily backups
  • Dark mode UI
  • Import from CSV and JSON files
  • Search and filter functionality
  • Multiple logins per domain

Requirements

  • Docker
  • Docker Compose

Setup

  1. Clone the repository:
git clone <repository-url>
cd LocalPasswordManager
  1. Create a .env file in the root directory with the following content:
MYSQL_DATABASE=password_manager
MYSQL_USER=password_manager
MYSQL_PASSWORD=password_manager
MYSQL_ROOT_PASSWORD=password_manager
MYSQL_PORT=3306
MYSQL_VERSION=8.0
  1. Build and start the containers:
docker-compose up --build
  1. Create a superuser to access the application:
docker-compose exec backend python manage.py createsuperuser
  1. Access the application at http://localhost:8002

Usage

Adding Login Items

  1. Log in to the application
  2. Click "Add Login" in the navigation bar
  3. Fill in the required information:
    • Domain (e.g., "example.com")
    • Username
    • Password
    • Optional: 2FA code, backup codes, label

Importing Login Items

The application supports importing login items from CSV and JSON files.

CSV Format

domain,username,password,two_factor_code,backup_codes,label
example.com,user@example.com,password123,123456,BACKUP1234,Personal

JSON Format

[
  {
    "domain": "example.com",
    "username": "user@example.com",
    "password": "password123",
    "two_factor_code": "123456",
    "backup_codes": "BACKUP1234",
    "label": "Personal",
    "custom_fields": {
      "notes": "Some notes",
      "recovery_email": "recovery@example.com"
    }
  }
]

Backup System

The application automatically creates daily backups of all login items. You can also manually trigger a backup by clicking the "Backup" button in the navigation bar.

Security Considerations

  1. This is a local password manager intended for personal use
  2. The application uses Django's built-in security features
  3. Passwords are stored in the database
  4. It's recommended to:
    • Use strong passwords
    • Keep your system secure
    • Regularly backup your data
    • Never expose the application to the internet

Development

Project Structure

LocalPasswordManager/
├── docker-compose.yml
├── .env
├── mysql/
│   └── Dockerfile
└── password-manager-app/
    ├── Dockerfile
    ├── requirements.txt
    ├── manage.py
    ├── password_manager/
    │   ├── settings.py
    │   └── urls.py
    ├── passwords/
    │   ├── models.py
    │   ├── views.py
    │   ├── forms.py
    │   └── urls.py
    └── templates/
        ├── base.html
        └── passwords/
            ├── home.html
            ├── login_item_detail.html
            └── ...

Technology Stack

  • Django 5.0.6
  • MySQL 8.0
  • TailwindCSS for styling
  • Docker for containerization

License

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors