Knox is a locally hosted password manager, originally created for my OCR A-level Computer Science (H446) coursework.
Warning
The security of this implementation has not been audited by a third-party professional. I provide the source code largely for educational purposes, and advise against using the password manager for real data.
The design, development and testing processes were documented in the Project Report, originally authored to submit with the coursework. The report is not included in this public repo as it contains some personal information but it may be available at special request.
On Linux and Mac systems, most of the installation process can be automated by running the included bash script.
Before running the script, PostgreSQL and Redis should be installed and configured - both of these can be set up with relative ease using docker.
git clone https://github.com/stmio/knox.git
cd knox
sh ./knox.sh
This script first checks if node is available. If not, the most recent LTS version is installed with nvm.
The required npm packages are also installed, and the project is built with vite. The production server can then be started.
To start the server again in the future, simply rerun the script.
-
Clone the repository:
git clone https://github.com/stmio/knox.git
-
Ensure node>=20.0.0 and npm are installed and on your path
-
Install the required packages from Knox's base directory (
cd knox
):npm install
-
Install PostgreSQL and Redis, using docker or otherwise
-
Start the server:
-
For production:
- Build the project:
npm run build
- Start the server:
npm start
- Build the project:
-
For development:
- Start the dev server:
npm run dev
- Start the dev server:
-
-
Navigate to Knox in your web browser, by default
localhost:3000