diff --git a/.gitignore b/.gitignore index 57f99f2e8..6fba628b0 100644 --- a/.gitignore +++ b/.gitignore @@ -399,3 +399,8 @@ certificates/**/*.key certificates/**/*.pfx certificates/**/*.pem certificates/letsencrypt/** + +# Docs +docs/_site +docs/vendor +docs/.bundle diff --git a/README.md b/README.md index 5140a2eab..b0e67d959 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ AliasVault is an open-source password and alias manager built with C# ASP.NET te ## Live demo A live demo of the app is available at the official website at [app.aliasvault.net](https://app.aliasvault.net) (up-to-date with `main` branch). You can create a free account to try it out yourself. -Screenshot of AliasVault +Screenshot of AliasVault ## Installation diff --git a/SECURITY.md b/SECURITY.md index a7f7a5b94..3cf28ccbd 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -19,7 +19,7 @@ The following encryption algorithms are used by AliasVault: Below is a detailed explanation of each encryption algorithm. -For more information about how these algorithms are specifically used in AliasVault, see the [Security Architecture](docs/security-architecture.md) document. +For more information about how these algorithms are specifically used in AliasVault, see the [Architecture Documentation](https://docs.aliasvault.net/architecture) section on the documentation site. ### Argon2id To derive a key from the master password, AliasVault uses the Argon2id key derivation function. Argon2id is a memory-hard diff --git a/docs/Dockerfile b/docs/Dockerfile new file mode 100644 index 000000000..f87685610 --- /dev/null +++ b/docs/Dockerfile @@ -0,0 +1,8 @@ +FROM jekyll/jekyll:4.2.2 + +WORKDIR /srv/jekyll +COPY . . +RUN chown -R jekyll:jekyll /srv/jekyll + +# Install the theme and dependencies +RUN bundle install diff --git a/docs/Gemfile b/docs/Gemfile new file mode 100644 index 000000000..50943fbdc --- /dev/null +++ b/docs/Gemfile @@ -0,0 +1,8 @@ +source 'https://rubygems.org' + +# gem "jekyll", "~> 4.3.2" +gem "just-the-docs" + +# If you want to use GitHub Pages, remove the "gem "jekyll"" above and +# uncomment the line below. To upgrade, run `bundle update github-pages`. +gem "github-pages", group: :jekyll_plugins diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock new file mode 100644 index 000000000..d6df8d87a --- /dev/null +++ b/docs/Gemfile.lock @@ -0,0 +1,286 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (7.2.2) + base64 + benchmark (>= 0.3) + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + logger (>= 1.4.2) + minitest (>= 5.1) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + base64 (0.2.0) + benchmark (0.4.0) + bigdecimal (3.1.8) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.12.2) + colorator (1.1.0) + commonmarker (0.23.11) + concurrent-ruby (1.3.4) + connection_pool (2.4.1) + csv (3.3.0) + dnsruby (1.72.3) + base64 (~> 0.2.0) + simpleidn (~> 0.2.1) + drb (2.2.1) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + ethon (0.16.0) + ffi (>= 1.15.0) + eventmachine (1.2.7) + execjs (2.10.0) + faraday (2.12.1) + faraday-net_http (>= 2.0, < 3.5) + json + logger + faraday-net_http (3.4.0) + net-http (>= 0.5.0) + ffi (1.17.0-x86_64-linux-musl) + forwardable-extended (2.6.0) + gemoji (4.1.0) + github-pages (232) + github-pages-health-check (= 1.18.2) + jekyll (= 3.10.0) + jekyll-avatar (= 0.8.0) + jekyll-coffeescript (= 1.2.2) + jekyll-commonmark-ghpages (= 0.5.1) + jekyll-default-layout (= 0.1.5) + jekyll-feed (= 0.17.0) + jekyll-gist (= 1.5.0) + jekyll-github-metadata (= 2.16.1) + jekyll-include-cache (= 0.2.1) + jekyll-mentions (= 1.6.0) + jekyll-optional-front-matter (= 0.3.2) + jekyll-paginate (= 1.1.0) + jekyll-readme-index (= 0.3.0) + jekyll-redirect-from (= 0.16.0) + jekyll-relative-links (= 0.6.1) + jekyll-remote-theme (= 0.4.3) + jekyll-sass-converter (= 1.5.2) + jekyll-seo-tag (= 2.8.0) + jekyll-sitemap (= 1.4.0) + jekyll-swiss (= 1.0.0) + jekyll-theme-architect (= 0.2.0) + jekyll-theme-cayman (= 0.2.0) + jekyll-theme-dinky (= 0.2.0) + jekyll-theme-hacker (= 0.2.0) + jekyll-theme-leap-day (= 0.2.0) + jekyll-theme-merlot (= 0.2.0) + jekyll-theme-midnight (= 0.2.0) + jekyll-theme-minimal (= 0.2.0) + jekyll-theme-modernist (= 0.2.0) + jekyll-theme-primer (= 0.6.0) + jekyll-theme-slate (= 0.2.0) + jekyll-theme-tactile (= 0.2.0) + jekyll-theme-time-machine (= 0.2.0) + jekyll-titles-from-headings (= 0.5.3) + jemoji (= 0.13.0) + kramdown (= 2.4.0) + kramdown-parser-gfm (= 1.1.0) + liquid (= 4.0.4) + mercenary (~> 0.3) + minima (= 2.5.1) + nokogiri (>= 1.16.2, < 2.0) + rouge (= 3.30.0) + terminal-table (~> 1.4) + webrick (~> 1.8) + github-pages-health-check (1.18.2) + addressable (~> 2.3) + dnsruby (~> 1.60) + octokit (>= 4, < 8) + public_suffix (>= 3.0, < 6.0) + typhoeus (~> 1.3) + html-pipeline (2.14.3) + activesupport (>= 2) + nokogiri (>= 1.4) + http_parser.rb (0.8.0) + i18n (1.14.6) + concurrent-ruby (~> 1.0) + jekyll (3.10.0) + addressable (~> 2.4) + colorator (~> 1.0) + csv (~> 3.0) + em-websocket (~> 0.5) + i18n (>= 0.7, < 2) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 2.0) + kramdown (>= 1.17, < 3) + liquid (~> 4.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (>= 1.7, < 4) + safe_yaml (~> 1.0) + webrick (>= 1.0) + jekyll-avatar (0.8.0) + jekyll (>= 3.0, < 5.0) + jekyll-coffeescript (1.2.2) + coffee-script (~> 2.2) + coffee-script-source (~> 1.12) + jekyll-commonmark (1.4.0) + commonmarker (~> 0.22) + jekyll-commonmark-ghpages (0.5.1) + commonmarker (>= 0.23.7, < 1.1.0) + jekyll (>= 3.9, < 4.0) + jekyll-commonmark (~> 1.4.0) + rouge (>= 2.0, < 5.0) + jekyll-default-layout (0.1.5) + jekyll (>= 3.0, < 5.0) + jekyll-feed (0.17.0) + jekyll (>= 3.7, < 5.0) + jekyll-gist (1.5.0) + octokit (~> 4.2) + jekyll-github-metadata (2.16.1) + jekyll (>= 3.4, < 5.0) + octokit (>= 4, < 7, != 4.4.0) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) + jekyll-mentions (1.6.0) + html-pipeline (~> 2.3) + jekyll (>= 3.7, < 5.0) + jekyll-optional-front-matter (0.3.2) + jekyll (>= 3.0, < 5.0) + jekyll-paginate (1.1.0) + jekyll-readme-index (0.3.0) + jekyll (>= 3.0, < 5.0) + jekyll-redirect-from (0.16.0) + jekyll (>= 3.3, < 5.0) + jekyll-relative-links (0.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-remote-theme (0.4.3) + addressable (~> 2.0) + jekyll (>= 3.5, < 5.0) + jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) + rubyzip (>= 1.3.0, < 3.0) + jekyll-sass-converter (1.5.2) + sass (~> 3.4) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-swiss (1.0.0) + jekyll-theme-architect (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-cayman (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-dinky (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-hacker (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-leap-day (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-merlot (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-midnight (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-minimal (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-modernist (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-primer (0.6.0) + jekyll (> 3.5, < 5.0) + jekyll-github-metadata (~> 2.9) + jekyll-seo-tag (~> 2.0) + jekyll-theme-slate (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-time-machine (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-titles-from-headings (0.5.3) + jekyll (>= 3.3, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + jemoji (0.13.0) + gemoji (>= 3, < 5) + html-pipeline (~> 2.2) + jekyll (>= 3.0, < 5.0) + json (2.8.2) + just-the-docs (0.10.0) + jekyll (>= 3.8.5) + jekyll-include-cache + jekyll-seo-tag (>= 2.0) + rake (>= 12.3.1) + kramdown (2.4.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.9.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + logger (1.6.1) + mercenary (0.3.6) + minima (2.5.1) + jekyll (>= 3.5, < 5.0) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + minitest (5.25.1) + net-http (0.5.0) + uri + nokogiri (1.16.7-x86_64-linux) + racc (~> 1.4) + octokit (4.25.1) + faraday (>= 1, < 3) + sawyer (~> 0.9) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (5.1.1) + racc (1.8.1) + rake (13.2.1) + rb-fsevent (0.11.2) + rb-inotify (0.11.1) + ffi (~> 1.0) + rexml (3.3.9) + rouge (3.30.0) + rubyzip (2.3.2) + safe_yaml (1.0.5) + sass (3.7.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sawyer (0.9.2) + addressable (>= 2.3.5) + faraday (>= 0.17.3, < 3) + securerandom (0.3.2) + simpleidn (0.2.3) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + typhoeus (1.4.1) + ethon (>= 0.9.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (1.8.0) + uri (1.0.2) + webrick (1.9.0) + +PLATFORMS + x86_64-linux-musl + +DEPENDENCIES + github-pages + just-the-docs + +BUNDLED WITH + 2.3.25 diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index a7dd1c905..000000000 --- a/docs/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Documentation -This is the documentation for the AliasVault project. - -## Description -TODO: Work in progress. diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 000000000..ed0052bc9 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1,32 @@ +remote_theme: just-the-docs/just-the-docs +title: AliasVault +description: Documentation for the AliasVault password manager + +logo: "/assets/img/logo.svg" +favicon_ico: "/assets/img/favicon.png" + +# Navigation settings +aux_links: + "AliasVault on GitHub": + - "https://github.com/lanedirt/AliasVault" + "AliasVault Website": + - "https://aliasvault.net" +aux_links_new_tab: true + +# Search settings +search_enabled: true +heading_anchors: true + +# Theme settings +color_scheme: aliasvault + +# Enable copy code button +enable_copy_code_button: true + +# Footer "Edit this page on GitHub" link text +gh_edit_link: true # show or hide edit this page link +gh_edit_link_text: "Edit this page on GitHub." +gh_edit_repository: "https://github.com/lanedirt/AliasVault" # the github URL for your repo +gh_edit_branch: "main" # the branch that your docs is served from +gh_edit_source: docs # the source that your files originate from +gh_edit_view_mode: "tree" # "tree" or "edit" if you want the user to jump into the editor immediately \ No newline at end of file diff --git a/docs/_includes/footer_custom.html b/docs/_includes/footer_custom.html new file mode 100644 index 000000000..e69de29bb diff --git a/docs/_includes/nav_footer_custom.html b/docs/_includes/nav_footer_custom.html new file mode 100644 index 000000000..8083c7838 --- /dev/null +++ b/docs/_includes/nav_footer_custom.html @@ -0,0 +1 @@ +  \ No newline at end of file diff --git a/docs/_sass/color_schemes/aliasvault.scss b/docs/_sass/color_schemes/aliasvault.scss new file mode 100644 index 000000000..2f8d0783f --- /dev/null +++ b/docs/_sass/color_schemes/aliasvault.scss @@ -0,0 +1,42 @@ +@import "./color_schemes/dark"; + +// Base theme colors +$link-color: #f49541; +$btn-primary-color: #d68338; + +// Main colors +$body-background-color: #1f2937; +$sidebar-color: #111827; +$border-color: #374151; +$body-text-color: #f8f9fa; + +// Navigation +$nav-child-link-color: #fdde85; +$search-result-preview-color: #e9ecef; + +// Content elements +$feedback-color: #2d3748; +$table-background-color: #374151; +$search-background-color: #374151; + +// Code blocks +$code-background-color: #2d3748; +$code-linenumber-color: #9ca3af; + +// Tables +$table-border-color: #4b5563; + +// Search +$search-result-preview-color: #d1d5db; + +// Buttons +$btn-primary-color-dark: #d68338; + +// Base Colors (kept for compatibility) +$purple-000: #f8b963; +$purple-100: #ffd5a8; +$purple-200: #f49541; +$purple-300: #d68338; + +// Navigation additional +$nav-button-color: #f49541; diff --git a/docs/security-architecture.md b/docs/architecture/index.md similarity index 84% rename from docs/security-architecture.md rename to docs/architecture/index.md index 05240cdb4..d5682915d 100644 --- a/docs/security-architecture.md +++ b/docs/architecture/index.md @@ -1,4 +1,11 @@ -# Security Architecture +--- +layout: default +title: Architecture +has_children: true +nav_order: 3 +--- + +# Architecture AliasVault implements a zero-knowledge architecture where sensitive user data and passwords never leave the client device in unencrypted form. Below is a detailed explanation of how the system secures user data and communications. @@ -6,12 +13,12 @@ AliasVault implements a zero-knowledge architecture where sensitive user data an The security architecture diagram below illustrates all encryption and authentication processes used in AliasVault to secure user data and communications. - - - AliasVault Security Architecture Diagram + + + AliasVault Security Architecture Diagram -You can also view the diagram in a browser-friendly HTML format: [AliasVault Security Architecture](diagrams/security-architecture/aliasvault-security-architecture.html) +You can also view the diagram in a browser-friendly HTML format: [AliasVault Security Architecture](https://lanedirt.github.io/AliasVault/assets/diagrams/security-architecture/aliasvault-security-architecture.html) ## Key Components and Process Flow diff --git a/docs/diagrams/README.md b/docs/assets/diagrams/_README.md similarity index 99% rename from docs/diagrams/README.md rename to docs/assets/diagrams/_README.md index c805ffba4..74dbd3f05 100644 --- a/docs/diagrams/README.md +++ b/docs/assets/diagrams/_README.md @@ -1,3 +1,5 @@ + + # Diagrams This folder contains architecture and flow diagrams for AliasVault in various formats. diff --git a/docs/diagrams/security-architecture/aliasvault-security-architecture-dark.svg b/docs/assets/diagrams/security-architecture/aliasvault-security-architecture-dark.svg similarity index 100% rename from docs/diagrams/security-architecture/aliasvault-security-architecture-dark.svg rename to docs/assets/diagrams/security-architecture/aliasvault-security-architecture-dark.svg diff --git a/docs/diagrams/security-architecture/aliasvault-security-architecture-light.svg b/docs/assets/diagrams/security-architecture/aliasvault-security-architecture-light.svg similarity index 100% rename from docs/diagrams/security-architecture/aliasvault-security-architecture-light.svg rename to docs/assets/diagrams/security-architecture/aliasvault-security-architecture-light.svg diff --git a/docs/diagrams/security-architecture/aliasvault-security-architecture.drawio b/docs/assets/diagrams/security-architecture/aliasvault-security-architecture.drawio similarity index 100% rename from docs/diagrams/security-architecture/aliasvault-security-architecture.drawio rename to docs/assets/diagrams/security-architecture/aliasvault-security-architecture.drawio diff --git a/docs/diagrams/security-architecture/aliasvault-security-architecture.html b/docs/assets/diagrams/security-architecture/aliasvault-security-architecture.html similarity index 100% rename from docs/diagrams/security-architecture/aliasvault-security-architecture.html rename to docs/assets/diagrams/security-architecture/aliasvault-security-architecture.html diff --git a/docs/diagrams/security-architecture/security-architecture.mmd b/docs/assets/diagrams/security-architecture/security-architecture.mmd similarity index 100% rename from docs/diagrams/security-architecture/security-architecture.mmd rename to docs/assets/diagrams/security-architecture/security-architecture.mmd diff --git a/docs/assets/img/favicon.png b/docs/assets/img/favicon.png new file mode 100644 index 000000000..c8aff58e8 Binary files /dev/null and b/docs/assets/img/favicon.png differ diff --git a/docs/assets/img/logo.svg b/docs/assets/img/logo.svg new file mode 100644 index 000000000..600446a2b --- /dev/null +++ b/docs/assets/img/logo.svg @@ -0,0 +1,2 @@ + +AliasVault \ No newline at end of file diff --git a/docs/img/screenshot.png b/docs/assets/img/screenshot.png similarity index 100% rename from docs/img/screenshot.png rename to docs/assets/img/screenshot.png diff --git a/docs/contact/index.md b/docs/contact/index.md new file mode 100644 index 000000000..7ea80b6cf --- /dev/null +++ b/docs/contact/index.md @@ -0,0 +1,14 @@ +--- +layout: default +title: Help and Support +has_children: true +nav_order: 100 +--- + +# Help and Support + +If you need help or have any questions about installing or using AliasVault, you can reach us on [AliasVault Discord](https://discord.gg/DsaXMTEtpF). + +If you have found a bug or have a feature request, please open an issue on [AliasVault GitHub](https://github.com/lanedirt/AliasVault/issues). + +If you have any other questions or feedback, please use the contact form on the [AliasVault website](https://aliasvault.net/contact). diff --git a/docs/docker-compose.yml b/docs/docker-compose.yml new file mode 100644 index 000000000..cac34e88f --- /dev/null +++ b/docs/docker-compose.yml @@ -0,0 +1,12 @@ +services: + jekyll: + build: . + volumes: + - .:/srv/jekyll + ports: + - "4000:4000" + command: bundle exec jekyll serve --host 0.0.0.0 --watch --force_polling --livereload + environment: + - JEKYLL_ENV=development + - JEKYLL_NO_CACHE=true + - DISABLE_DISK_CACHE=true diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 000000000..85eea72df --- /dev/null +++ b/docs/index.md @@ -0,0 +1,45 @@ +--- +layout: home +title: Home +nav_order: 1 +description: "AliasVault Documentation - Open-source password and identity manager" +permalink: / +--- + +# AliasVault Documentation +{: .fs-9 } + +Open-source password and identity manager with email alias generation and zero-knowledge architecture. +{: .fs-6 .fw-300 } + +[Installation](./installation){: .btn .btn-primary .fs-5 .mb-4 .mb-md-0 .mr-2 } +[View on GitHub](https://github.com/lanedirt/AliasVault){: .btn .fs-5 .mb-4 .mb-md-0 } + +--- + +## What is AliasVault? + +AliasVault is a self-hosted password and identity manager that helps you: + +- 🔐 **Secure Passwords** - Store and manage passwords with zero-knowledge encryption +- 📧 **Email Aliases** - Generate unique email addresses for each service +- 🎭 **Identity Management** - Create and manage separate online identities +- 🏠 **Self-Hosted** - Run on your own infrastructure using Docker +- 🔓 **Open Source** - Transparent, auditable, and free to use + +## Key Features + +### Zero-Knowledge Architecture +All data is end-to-end encrypted on the client. Your master password never leaves your device, and the server never has access to your data. + +### Built-in Email Server +Generate virtual email addresses for each identity. Emails sent to these addresses are instantly visible in the AliasVault app. + +### Virtual Identities +Create separate identities for different purposes, each with its own email aliases and credentials. + +--- + +## Getting Started + +Ready to get started with AliasVault? Check out the [installation guide](./installation). diff --git a/docs/installation/build-from-source.md b/docs/installation/build-from-source.md new file mode 100644 index 000000000..ac25ea288 --- /dev/null +++ b/docs/installation/build-from-source.md @@ -0,0 +1,33 @@ +--- +layout: default +title: Build from Source +parent: Installation Guide +nav_order: 1 +--- + +# Build from Source +Instead of using the pre-built Docker images, you can also build the images from source yourself. This allows you to build a specific version of AliasVault and/or to make changes to the source code. + +Building from source requires more resources: +- Minimum 2GB RAM (more RAM will speed up build time) +- At least 1 vCPU +- 40GB+ disk space (for dependencies and build artifacts) +- Docker installed +- Git installed + +## Steps +1. Clone the repository +```bash +git clone https://github.com/lanedirt/AliasVault.git +cd AliasVault +``` +2. Make the build script executable and run it. This will create the .env file, build the Docker images locally from source, and start the AliasVault containers. Follow the on-screen prompts to configure AliasVault. +```bash +chmod +x install.sh +./install.sh build +``` +> **Note:** The build process can take a while depending on your hardware (5-15 minutes). + +3. After the script completes, you can access AliasVault at: + - Client: `https://localhost` + - Admin: `https://localhost/admin` diff --git a/docs/installation/index.md b/docs/installation/index.md new file mode 100644 index 000000000..e50ad3ea8 --- /dev/null +++ b/docs/installation/index.md @@ -0,0 +1,72 @@ +--- +layout: default +title: Installation Guide +nav_order: 2 +--- + +# Installation +Follow the steps below to install AliasVault on your own server. Minimum experience with Docker and Linux is required. + +{: .toc } +* TOC +{:toc} + +--- + +## Basic Installation +To get AliasVault up and running quickly, run the install script to pull pre-built Docker images. The install script will also configure the .env file and start the AliasVault containers. You can get up and running in less than 5 minutes. + +### Hardware requirements +- Linux VM with root access (Ubuntu or RHEL based distros recommended) +- 1 vCPU +- 512MB RAM +- 16GB disk space +- Docker installed + +### Installation steps +1. Download the install script +```bash +curl -o install.sh https://raw.githubusercontent.com/lanedirt/AliasVault/main/install.sh +``` +2. Make the install script executable and run it. This will create the .env file, pull the Docker images, and start the AliasVault containers. Follow the on-screen prompts to configure AliasVault. +```bash +chmod +x install.sh +./install.sh install +``` +3. After the script completes, you can access AliasVault at: + - Client: `https://localhost` + - Admin: `https://localhost/admin` + +--- + +## SSL configuration +The default installation will create a self-signed SSL certificate and configure Nginx to use it. + +You can however also use Let's Encrypt to generate valid SSL certificates and configure Nginx to use it. In order to make this work you will need the following: + +- A public IPv4 address assigned to your server +- Port 80 and 443 on your server must be open and accessible from the internet +- A registered domain name with an A record pointing to your server's public IP address (e.g. mydomain.com) + + +### Steps + +1. Run the install script with the `configure-ssl` option +```bash +./install.sh configure-ssl +``` +2. Follow the prompts to configure Let's Encrypt. + +### Reverting to self-signed SSL +If at any point you would like to revert to the self-signed SSL certificate, run the install script again with the `configure-ssl` option +and then in the prompt choose option 2. + +--- + +## Miscellaneous + +### Resetting the admin password +If you have lost your admin password, you can reset it by running the install script with the `reset-password` option. This will generate a new random password and update the .env file with it. After that it will restart the AliasVault containers to apply the changes. +```bash +./install.sh reset-password +``` \ No newline at end of file diff --git a/docs/install/1-manually-setup-docker.md b/docs/installation/manually-setup-docker.md similarity index 92% rename from docs/install/1-manually-setup-docker.md rename to docs/installation/manually-setup-docker.md index 769977588..854806ba7 100644 --- a/docs/install/1-manually-setup-docker.md +++ b/docs/installation/manually-setup-docker.md @@ -1,6 +1,13 @@ +--- +layout: default +title: Manual Setup +parent: Installation Guide +nav_order: 2 +--- + # Manual Setup Instructions for AliasVault -This README provides step-by-step instructions for manually setting up AliasVault without using the `install.sh` script. Follow these steps if you prefer to execute all statements yourself. +If you prefer to manually set up AliasVault, this README provides step-by-step instructions. Follow these steps if you prefer to execute all statements yourself. ## Prerequisites diff --git a/docs/dev/configure-sqlite-wasm.md b/docs/misc/dev/configure-sqlite-wasm.md similarity index 70% rename from docs/dev/configure-sqlite-wasm.md rename to docs/misc/dev/configure-sqlite-wasm.md index 64e34f827..9084dd5ed 100644 --- a/docs/dev/configure-sqlite-wasm.md +++ b/docs/misc/dev/configure-sqlite-wasm.md @@ -1,3 +1,12 @@ +--- +layout: default +title: Configure SQLite for use with WebAssembly +parent: Development +grand_parent: Miscellaneous +nav_order: 2 +--- + +# Configure SQLite for use with WebAssembly To configure SQLite for use with WebAssembly follow these steps: 1. Add NuGet package diff --git a/docs/client/enable-webauthn-pfr-chrome.md b/docs/misc/dev/enable-webauthn-pfr-chrome.md similarity index 85% rename from docs/client/enable-webauthn-pfr-chrome.md rename to docs/misc/dev/enable-webauthn-pfr-chrome.md index 3b8e83e28..0be778f84 100644 --- a/docs/client/enable-webauthn-pfr-chrome.md +++ b/docs/misc/dev/enable-webauthn-pfr-chrome.md @@ -1,3 +1,12 @@ +--- +layout: default +title: Enable WebAuthn +parent: Development +grand_parent: Miscellaneous +nav_order: 1 +--- + +# WebAuthn The webauthn implementation in order to quick unlock the vault requires the use of a FIDO2 authenticator. This can be either the built-in browser authenticator or an external authenticator like a Yubikey. diff --git a/docs/misc/dev/index.md b/docs/misc/dev/index.md new file mode 100644 index 000000000..d19ae7e58 --- /dev/null +++ b/docs/misc/dev/index.md @@ -0,0 +1,6 @@ +--- +layout: default +title: Development +parent: Miscellaneous +nav_order: 1 +--- diff --git a/docs/dev/run-github-actions-locally.md b/docs/misc/dev/run-github-actions-locally.md similarity index 96% rename from docs/dev/run-github-actions-locally.md rename to docs/misc/dev/run-github-actions-locally.md index d123c12f6..3994192a5 100644 --- a/docs/dev/run-github-actions-locally.md +++ b/docs/misc/dev/run-github-actions-locally.md @@ -1,3 +1,11 @@ +--- +layout: default +title: 1. Run GitHub Actions Locally +parent: Development +grand_parent: Miscellaneous +nav_order: 1 +--- + # Run GitHub Actions Locally This guide will help you set up and run GitHub Actions locally on Linux, which can be useful for debugging and testing your workflows without pushing changes to the repository. diff --git a/docs/dev/upgrade-ef-client-model.md b/docs/misc/dev/upgrade-ef-client-model.md similarity index 79% rename from docs/dev/upgrade-ef-client-model.md rename to docs/misc/dev/upgrade-ef-client-model.md index b9bacac9e..521ee103e 100644 --- a/docs/dev/upgrade-ef-client-model.md +++ b/docs/misc/dev/upgrade-ef-client-model.md @@ -1,3 +1,13 @@ +--- +layout: default +title: Upgrade the AliasClientDb EF model +parent: Development +grand_parent: Miscellaneous +nav_order: 3 +--- + +# Upgrade the AliasClientDb EF model + To upgrade the AliasClientDb EF model, follow these steps: 1. Make changes to the AliasClientDb EF model in the `AliasClientDb` project. diff --git a/docs/misc/index.md b/docs/misc/index.md new file mode 100644 index 000000000..355c6b536 --- /dev/null +++ b/docs/misc/index.md @@ -0,0 +1,10 @@ +--- +layout: default +title: Miscellaneous +has_children: true +nav_order: 99 +--- + +# Miscellaneous + +Miscellaneous guides and documentation.