Skip to content

MrXMrQ/Password-Manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Password Manager

A self-hosted password manager with a Python/Flask backend and a SvelteKit frontend.


Deployment

Prerequisites

  • Docker and Docker Compose installed on the target machine

Setup

  1. Clone the repository

    git clone <repository-url>
    cd Password-Manager
  2. Open docker-compose.yml and fill in the required values

    Variable Description How to generate
    SECRET_FLASK_KEY Flask session secret openssl rand -hex 32
    SECRET_JWT_KEY JWT signing secret openssl rand -hex 32
    ENCRYPTION_KEY Fernet key for encrypting stored passwords python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
    PUBLIC_API_URL URL the browser uses to reach the API Your server IP or domain + backend port, e.g. http://192.168.1.100:5000
  3. Start the application

    docker compose up -d --build

    The frontend is available at http://your-server-ip:3000. The backend API is available at http://your-server-ip:5000.

Updating

git pull
docker compose up -d --build

If PUBLIC_API_URL changed, a rebuild is required (--build). For changes to secrets only, a restart is sufficient (docker compose up -d).


Local Development

Prerequisites

  • Python 3.11+
  • Node.js 20+

Setup

  1. Copy the environment template and fill in the values

    cp .env.example .env

    Open .env and set all required values. See the comments in .env.example for instructions on generating each value.

  2. Install backend dependencies

    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r reqirements.txt
  3. Install frontend dependencies

    cd app
    npm install
  4. Start the backend

    # from the project root, with .venv active
    python server.py
  5. Start the frontend dev server

    cd app
    npm run dev

    The frontend dev server is available at http://localhost:5173. Set PUBLIC_API_URL=http://localhost:5000 in your .env for local development.

About

A lightweight, self-hosted password manager built with Svelte and Python. Features a modern UI, privacy-first data ownership, and seamless Docker-compose deployment for your homelab.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors