AliasVault is an open-source password and identity manager built with C# ASP.NET technology. AliasVault can be self-hosted on your own server with Docker, providing a secure and private solution for managing your online identities and passwords.
What makes AliasVault unique:
- Zero-knowledge architecture: All data is end-to-end encrypted on the client and stored in encrypted state on the server. Your master password never leaves your device and the server never has access to your data.
- Virtual identities: Generate virtual identities with virtual (working) email addresses that are assigned to one or more passwords.
- Open-source: The source code is available on GitHub and can be self-hosted on your own server.
Note: AliasVault is currently in development and not yet ready for production use. The project is still in the early stages and many features are not yet implemented. You are welcome to contribute to the project by submitting pull requests or opening issues.
Live demo
A live demo of the app is available at main.aliasvault.net (nightly builds). You can create a free account to try it out yourself.
Installation on your own machine
To install AliasVault on your own machine, follow the steps below. Note: the install process is tested on MacOS and Linux. It should work on Windows too, but you might need to adjust some commands.
Requirements:
- Access to a terminal
- Docker
- Git
1. Clone this repository.
# Clone this Git repository to "AliasVault" directory
$ git clone https://github.com/lanedirt/AliasVault.git
2. Run the init script.
This script will create a .env file in the root directory of the project if it does not yet exist and populate it with a random encryption secret.
# Go to the project directory
$ cd AliasVault
# Make init script executable
$ chmod +x init.sh
# Run the init script and follow the steps
$ ./init.sh
3. Build and run the app via Docker:
# Build and run the app via Docker Compose
$ docker compose up -d --build --force-recreate
Note: the container binds to port 80 by default. If you have another service running on port 80, you can change the port in the
docker-compose.ymlfile.
Note for first time build:
- When running the docker compose command for the first time, it may take a few minutes to build the Docker image.
- A SQLite database file will be created in
./database/AliasServerDb.sqlite. This file will store all (encrypted) password vaults. It should be kept secure and not shared.
After the Docker containers have started the app will be available at http://localhost:80
Tech stack / credits
The following technologies, frameworks and libraries are used in this project:
- C# - A simple, modern, object-oriented, and type-safe programming language.
- ASP.NET Core - An open-source framework for building modern, cloud-based, internet-connected applications.
- Entity Framework Core - A lightweight, extensible, open-source and cross-platform version of the popular Entity Framework data access technology.
- Blazor WASM - A framework for building interactive web UIs using C# instead of JavaScript. It's a single-page app framework that runs in the browser via WebAssembly.
- Playwright - A Node.js library to automate Chromium, Firefox and WebKit with a single API. Used for end-to-end testing.
- Docker - A platform for building, sharing, and running containerized applications.
- SQLite - A C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine.
- Tailwind CSS - A utility-first CSS framework for rapidly building custom designs.
- Flowbite - A free and open-source UI component library based on Tailwind CSS.
- Konscious.Security.Cryptography - A .NET library that implements Argon2id, a memory-hard password hashing algorithm.
- SRP.net - SRP6a Secure Remote Password protocol for secure password authentication.
- SmtpServer - A SMTP server library for .NET that is used for the virtual email address feature.
- MimeKit - A .NET MIME creation and parser library used for the virtual email address feature.