This project aims to provide a secure way to store passwords, notes, and credit card information for anyone needing to bolster their online security.
-
Clone this repository.
-
If you're on Windows, ensure that the Docker Desktop client is installed: https://docs.docker.com/desktop/install/windows-install/
-
Run
docker compose
in a terminal to verify Docker is installed correctly. If in Windows, Docker Desktop must be open. -
Navigate to the root of the directory in VS Code Terminal, Git Bash, WSL, or Powershell (
/frontend
and/backend
must be subdirectories). In the terminal, run./autobuild-dev.sh
. This script will:-
Pull changes from the currently checked out branch.
-
Navigate to
/frontend
and build a local Docker image:frontend_local
. -
Navigate to root directory, down to
/backend
, and build a local Docker image:backend_local
. -
Navigate to root directory and start the
dev
docker compose configuration. -
The
prod
docker compose configuration is only edited for server-side configurations. This does not need to be edited.
-
-
Navigate to
http://localhost:3000
. -
Create a new account. You will be prompted to scan the MFA QR code and verify MFA works before account access is granted.
The frontend is already configured to serve static JavaScript at runtime, and the Watchtower container is configured to automatically pull new images from Docker Hub every 30 seconds.
If Watchtower is not pulling the image updates automatically, a production-only helper script is provided to manually pull the container updates and bring the containers up:
-
Navigate to root directory of project on the production server.
-
Ensure the script is executable:
sudo chmod +x pullup-prod.sh
-
Run
./pullup-prod.sh
- This will pull any image updates and run the containers listed in the
docker-compose-prod.yml
Compose file.
- This will pull any image updates and run the containers listed in the
-
You can verify Watchtower is updating containers by inspecting the docker logs:
docker logs watchtower
. Take into account Watchtower's polling period when troubleshooting.