mirror of
https://github.com/aliasvault/aliasvault.git
synced 2026-08-01 17:59:40 -04:00
Add docusaurus docs site scaffolding (#2189)
This commit is contained in:
committed by
Leendert de Borst
parent
78e7773a2b
commit
0369756a6f
6
docs/.dockerignore
Normal file
6
docs/.dockerignore
Normal file
@@ -0,0 +1,6 @@
|
||||
node_modules
|
||||
build
|
||||
.docusaurus
|
||||
.git
|
||||
Dockerfile
|
||||
.dockerignore
|
||||
18
docs/.gitignore
vendored
18
docs/.gitignore
vendored
@@ -1 +1,19 @@
|
||||
# Dependencies
|
||||
/node_modules
|
||||
|
||||
# Production build
|
||||
/build
|
||||
|
||||
# Generated Docusaurus files
|
||||
/.docusaurus
|
||||
.docusaurus
|
||||
|
||||
# Misc
|
||||
.DS_Store
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
# Keep the docs release notes directory tracked
|
||||
!release
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
---
|
||||
layout: default
|
||||
title: 404 - Page not found
|
||||
permalink: /404.html
|
||||
nav_exclude: true
|
||||
search_exclude: true
|
||||
---
|
||||
|
||||
<style>
|
||||
.error-404 {
|
||||
text-align: center;
|
||||
padding: 4rem 2rem;
|
||||
}
|
||||
.error-404 h1 {
|
||||
font-size: 6rem;
|
||||
color: #f49541;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
.error-404 h2 {
|
||||
font-size: 2rem;
|
||||
margin-bottom: 1rem;
|
||||
color: #f8f9fa;
|
||||
}
|
||||
.error-404 p {
|
||||
font-size: 1.2rem;
|
||||
margin-bottom: 2rem;
|
||||
color: #d1d5db;
|
||||
}
|
||||
.error-404 .btn {
|
||||
display: inline-block;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background-color: #d68338;
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
border-radius: 4px;
|
||||
transition: background-color 0.2s;
|
||||
}
|
||||
.error-404 .btn:hover {
|
||||
background-color: #f49541;
|
||||
}
|
||||
.error-404 .links {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
.error-404 .links a {
|
||||
margin: 0 1rem;
|
||||
color: #f49541;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.error-404 .links a:hover {
|
||||
color: #ffd5a8;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="error-404">
|
||||
<h1>404</h1>
|
||||
<h2>Page Not Found</h2>
|
||||
<p>The page you're looking for doesn't exist or may have been moved.</p>
|
||||
<p>This could happen if the documentation structure has been reorganized or the page has been renamed.</p>
|
||||
|
||||
<a href="{{ '/' | relative_url }}" class="btn">Go to Home</a>
|
||||
|
||||
<div class="links">
|
||||
<p>Or try these helpful links:</p>
|
||||
<a href="{{ '/installation/' | relative_url }}">Installation Guide</a>
|
||||
<a href="{{ '/browser-extension/' | relative_url }}">Browser Extension</a>
|
||||
<a href="{{ '/mobile-app/' | relative_url }}">Mobile App</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,8 +1,13 @@
|
||||
FROM jekyll/jekyll:4.2.2
|
||||
|
||||
WORKDIR /srv/jekyll
|
||||
# Build the Docusaurus static site, then serve it with nginx.
|
||||
FROM node:20-alpine AS build
|
||||
WORKDIR /app
|
||||
COPY package.json package-lock.json ./
|
||||
RUN npm ci
|
||||
COPY . .
|
||||
RUN chown -R jekyll:jekyll /srv/jekyll
|
||||
RUN npm run build
|
||||
|
||||
# Install the theme and dependencies
|
||||
RUN bundle install
|
||||
FROM nginx:alpine
|
||||
COPY --from=build /app/build /usr/share/nginx/html
|
||||
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
||||
EXPOSE 80
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
|
||||
15
docs/Gemfile
15
docs/Gemfile
@@ -1,15 +0,0 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
# connection_pool 3.x requires Ruby >= 3.2; jekyll/jekyll:4.2.2 (docs/Dockerfile) uses Ruby 3.1.
|
||||
gem "connection_pool", "< 3"
|
||||
|
||||
# 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
|
||||
|
||||
group :jekyll_plugins do
|
||||
gem "jekyll-sitemap"
|
||||
end
|
||||
@@ -1,293 +0,0 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
activesupport (7.2.3.1)
|
||||
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, < 6)
|
||||
securerandom (>= 0.3)
|
||||
tzinfo (~> 2.0, >= 2.0.5)
|
||||
addressable (2.9.0)
|
||||
public_suffix (>= 2.0.2, < 8.0)
|
||||
base64 (0.3.0)
|
||||
benchmark (0.5.0)
|
||||
bigdecimal (4.0.1)
|
||||
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.6)
|
||||
connection_pool (2.5.5)
|
||||
csv (3.3.0)
|
||||
dnsruby (1.73.1)
|
||||
base64 (>= 0.2)
|
||||
logger (~> 1.6)
|
||||
simpleidn (~> 0.2.1)
|
||||
drb (2.2.3)
|
||||
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.14.2)
|
||||
faraday-net_http (>= 2.0, < 3.5)
|
||||
json
|
||||
logger
|
||||
faraday-net_http (3.4.2)
|
||||
net-http (~> 0.5)
|
||||
ffi (1.17.0-x86_64-linux-gnu)
|
||||
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.8)
|
||||
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.19.5)
|
||||
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.7.0)
|
||||
mercenary (0.3.6)
|
||||
minima (2.5.1)
|
||||
jekyll (>= 3.5, < 5.0)
|
||||
jekyll-feed (~> 0.9)
|
||||
jekyll-seo-tag (~> 2.1)
|
||||
minitest (5.27.0)
|
||||
net-http (0.9.1)
|
||||
uri (>= 0.11.1)
|
||||
nokogiri (1.18.10-x86_64-linux-gnu)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.18.10-x86_64-linux-musl)
|
||||
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.4.2)
|
||||
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.4.1)
|
||||
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.1.1)
|
||||
webrick (1.9.0)
|
||||
|
||||
PLATFORMS
|
||||
x86_64-linux
|
||||
x86_64-linux-musl
|
||||
|
||||
DEPENDENCIES
|
||||
connection_pool (< 3)
|
||||
github-pages
|
||||
jekyll-sitemap
|
||||
just-the-docs
|
||||
|
||||
BUNDLED WITH
|
||||
2.3.25
|
||||
@@ -1,13 +0,0 @@
|
||||
# Production overrides to disable GitHub metadata
|
||||
plugins:
|
||||
- jekyll-sitemap
|
||||
- jekyll-redirect-from
|
||||
|
||||
# Explicitly set repository to avoid GitHub API calls
|
||||
repository: aliasvault/aliasvault
|
||||
|
||||
# Set baseurl explicitly to avoid GitHub Pages detection
|
||||
baseurl: ""
|
||||
|
||||
# Disable GitHub metadata
|
||||
github: [metadata]
|
||||
@@ -1,61 +0,0 @@
|
||||
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/aliasvault/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/aliasvault/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
|
||||
|
||||
callouts:
|
||||
warning:
|
||||
title: Warning
|
||||
color: red
|
||||
note:
|
||||
title: Note
|
||||
color: purple
|
||||
important:
|
||||
title: Important
|
||||
color: yellow
|
||||
|
||||
# 404 page
|
||||
defaults:
|
||||
- scope:
|
||||
path: "404.html"
|
||||
values:
|
||||
sitemap: false
|
||||
|
||||
# Sitemap settings
|
||||
url: "https://docs.aliasvault.net"
|
||||
plugins:
|
||||
- jekyll-sitemap
|
||||
- jekyll-redirect-from
|
||||
|
||||
markdown: kramdown
|
||||
|
||||
kramdown:
|
||||
toc_levels: [2, 3]
|
||||
@@ -1,2 +0,0 @@
|
||||
<!-- Plausible Analytics -->
|
||||
<script defer data-domain="docs.aliasvault.net" src="https://plausible.xivi.nl/js/script.js"></script>
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
require 'webrick'
|
||||
|
||||
module Jekyll
|
||||
class FourOhFourPage < StaticFile
|
||||
def write(dest)
|
||||
true
|
||||
end
|
||||
end
|
||||
|
||||
class FourOhFourGenerator < Generator
|
||||
priority :low
|
||||
|
||||
def generate(site)
|
||||
site.static_files << FourOhFourPage.new(site, site.dest, '/', '404.html')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Override WEBrick to serve 404.html for missing files
|
||||
if defined?(WEBrick)
|
||||
module WEBrick
|
||||
class HTTPServlet::FileHandler
|
||||
alias_method :do_GET_original, :do_GET
|
||||
|
||||
def do_GET(req, res)
|
||||
do_GET_original(req, res)
|
||||
rescue HTTPStatus::NotFound => ex
|
||||
return_404_page(req, res)
|
||||
rescue => ex
|
||||
raise ex
|
||||
end
|
||||
|
||||
def return_404_page(req, res)
|
||||
path = File.join(@config[:DocumentRoot], '404.html')
|
||||
if File.exist?(path)
|
||||
res.body = File.read(path)
|
||||
res['content-type'] = 'text/html'
|
||||
else
|
||||
raise HTTPStatus::NotFound
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,48 +0,0 @@
|
||||
@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;
|
||||
|
||||
// Orange Colors
|
||||
$orange-000: #f8b963;
|
||||
$orange-100: #ffd5a8;
|
||||
$orange-200: #f49541;
|
||||
$orange-300: #d68338;
|
||||
|
||||
// Navigation additional
|
||||
$nav-button-color: #f49541;
|
||||
@@ -1,22 +0,0 @@
|
||||
# Docker Compose file for the AliasVault documentation
|
||||
#
|
||||
# This file is used to build the AliasVault documentation and serve it locally in development mode
|
||||
# with livereload enabled.
|
||||
#
|
||||
# Usage:
|
||||
# docker compose up -d
|
||||
# docker compose down
|
||||
#
|
||||
services:
|
||||
jekyll:
|
||||
build:
|
||||
context: .
|
||||
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
|
||||
@@ -1,27 +1,15 @@
|
||||
# Docker Compose file for the AliasVault documentation
|
||||
# Docker Compose file for the AliasVault documentation (Docusaurus).
|
||||
#
|
||||
# This file is used to build the AliasVault documentation and serve it locally in production mode
|
||||
# with caching and without livereload.
|
||||
# Builds the static site and serves it with nginx in production mode.
|
||||
#
|
||||
# Usage:
|
||||
# docker compose up -d
|
||||
# docker compose down
|
||||
# docker compose up -d --build
|
||||
# docker compose down
|
||||
#
|
||||
services:
|
||||
jekyll:
|
||||
docs:
|
||||
build:
|
||||
context: .
|
||||
ports:
|
||||
- "4000:4000"
|
||||
command: bundle exec jekyll serve --host 0.0.0.0 --no-watch --config _config.yml,_config.production.yml
|
||||
environment:
|
||||
- JEKYLL_ENV=production
|
||||
- JEKYLL_NO_CACHE=false
|
||||
- DISABLE_DISK_CACHE=false
|
||||
- JEKYLL_GITHUB_TOKEN=
|
||||
- PAGES_REPO_NWO=aliasvault/aliasvault
|
||||
- NO_GITHUB=true
|
||||
volumes:
|
||||
- .:/srv/jekyll
|
||||
- ./.jekyll-cache:/srv/jekyll/.jekyll-cache
|
||||
- ./_site:/srv/jekyll/_site
|
||||
- "4000:80"
|
||||
restart: unless-stopped
|
||||
|
||||
@@ -1,13 +1,8 @@
|
||||
---
|
||||
layout: default
|
||||
title: Architecture
|
||||
has_children: true
|
||||
nav_order: 5
|
||||
sidebar_position: 5
|
||||
sidebar_label: "Architecture"
|
||||
---
|
||||
|
||||
# Architecture
|
||||
{: .no_toc }
|
||||
|
||||
---
|
||||
|
||||
AliasVault implements zero-knowledge encryption where sensitive user data never leaves the client device in unencrypted form. Below is a detailed explanation of how the system secures user data and communications.
|
||||
@@ -20,22 +15,13 @@ AliasVault implements zero-knowledge encryption where sensitive user data never
|
||||
The security architecture diagram below illustrates all encryption and authentication processes used in AliasVault to secure user data and communications.
|
||||
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="../assets/diagrams/security-architecture/aliasvault-security-architecture-dark.svg">
|
||||
<source media="(prefers-color-scheme: light)" srcset="../assets/diagrams/security-architecture/aliasvault-security-architecture-light.svg">
|
||||
<img alt="AliasVault Security Architecture Diagram" src="../assets/diagrams/security-architecture/aliasvault-security-architecture-light.svg">
|
||||
<source media="(prefers-color-scheme: dark)" srcset="/assets/diagrams/security-architecture/aliasvault-security-architecture-dark.svg">
|
||||
<source media="(prefers-color-scheme: light)" srcset="/assets/diagrams/security-architecture/aliasvault-security-architecture-light.svg">
|
||||
<img alt="AliasVault Security Architecture Diagram" src="/assets/diagrams/security-architecture/aliasvault-security-architecture-light.svg">
|
||||
</picture>
|
||||
|
||||
You can also view the diagram in a browser-friendly HTML format: [AliasVault Security Architecture](https://docs.aliasvault.net/assets/diagrams/security-architecture/aliasvault-security-architecture.html)
|
||||
|
||||
<details open markdown="block">
|
||||
<summary>
|
||||
Table of contents
|
||||
</summary>
|
||||
{: .text-delta }
|
||||
- TOC
|
||||
{:toc}
|
||||
</details>
|
||||
|
||||
## Key Components and Process Flow
|
||||
|
||||
### 1. Key Derivation
|
||||
4
docs/docs/browser-extensions/_category_.json
Normal file
4
docs/docs/browser-extensions/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Browser Extensions",
|
||||
"position": 3
|
||||
}
|
||||
4
docs/docs/browser-extensions/chrome/_category_.json
Normal file
4
docs/docs/browser-extensions/chrome/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Google Chrome",
|
||||
"position": 2
|
||||
}
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Build from Source
|
||||
parent: Google Chrome
|
||||
grand_parent: Browser Extensions
|
||||
nav_order: 2
|
||||
sidebar_position: 2
|
||||
sidebar_label: "Build from Source"
|
||||
---
|
||||
|
||||
# Building Google Chrome Extension from Source
|
||||
|
||||
This guide explains how to build and install the AliasVault Google Chrome extension from source code.
|
||||
@@ -1,10 +1,6 @@
|
||||
---
|
||||
layout: default
|
||||
title: Google Chrome
|
||||
parent: Browser Extensions
|
||||
nav_order: 2
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Google Chrome Extension
|
||||
In order to install the Google Chrome Extension, see the options below.
|
||||
|
||||
4
docs/docs/browser-extensions/edge/_category_.json
Normal file
4
docs/docs/browser-extensions/edge/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Microsoft Edge",
|
||||
"position": 3
|
||||
}
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Build from Source
|
||||
parent: Microsoft Edge
|
||||
grand_parent: Browser Extensions
|
||||
nav_order: 2
|
||||
sidebar_position: 2
|
||||
sidebar_label: "Build from Source"
|
||||
---
|
||||
|
||||
# Building Microsoft Edge Extension from Source
|
||||
|
||||
This guide explains how to build and install the AliasVault Microsoft Edge extension from source code.
|
||||
@@ -1,10 +1,6 @@
|
||||
---
|
||||
layout: default
|
||||
title: Microsoft Edge
|
||||
parent: Browser Extensions
|
||||
nav_order: 3
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
# Microsoft Edge Extension
|
||||
In order to install the Microsoft Edge Extension, see the options below.
|
||||
|
||||
4
docs/docs/browser-extensions/firefox/_category_.json
Normal file
4
docs/docs/browser-extensions/firefox/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Firefox",
|
||||
"position": 1
|
||||
}
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Build from Source
|
||||
parent: Firefox
|
||||
grand_parent: Browser Extensions
|
||||
nav_order: 2
|
||||
sidebar_position: 2
|
||||
sidebar_label: "Build from Source"
|
||||
---
|
||||
|
||||
# Building Firefox Extension from Source
|
||||
|
||||
This guide explains how to build and install the AliasVault Firefox extension from source code.
|
||||
@@ -1,10 +1,6 @@
|
||||
---
|
||||
layout: default
|
||||
title: Firefox
|
||||
parent: Browser Extensions
|
||||
nav_order: 1
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Firefox Extension
|
||||
In order to install the Firefox Extension, see the options below.
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
---
|
||||
layout: default
|
||||
title: Browser Extensions
|
||||
has_children: true
|
||||
nav_order: 3
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
# Browser Extensions
|
||||
|
||||
This section contains information about installing and using the AliasVault browser extensions. Browser extensions allow you to manage and use AliasVault from within your browser enabling autofilling of login credentials and email aliases on all websites that you use.
|
||||
4
docs/docs/browser-extensions/safari/_category_.json
Normal file
4
docs/docs/browser-extensions/safari/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Safari",
|
||||
"position": 4
|
||||
}
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Build from Source
|
||||
parent: Safari
|
||||
grand_parent: Browser Extensions
|
||||
nav_order: 2
|
||||
sidebar_position: 2
|
||||
sidebar_label: "Build from Source"
|
||||
---
|
||||
|
||||
# Building Safari Extension from Source
|
||||
|
||||
This guide explains how to build and install the AliasVault Safari extension from source code.
|
||||
@@ -1,10 +1,6 @@
|
||||
---
|
||||
layout: default
|
||||
title: Safari
|
||||
parent: Browser Extensions
|
||||
nav_order: 4
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
# Safari Extension
|
||||
In order to install the Safari Extension, see the options below.
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Help and Support
|
||||
has_children: true
|
||||
nav_order: 100
|
||||
sidebar_position: 100
|
||||
sidebar_label: "Help and Support"
|
||||
---
|
||||
|
||||
# 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).
|
||||
4
docs/docs/contributing/_category_.json
Normal file
4
docs/docs/contributing/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Contributing",
|
||||
"position": 8
|
||||
}
|
||||
@@ -1,10 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Identity Generator
|
||||
parent: Contributing
|
||||
nav_order: 2
|
||||
sidebar_position: 2
|
||||
sidebar_label: "Identity Generator"
|
||||
---
|
||||
|
||||
# Identity Generator Translations
|
||||
|
||||
In AliasVault, when creating a new credential, AliasVault automatically generates realistic alias identities including:
|
||||
@@ -1,10 +1,6 @@
|
||||
---
|
||||
layout: default
|
||||
title: Contributing
|
||||
nav_order: 8
|
||||
has_children: true
|
||||
sidebar_position: 8
|
||||
---
|
||||
|
||||
# Contributing to AliasVault
|
||||
|
||||
Thank you for your interest in contributing to AliasVault! There are many ways you can help to make AliasVault better for privacy-conscious users worldwide.
|
||||
@@ -14,16 +10,16 @@ Thank you for your interest in contributing to AliasVault! There are many ways y
|
||||
Here are some common ways you can help the AliasVault project:
|
||||
|
||||
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem; margin: 2rem 0;">
|
||||
<div style="border: 2px solid #6366f1; border-radius: 8px; padding: 1.5rem; background: linear-gradient(135deg, #667eea22 0%, #764ba222 100%);">
|
||||
<h3 style="margin-top: 0; color: #6366f1;">🌍 Translate UI</h3>
|
||||
<div style="border: 2px solid #f49541; border-radius: 8px; padding: 1.5rem; background: linear-gradient(135deg, #f4954122 0%, #d6833822 100%);">
|
||||
<h3 style="margin-top: 0; color: #f49541;">🌍 Translate UI</h3>
|
||||
<p>Help translate AliasVault's interface into your language using Crowdin.</p>
|
||||
<a href="ui-translations.html" style="font-weight: bold;">Get Started →</a>
|
||||
<a href="ui-translations" style="font-weight: bold;">Get Started →</a>
|
||||
</div>
|
||||
|
||||
<div style="border: 2px solid #10b981; border-radius: 8px; padding: 1.5rem; background: linear-gradient(135deg, #10b98122 0%, #059669222 100%);">
|
||||
<h3 style="margin-top: 0; color: #10b981;">👤 Translate Identity Generator</h3>
|
||||
<div style="border: 2px solid #d68338; border-radius: 8px; padding: 1.5rem; background: linear-gradient(135deg, #d6833822 0%, #b8702f22 100%);">
|
||||
<h3 style="margin-top: 0; color: #d68338;">👤 Translate Identity Generator</h3>
|
||||
<p>Provide name dictionaries to make the identity generator support your language.</p>
|
||||
<a href="identity-generator.html" style="font-weight: bold;">Get Started →</a>
|
||||
<a href="identity-generator" style="font-weight: bold;">Get Started →</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: UI Translations
|
||||
parent: Contributing
|
||||
nav_order: 1
|
||||
sidebar_position: 1
|
||||
sidebar_label: "UI Translations"
|
||||
---
|
||||
|
||||
# UI Translations
|
||||
|
||||
Help make AliasVault accessible to users worldwide by translating the user interface! 🌍
|
||||
4
docs/docs/installation/_category_.json
Normal file
4
docs/docs/installation/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Self-host Install",
|
||||
"position": 2
|
||||
}
|
||||
4
docs/docs/installation/docker-compose/_category_.json
Normal file
4
docs/docs/installation/docker-compose/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Docker Compose",
|
||||
"position": 2
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Advanced",
|
||||
"position": 2
|
||||
}
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Admin access
|
||||
parent: Advanced
|
||||
grand_parent: Docker Compose
|
||||
nav_order: 5
|
||||
sidebar_position: 5
|
||||
sidebar_label: "Admin access"
|
||||
---
|
||||
|
||||
# Admin access
|
||||
|
||||
By default the admin panel at `/admin` is reachable from the public internet, alongside the regular client app. This is intentional and safe to leave as-is for most installations:
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Database Operations
|
||||
parent: Advanced
|
||||
grand_parent: Docker Compose
|
||||
nav_order: 4
|
||||
sidebar_position: 4
|
||||
sidebar_label: "Database Operations"
|
||||
---
|
||||
|
||||
# Database Operations
|
||||
This page explains how to import/export on the AliasVault server database via Docker commands.
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
---
|
||||
layout: default
|
||||
title: Advanced
|
||||
parent: Docker Compose
|
||||
nav_order: 2
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Advanced Installation
|
||||
The following guides provide more advanced installation options for AliasVault. These options are not required for the basic installation, but may be useful for advanced users.
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Stop/start
|
||||
parent: Advanced
|
||||
grand_parent: Docker Compose
|
||||
nav_order: 2
|
||||
sidebar_position: 2
|
||||
sidebar_label: "Stop/start"
|
||||
---
|
||||
|
||||
# Stopping and starting AliasVault
|
||||
You can stop and start AliasVault via the default docker compose commands. Run these commands from the directory where your AliasVault `docker-compose.yml` is located.
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Trusted proxies
|
||||
parent: Advanced
|
||||
grand_parent: Docker Compose
|
||||
nav_order: 6
|
||||
sidebar_position: 6
|
||||
sidebar_label: "Trusted proxies"
|
||||
---
|
||||
|
||||
# Trusted proxies
|
||||
|
||||
When AliasVault sits behind another reverse proxy (HAProxy, Traefik, Cloudflare, an upstream nginx, etc.), the built-in nginx reads the real client IP from the `X-Forwarded-For` header so that audit logs and the IP allowlist see the actual client rather than the upstream proxy.
|
||||
@@ -1,17 +1,14 @@
|
||||
---
|
||||
layout: default
|
||||
title: Uninstall
|
||||
parent: Advanced
|
||||
grand_parent: Docker Compose
|
||||
nav_order: 4
|
||||
sidebar_position: 4
|
||||
sidebar_label: "Uninstall"
|
||||
---
|
||||
|
||||
# Uninstall
|
||||
|
||||
To uninstall AliasVault, run the following command. This will stop and remove the AliasVault containers and remove the Docker images.
|
||||
|
||||
{: .note }
|
||||
:::note
|
||||
This will not delete any data stored in the database. If you wish to delete all data, you should manually delete the `database` directory and the other directories created by AliasVault.
|
||||
:::
|
||||
|
||||
### Steps
|
||||
1. Run docker compose down and remove any local Docker images related to AliasVault.
|
||||
@@ -1,32 +1,16 @@
|
||||
---
|
||||
layout: default
|
||||
title: Docker Compose
|
||||
parent: Self-host Install
|
||||
redirect_from:
|
||||
- /installation/advanced/manual-setup
|
||||
- /installation/advanced/manual-setup.html
|
||||
nav_order: 2
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Self-host using Docker Compose (single container)
|
||||
The following guide will walk you through the steps to install AliasVault via the All-In-One Docker container. This container uses `s6-overlay` to combine all AliasVault's services into one image for convenience. The only downside compared to the `install.sh` installer is that this version does NOT come with SSL/TLS support, so you'll have to make the container available through your own SSL/TLS proxy.
|
||||
|
||||
<details open markdown="block">
|
||||
<summary>
|
||||
Table of contents
|
||||
</summary>
|
||||
{: .text-delta }
|
||||
1. TOC
|
||||
{:toc}
|
||||
</details>
|
||||
|
||||
{: .important-title }
|
||||
> Requirements:
|
||||
> - Docker (20.10+) and Docker Compose (2.0+) installed on your system
|
||||
> - See instructions: [https://docs.docker.com/engine/install/](https://docs.docker.com/engine/install/)
|
||||
> - You have existing SSL/TLS proxy infrastructure (Traefik, Nginx, HAProxy, Cloudflare Tunnel)
|
||||
> - Knowledge of working with direct Docker commands
|
||||
> - Knowledge of .yml and .env files
|
||||
:::info[Requirements]
|
||||
- Docker (20.10+) and Docker Compose (2.0+) installed on your system
|
||||
- See instructions: [https://docs.docker.com/engine/install/](https://docs.docker.com/engine/install/)
|
||||
- You have existing SSL/TLS proxy infrastructure (Traefik, Nginx, HAProxy, Cloudflare Tunnel)
|
||||
- Knowledge of working with direct Docker commands
|
||||
- Knowledge of .yml and .env files
|
||||
:::
|
||||
|
||||
## 1. Basic installation
|
||||
1. Create a new folder where you want to store AliasVault's data and configuration folders.
|
||||
@@ -94,9 +78,10 @@ You must set up and configure your own TLS/SSL infrastructure (such as Traefik,
|
||||
|
||||
AliasVault includes a built-in email server that allows you to generate email aliases on-the-fly for every website you use, and receive the emails straight in AliasVault.
|
||||
|
||||
{: .note }
|
||||
:::note
|
||||
If you skip this step, AliasVault will default to use public email domains offered by SpamOK. While this still works for creating aliases, it has privacy limitations. For complete privacy and control, we recommend setting up your own domain.
|
||||
[Learn more about the differences between private and public email domains](../../misc/private-vs-public-email.md).
|
||||
:::
|
||||
|
||||
### Requirements
|
||||
- A **public IPv4 address** with ports 25 and 587 forwarded to your AliasVault server
|
||||
@@ -186,8 +171,9 @@ docker compose up -d
|
||||
|
||||
Afterwards, when you login to the AliasVault web app, you should now be able to create an alias with your configured private domain and be able to receive email on it.
|
||||
|
||||
{: .note }
|
||||
:::note
|
||||
Important: DNS propagation can take up to 24-48 hours. During this time, email delivery might be inconsistent.
|
||||
:::
|
||||
|
||||
If you encounter any issues, feel free to join the [Discord chat](https://discord.gg/DsaXMTEtpF) to get help from other users and maintainers.
|
||||
|
||||
@@ -216,8 +202,9 @@ By default, SMTP TLS is disabled (`SMTP_TLS_ENABLED: "false"`). This does NOT si
|
||||
4. Update your `docker-compose.yml` to set `SMTP_TLS_ENABLED: "true"`
|
||||
5. Restart the container: `docker compose down && docker compose up -d`
|
||||
|
||||
{: .note }
|
||||
:::note
|
||||
If you have multiple mail domains, use a single certificate with Subject Alternative Names (SANs) covering all domains. If TLS is enabled but no valid certificate is found, the service will log a warning (visible in admin panel > general logs) and continue in non-TLS mode.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
@@ -1,18 +1,10 @@
|
||||
---
|
||||
layout: default
|
||||
title: Troubleshooting
|
||||
parent: Docker Compose
|
||||
nav_order: 3
|
||||
sidebar_position: 3
|
||||
sidebar_label: "Troubleshooting"
|
||||
---
|
||||
|
||||
# Troubleshooting
|
||||
|
||||
This guide covers common issues and troubleshooting steps for AliasVault encountered during installation, updates or general maintenance.
|
||||
|
||||
{: .toc }
|
||||
* TOC
|
||||
{:toc}
|
||||
|
||||
---
|
||||
|
||||
## Check Docker Container Status
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Update",
|
||||
"position": 1
|
||||
}
|
||||
@@ -1,31 +1,18 @@
|
||||
---
|
||||
layout: default
|
||||
title: Update
|
||||
parent: Docker Compose
|
||||
nav_order: 1
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Updating AliasVault
|
||||
{: .no_toc }
|
||||
|
||||
{: .note }
|
||||
:::note
|
||||
This guide is for Docker Compose manual installations. If you're using the `install.sh` script for self-hosted installations, see [Install Script Update Guide](../../script/update/).
|
||||
|
||||
<details open markdown="block">
|
||||
<summary>
|
||||
Table of contents
|
||||
</summary>
|
||||
{: .text-delta }
|
||||
1. TOC
|
||||
{:toc}
|
||||
</details>
|
||||
:::
|
||||
|
||||
## Before You Begin
|
||||
You can see the latest available version of AliasVault on [GitHub](https://github.com/aliasvault/aliasvault/releases).
|
||||
|
||||
{: .warning }
|
||||
:::warning
|
||||
Before updating, it's recommended to backup your database and other important data. You can do this by making
|
||||
a copy of the `database` and `certificates` directories.
|
||||
:::
|
||||
|
||||
## Standard Update Process
|
||||
For most version updates, you can use the standard update process. The container will automatically handle database migrations on startup:
|
||||
@@ -1,9 +1,6 @@
|
||||
---
|
||||
layout: default
|
||||
title: Self-host Install
|
||||
nav_order: 2
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Self-host Install
|
||||
|
||||
AliasVault can be self-hosted on your own servers using two different installation methods. Both use Docker, but they differ in how much is automated versus how much you manage yourself.
|
||||
@@ -28,7 +25,7 @@ If you prefer manual setup and **have existing SSL infrastructure**, use the all
|
||||
| **Setup style** | Managed, opinionated, production-ready defaults | Fits into existing homelab/stack tools (Portainer compatible) |
|
||||
| **Build from source** | Supported | Pre-built container only |
|
||||
| **Choose if…** | You want auto SSL and a managed stack | You already have TLS and prefer manual control |
|
||||
| | [**Self-host via Install Script →**](./script){: .btn .btn-primary } | [**Self-host via Docker →**](./docker-compose){: .btn .btn-primary } |
|
||||
| | [**Self-host via Install Script →**](./script) | [**Self-host via Docker →**](./docker-compose) |
|
||||
|
||||
### Quick Decision Guide
|
||||
|
||||
@@ -44,7 +41,6 @@ If you prefer manual setup and **have existing SSL infrastructure**, use the all
|
||||
- ✅ You want to integrate with your homelab tools (Portainer, etc.)
|
||||
- ✅ You prefer manual control over the configuration
|
||||
|
||||
|
||||
---
|
||||
|
||||
## Frequently Asked Questions
|
||||
4
docs/docs/installation/script/_category_.json
Normal file
4
docs/docs/installation/script/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Install Script",
|
||||
"position": 1
|
||||
}
|
||||
4
docs/docs/installation/script/advanced/_category_.json
Normal file
4
docs/docs/installation/script/advanced/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Advanced",
|
||||
"position": 4
|
||||
}
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Admin access
|
||||
parent: Advanced
|
||||
grand_parent: Install Script
|
||||
nav_order: 5
|
||||
sidebar_position: 5
|
||||
sidebar_label: "Admin access"
|
||||
---
|
||||
|
||||
# Admin access
|
||||
|
||||
By default the admin panel at `/admin` is reachable from the public internet, alongside the regular client app. This is intentional and safe to leave as-is for most installations:
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Build from Source
|
||||
parent: Advanced
|
||||
grand_parent: Install Script
|
||||
nav_order: 3
|
||||
sidebar_position: 3
|
||||
sidebar_label: "Build from Source"
|
||||
---
|
||||
|
||||
# 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.
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Database Operations
|
||||
parent: Advanced
|
||||
grand_parent: Install Script
|
||||
nav_order: 4
|
||||
sidebar_position: 4
|
||||
sidebar_label: "Database Operations"
|
||||
---
|
||||
|
||||
# Database Operations
|
||||
This page explains how to import/export on the AliasVault server database via the `./install.sh` script.
|
||||
|
||||
@@ -40,8 +36,9 @@ $ ./install.sh db-import < backup.sql.gz
|
||||
### Fallback: import directly with Docker
|
||||
If `./install.sh db-import` hangs or fails, you can restore the database directly with Docker. This drops the existing database, recreates it, and imports the backup.
|
||||
|
||||
{: .warning }
|
||||
:::warning
|
||||
This will permanently delete the existing database before restoring. Make sure your backup file is valid first.
|
||||
:::
|
||||
|
||||
For a gzipped backup (`backup.sql.gz`):
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
---
|
||||
layout: default
|
||||
title: Advanced
|
||||
parent: Install Script
|
||||
nav_order: 4
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
# Advanced Installation
|
||||
The following guides provide more advanced installation options for AliasVault. These options are not required for the basic installation, but may be useful for advanced users.
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Stop/start
|
||||
parent: Advanced
|
||||
grand_parent: Install Script
|
||||
nav_order: 2
|
||||
sidebar_position: 2
|
||||
sidebar_label: "Stop/start"
|
||||
---
|
||||
|
||||
# Stopping and starting AliasVault
|
||||
You can stop and start AliasVault easily by using the install script.
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Trusted proxies
|
||||
parent: Advanced
|
||||
grand_parent: Install Script
|
||||
nav_order: 6
|
||||
sidebar_position: 6
|
||||
sidebar_label: "Trusted proxies"
|
||||
---
|
||||
|
||||
# Trusted proxies
|
||||
|
||||
When AliasVault sits behind another reverse proxy (HAProxy, Traefik, Cloudflare, an upstream nginx, etc.), the built-in nginx reads the real client IP from the `X-Forwarded-For` header so that audit logs and the IP allowlist see the actual client rather than the upstream proxy.
|
||||
@@ -1,17 +1,14 @@
|
||||
---
|
||||
layout: default
|
||||
title: Uninstall
|
||||
parent: Advanced
|
||||
grand_parent: Install Script
|
||||
nav_order: 4
|
||||
sidebar_position: 4
|
||||
sidebar_label: "Uninstall"
|
||||
---
|
||||
|
||||
# Uninstall
|
||||
|
||||
To uninstall AliasVault, run the install script with the `uninstall` option. This will stop and remove the AliasVault containers and remove any local AliasVault Docker images.
|
||||
|
||||
{: .note }
|
||||
:::note
|
||||
This will not delete any data stored in the database. If you wish to delete all data, you should manually delete the `database` directory and the other directories created by AliasVault.
|
||||
:::
|
||||
|
||||
### Steps
|
||||
1. Run the install script with the `uninstall` option
|
||||
@@ -1,32 +1,16 @@
|
||||
---
|
||||
layout: default
|
||||
title: Install Script
|
||||
parent: Self-host Install
|
||||
redirect_from:
|
||||
- /installation/install
|
||||
- /installation/install.html
|
||||
nav_order: 1
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Self-host using Install Script (multi-container)
|
||||
The following guide will walk you through the steps to install AliasVault on your own server using the AliasVault installer script: `install.sh`. This script will pull pre-built Docker Images and do all the configuration for you while using `docker compose` in the background.
|
||||
|
||||
<details open markdown="block">
|
||||
<summary>
|
||||
Table of contents
|
||||
</summary>
|
||||
{: .text-delta }
|
||||
1. TOC
|
||||
{:toc}
|
||||
</details>
|
||||
|
||||
{: .important-title }
|
||||
> Requirements:
|
||||
> - 64-bit Linux VM with root access (Ubuntu or RHEL-based recommended)
|
||||
> - Minimum: 1 vCPU, 1GB RAM, 16GB disk
|
||||
> - Docker (CE ≥ 20.10) and Docker Compose (≥ 2.0)
|
||||
> → Installation guide: [Docker Docs](https://docs.docker.com/engine/install/)
|
||||
> - Able to forward ports 80, 443 (with optional 25/587 for private email domains)
|
||||
:::info[Requirements]
|
||||
- 64-bit Linux VM with root access (Ubuntu or RHEL-based recommended)
|
||||
- Minimum: 1 vCPU, 1GB RAM, 16GB disk
|
||||
- Docker (CE ≥ 20.10) and Docker Compose (≥ 2.0)
|
||||
→ Installation guide: [Docker Docs](https://docs.docker.com/engine/install/)
|
||||
- Able to forward ports 80, 443 (with optional 25/587 for private email domains)
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
@@ -83,8 +67,9 @@ and then in the prompt choose option 2.
|
||||
|
||||
AliasVault includes a built-in email server that allows you to generate email aliases on-the-fly for every website you use, and receive + read the emails straight in AliasVault.
|
||||
|
||||
{: .note }
|
||||
:::note
|
||||
If you skip this step, AliasVault will default to use public email domains offered by SpamOK. While this still works for creating aliases, it has privacy limitations. For complete privacy and control, we recommend setting up your own domain. [Learn more about the differences between private and public email domains](../../misc/private-vs-public-email.md).
|
||||
:::
|
||||
|
||||
### Requirements
|
||||
- A **public IPv4 address** with ports 25 and 587 forwarded to your AliasVault server
|
||||
@@ -175,8 +160,9 @@ After setting up your DNS, continue with configuring AliasVault to let it know w
|
||||
- Note: you can configure the default domain for new aliases in the AliasVault client in Menu > Settings > Email Settings > Default Email Domain
|
||||
- Start receiving emails on your aliases
|
||||
|
||||
{: .note }
|
||||
:::note
|
||||
Important: DNS propagation can take up to 24-48 hours. During this time, email delivery might be inconsistent.
|
||||
:::
|
||||
|
||||
If you encounter any issues, feel free to join the [Discord chat](https://discord.gg/DsaXMTEtpF) to get help from other users and maintainers.
|
||||
|
||||
@@ -190,8 +176,9 @@ By default, SMTP TLS is disabled. This does NOT significantly impact email deliv
|
||||
4. Edit your `.env` file and set `SMTP_TLS_ENABLED=true`
|
||||
5. Restart the SMTP service: `./install.sh restart smtp`
|
||||
|
||||
{: .note }
|
||||
:::note
|
||||
If you have multiple mail domains, use a single certificate with Subject Alternative Names (SANs) covering all domains. If TLS is enabled but no valid certificate is found, the service will log a warning (visible in admin panel > general logs) and continue in non-TLS mode.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
@@ -205,8 +192,9 @@ If you want to disable public registration, you can do so by running the install
|
||||
./install.sh configure-registration
|
||||
```
|
||||
|
||||
{: .note }
|
||||
:::note
|
||||
Disabling public registration means the ability to create new accounts in the AliasVault client is disabled for everyone, including administrators. Accounts cannot be created outside of the client because of the end-to-end encryption employed by AliasVault. So make sure you have created your own account(s) before disabling public registration.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
@@ -220,8 +208,9 @@ If you want to entirely disable IP logging, you can do so by running the install
|
||||
./install.sh configure-ip-logging
|
||||
```
|
||||
|
||||
{: .note }
|
||||
:::note
|
||||
Disabling IP logging means the ability to monitor and track abusive users on your AliasVault server is disabled.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
@@ -1,21 +1,10 @@
|
||||
---
|
||||
layout: default
|
||||
title: Troubleshooting
|
||||
parent: Install Script
|
||||
redirect_from:
|
||||
- /installation/troubleshooting
|
||||
- /installation/troubleshooting.html
|
||||
nav_order: 5
|
||||
sidebar_position: 5
|
||||
sidebar_label: "Troubleshooting"
|
||||
---
|
||||
|
||||
# Troubleshooting
|
||||
|
||||
This guide covers common issues and troubleshooting steps for AliasVault encountered during installation, updates or general maintenance.
|
||||
|
||||
{: .toc }
|
||||
* TOC
|
||||
{:toc}
|
||||
|
||||
---
|
||||
|
||||
## Check Docker Container Status
|
||||
@@ -107,7 +96,6 @@ If you are not receiving emails on your aliases, check the following:
|
||||
|
||||
Refer to the [installation guide](./#3-email-server-setup) for more information on how to configure your DNS records and ports.
|
||||
|
||||
|
||||
### 4. Forgot AliasVault Admin Password
|
||||
If you have lost your admin password, you can reset it by running the install script with the `reset-admin-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.
|
||||
|
||||
4
docs/docs/installation/script/update/_category_.json
Normal file
4
docs/docs/installation/script/update/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Update",
|
||||
"position": 3
|
||||
}
|
||||
@@ -1,34 +1,18 @@
|
||||
---
|
||||
layout: default
|
||||
title: Update
|
||||
parent: Install Script
|
||||
redirect_from:
|
||||
- /installation/update
|
||||
- /installation/update.html
|
||||
nav_order: 3
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
# Updating AliasVault
|
||||
{: .no_toc }
|
||||
|
||||
{: .note }
|
||||
:::note
|
||||
This guide is for self-hosted installations using the `install.sh` script. If you're using Docker Compose for manual installs, see [Docker Compose Update Guide](../../docker-compose/update/).
|
||||
|
||||
<details open markdown="block">
|
||||
<summary>
|
||||
Table of contents
|
||||
</summary>
|
||||
{: .text-delta }
|
||||
1. TOC
|
||||
{:toc}
|
||||
</details>
|
||||
:::
|
||||
|
||||
## Before You Begin
|
||||
You can see the latest available version of AliasVault on [GitHub](https://github.com/aliasvault/aliasvault/releases).
|
||||
|
||||
{: .warning }
|
||||
:::warning
|
||||
Before updating, it's recommended to backup your database and other important data. You can do this by making
|
||||
a copy of the `database` and `certificates` directories.
|
||||
:::
|
||||
|
||||
## Standard Update Process
|
||||
For most version updates, you can use the standard update process:
|
||||
@@ -42,8 +26,8 @@ For most version updates, you can use the standard update process:
|
||||
## Version-Specific Upgrade Guides
|
||||
Upgrading from certain earlier versions require additional steps during upgrade. If you are upgrading from an older version, please check the relevant articles below if it applies to your server:
|
||||
|
||||
- [Updating to 0.23.0](v0.23.0.html) - Update Docker Image locations due to new AliasVault GitHub organization
|
||||
- [Updating to 0.22.0](v0.22.0.html) - Move secrets from .env to file based secrets
|
||||
- [Updating to 0.23.0](v0.23.0.md) - Update Docker Image locations due to new AliasVault GitHub organization
|
||||
- [Updating to 0.22.0](v0.22.0.md) - Move secrets from .env to file based secrets
|
||||
|
||||
## Additional Update Options
|
||||
|
||||
@@ -1,17 +1,8 @@
|
||||
---
|
||||
layout: default
|
||||
title: Update to v0.22.0
|
||||
parent: Update
|
||||
grand_parent: Install Script
|
||||
redirect_from:
|
||||
- /installation/update/v0.22.0
|
||||
- /installation/update/v0.22.0.html
|
||||
nav_order: 2
|
||||
sidebar_position: 2
|
||||
sidebar_label: "Update to v0.22.0"
|
||||
---
|
||||
|
||||
# Updating to v0.22.0
|
||||
{: .no_toc }
|
||||
|
||||
Since v0.22.0, the AliasVault docker structure has changed due to the introduction of the new (optional) all-in-one docker image that simplifies self-hosting use for NAS/Unraid and other home use. Data structure changes involve secrets that have moved from .env to a new `./secrets` bind mount, and several other .env params that are now optional and do not require to be explicitly set for a clean install.
|
||||
|
||||
## Update Methods
|
||||
@@ -1,17 +1,8 @@
|
||||
---
|
||||
layout: default
|
||||
title: Update to v0.23.0
|
||||
parent: Update
|
||||
grand_parent: Install Script
|
||||
redirect_from:
|
||||
- /installation/update/v0.23.0
|
||||
- /installation/update/v0.23.0.html
|
||||
nav_order: 1
|
||||
sidebar_position: 1
|
||||
sidebar_label: "Update to v0.23.0"
|
||||
---
|
||||
|
||||
# Updating to v0.23.0
|
||||
{: .no_toc }
|
||||
|
||||
Since v0.23.0, AliasVault has moved from `lanedirt/aliasvault` to the new `aliasvault/aliasvault` GitHub organization, and Docker image names have been simplified.
|
||||
|
||||
## Update Methods
|
||||
4
docs/docs/misc/_category_.json
Normal file
4
docs/docs/misc/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Miscellaneous",
|
||||
"position": 7
|
||||
}
|
||||
4
docs/docs/misc/dev/_category_.json
Normal file
4
docs/docs/misc/dev/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Development",
|
||||
"position": 99
|
||||
}
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Add new language
|
||||
parent: Development
|
||||
grand_parent: Miscellaneous
|
||||
nav_order: 3
|
||||
sidebar_position: 3
|
||||
sidebar_label: "Add new language"
|
||||
---
|
||||
|
||||
# Add new language
|
||||
To add a new language to AliasVault, follow these steps in order:
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Browser extensions
|
||||
parent: Development
|
||||
grand_parent: Miscellaneous
|
||||
nav_order: 3
|
||||
sidebar_position: 3
|
||||
sidebar_label: "Browser extensions"
|
||||
---
|
||||
|
||||
# Browser extensions
|
||||
AliasVault offers browser extensions compatible with both Chrome and Firefox. This guide explains how to build and debug the extensions locally.
|
||||
|
||||
@@ -1,18 +1,13 @@
|
||||
---
|
||||
layout: default
|
||||
title: Database operations
|
||||
parent: Development
|
||||
grand_parent: Miscellaneous
|
||||
nav_order: 3
|
||||
sidebar_position: 3
|
||||
sidebar_label: "Database operations"
|
||||
---
|
||||
|
||||
# Database operations
|
||||
This article contains tips for how to work with the AliasVault PostgreSQL database in both production and development environments.
|
||||
|
||||
## Using install.sh helper methods (recommended)
|
||||
The `install.sh` script contains helper methods that makes it easy to export and import databases with a simple single command.
|
||||
|
||||
|
||||
### Export database
|
||||
```bash
|
||||
./install.sh db-export > aliasvault-db-export.sql.gz
|
||||
@@ -40,8 +35,9 @@ docker compose exec postgres pg_dump -U aliasvault aliasvault | gzip > aliasvaul
|
||||
### Import database from file
|
||||
To drop the existing database and restore the database from a file, you can use the following command:
|
||||
|
||||
{: .warning }
|
||||
:::warning
|
||||
Executing this command will drop the existing database and restore the database from the file. Make sure to have a backup of the existing database before running this command.
|
||||
:::
|
||||
|
||||
```bash
|
||||
docker compose exec postgres psql -U aliasvault postgres -c "DROP DATABASE aliasvault;" && \
|
||||
@@ -1,10 +1,6 @@
|
||||
---
|
||||
layout: default
|
||||
title: Development
|
||||
parent: Miscellaneous
|
||||
nav_order: 99
|
||||
sidebar_position: 99
|
||||
---
|
||||
|
||||
# Development Guide
|
||||
|
||||
Choose your platform to get started with AliasVault development:
|
||||
@@ -18,7 +14,7 @@ Choose your platform to get started with AliasVault development:
|
||||
|
||||
- [Browser extensions](browser-extensions.md)
|
||||
- [Database operations](database-operations.md)
|
||||
- [Running GitHub Actions Locally](run-github-actions-locally.md)
|
||||
- Running GitHub Actions Locally
|
||||
- [Upgrading EF Server Model](upgrade-ef-server-model.md)
|
||||
- [Upgrading EF Client Model](upgrade-ef-client-model.md)
|
||||
- [Enabling WebAuthn PFR in Chrome](enable-webauthn-pfr-chrome.md)
|
||||
- Enabling WebAuthn PFR in Chrome
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Linux/MacOS development
|
||||
parent: Development
|
||||
grand_parent: Miscellaneous
|
||||
nav_order: 1
|
||||
sidebar_position: 1
|
||||
sidebar_label: "Linux/MacOS development"
|
||||
---
|
||||
|
||||
# Setting Up AliasVault Development Environment on Linux/MacOS
|
||||
|
||||
This guide will help you set up AliasVault for development on Linux or MacOS systems.
|
||||
4
docs/docs/misc/dev/mobile-apps/_category_.json
Normal file
4
docs/docs/misc/dev/mobile-apps/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Mobile Apps",
|
||||
"position": 4
|
||||
}
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Android
|
||||
parent: Mobile Apps
|
||||
grand_parent: Development
|
||||
nav_order: 1
|
||||
sidebar_position: 1
|
||||
sidebar_label: "Android"
|
||||
---
|
||||
|
||||
# Android
|
||||
This article covers Android specific parts of the React Native AliasVault app codebase.
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
---
|
||||
layout: default
|
||||
title: Mobile Apps
|
||||
parent: Development
|
||||
grand_parent: Miscellaneous
|
||||
nav_order: 4
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
# React Native Expo
|
||||
|
||||
## MacOS:
|
||||
4
docs/docs/misc/dev/mobile-apps/ios/_category_.json
Normal file
4
docs/docs/misc/dev/mobile-apps/ios/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "iOS",
|
||||
"position": 2
|
||||
}
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Testing guide
|
||||
parent: iOS
|
||||
grand_parent: Mobile Apps
|
||||
nav_order: 1
|
||||
sidebar_position: 1
|
||||
sidebar_label: "Testing guide"
|
||||
---
|
||||
|
||||
# Testing guide
|
||||
|
||||
This guide explains how to run the iOS test suites for the AliasVault mobile app.
|
||||
@@ -1,11 +1,6 @@
|
||||
---
|
||||
layout: default
|
||||
title: iOS
|
||||
parent: Mobile Apps
|
||||
grand_parent: Development
|
||||
nav_order: 2
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# iOS
|
||||
This article covers iOS specific parts of the React Native AliasVault app codebase.
|
||||
|
||||
4
docs/docs/misc/dev/release/_category_.json
Normal file
4
docs/docs/misc/dev/release/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Release",
|
||||
"position": 99
|
||||
}
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Git versioning strategy
|
||||
parent: Release
|
||||
grand_parent: Development
|
||||
nav_order: 3
|
||||
sidebar_position: 3
|
||||
sidebar_label: "Git versioning strategy"
|
||||
---
|
||||
|
||||
# Git versioning strategy
|
||||
|
||||
This document describes the **official release workflow** for AliasVault.
|
||||
@@ -1,18 +1,9 @@
|
||||
---
|
||||
layout: default
|
||||
title: Release
|
||||
parent: Development
|
||||
nav_order: 99
|
||||
sidebar_position: 99
|
||||
---
|
||||
|
||||
# Publish new release
|
||||
|
||||
Follow the steps in the checklist below to prepare a new release.
|
||||
|
||||
{: .toc }
|
||||
* TOC
|
||||
{:toc}
|
||||
|
||||
---
|
||||
|
||||
# Release preparation checklist
|
||||
@@ -54,7 +45,7 @@ The creation of the new release tag will cause the `install.sh` script to see th
|
||||
3. Publish the release.
|
||||
|
||||
### Publish new Docker Images
|
||||
The creation of the new release tag will automatically trigger the GitHub Actions workflow `Publish Docker Images` which will build the docker images and push them to the GitHub Container Registry. After publishing, the images will then be available for the installation script to pull during the update. Do take note that this publish step may take up to 15 minutes to complete. Between the creation of the release tag and the completion of the publish step, the installation script will not be able to pull the new images (yet) and can throw errors, this is expected. After the publish is completed, users can update their self-hosted installation by following the [update guide](/installation/update)
|
||||
The creation of the new release tag will automatically trigger the GitHub Actions workflow `Publish Docker Images` which will build the docker images and push them to the GitHub Container Registry. After publishing, the images will then be available for the installation script to pull during the update. Do take note that this publish step may take up to 15 minutes to complete. Between the creation of the release tag and the completion of the publish step, the installation script will not be able to pull the new images (yet) and can throw errors, this is expected. After the publish is completed, users can update their self-hosted installation by following the [update guide](/installation/script/update/)
|
||||
|
||||
#### To locally build and publish the all-in-one Docker image:
|
||||
GitHub Actions has had issues in the past with building the all-in-one Docker image for arm64 because of unknown timeouts. To locally build for both amd64 and arm64 and push manually, run the following:
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Manual versioning
|
||||
parent: Release
|
||||
grand_parent: Development
|
||||
nav_order: 2
|
||||
sidebar_position: 2
|
||||
sidebar_label: "Manual versioning"
|
||||
---
|
||||
|
||||
# Manual Versioning Steps
|
||||
|
||||
Alternatively, you can do it manually by following these steps:
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Release Checklist
|
||||
parent: Release
|
||||
grand_parent: Development
|
||||
nav_order: 4
|
||||
sidebar_position: 4
|
||||
sidebar_label: "Release Checklist"
|
||||
---
|
||||
|
||||
# Release Checklist
|
||||
|
||||
Step-by-step guide for creating a new AliasVault release.
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Upgrade the AliasClientDb EF model
|
||||
parent: Development
|
||||
grand_parent: Miscellaneous
|
||||
nav_order: 5
|
||||
sidebar_position: 5
|
||||
sidebar_label: "Upgrade the AliasClientDb EF model"
|
||||
---
|
||||
|
||||
# Upgrade the AliasClientDb EF model
|
||||
|
||||
This guide explains how to upgrade the AliasVault client database structure. The AliasVault client database is built and managed using Entity Framework code-first approach, where all SQL structure is maintained in code and then converted to SQL scripts for use across web apps, browser extensions, and mobile apps.
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Upgrade the AliasServerDb EF model
|
||||
parent: Development
|
||||
grand_parent: Miscellaneous
|
||||
nav_order: 6
|
||||
sidebar_position: 6
|
||||
sidebar_label: "Upgrade the AliasServerDb EF model"
|
||||
---
|
||||
|
||||
# Upgrade the AliasServerDb EF model
|
||||
|
||||
## Create new migration
|
||||
@@ -1,12 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Windows development
|
||||
parent: Development
|
||||
grand_parent: Miscellaneous
|
||||
nav_order: 2
|
||||
sidebar_position: 2
|
||||
sidebar_label: "Windows development"
|
||||
---
|
||||
|
||||
|
||||
# Setting Up AliasVault Development Environment on Windows
|
||||
|
||||
This guide will help you set up AliasVault for development on Windows using WSL (Windows Subsystem for Linux).
|
||||
6
docs/docs/misc/index.md
Normal file
6
docs/docs/misc/index.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
sidebar_position: 7
|
||||
---
|
||||
# Miscellaneous
|
||||
|
||||
Miscellaneous guides and documentation.
|
||||
@@ -1,10 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Private vs Public Email Domains
|
||||
parent: Miscellaneous
|
||||
nav_order: 4
|
||||
sidebar_position: 4
|
||||
sidebar_label: "Private vs Public Email Domains"
|
||||
---
|
||||
|
||||
# Private vs Public Email Domains
|
||||
AliasVault offers two types of email domains: private and public.
|
||||
|
||||
4
docs/docs/mobile-apps/_category_.json
Normal file
4
docs/docs/mobile-apps/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Mobile Apps",
|
||||
"position": 4
|
||||
}
|
||||
4
docs/docs/mobile-apps/android/_category_.json
Normal file
4
docs/docs/mobile-apps/android/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Android App",
|
||||
"position": 1
|
||||
}
|
||||
@@ -1,19 +1,16 @@
|
||||
---
|
||||
layout: default
|
||||
title: Autofill & Passkeys
|
||||
parent: Android App
|
||||
grand_parent: Mobile Apps
|
||||
nav_order: 2
|
||||
sidebar_position: 2
|
||||
sidebar_label: "Autofill & Passkeys"
|
||||
---
|
||||
|
||||
# Android Autofill & Passkeys
|
||||
|
||||
This page explains how autofill and passkeys work in the AliasVault Android app.
|
||||
|
||||
## Experimental
|
||||
|
||||
{: .note }
|
||||
:::note
|
||||
As of writing (October 2025), autofill and passkey support for Android is in an experimental state. If you're having trouble please read the instructions on this page.
|
||||
:::
|
||||
|
||||
Android has added multiple autofill APIs throughout the years, which include Accessibility, Native Autofill, and Inline Autofill. These multiple APIs make it hard to offer a universal experience for AliasVault. AliasVault currently supports some but not all of these, so results may vary depending on your device and the app you're using. We're actively working on improving autofill in upcoming releases.
|
||||
|
||||
@@ -35,9 +32,9 @@ Passkeys are supported in most places for both creation and authentication. Howe
|
||||
**Not Yet Supported:**
|
||||
- ❌ **PRF Extension**: The PRF (Pseudo-Random Function) extension is currently not supported on Android due to Android Credential Manager restrictions. Only Google Password Manager or hardware passkeys like YubiKey support PRF at this moment. When Android adds support for third-party credential providers to advertise PRF capabilities, AliasVault will implement it.
|
||||
|
||||
{: .note }
|
||||
:::note
|
||||
The PRF extension is fully supported in AliasVault's browser extension and iOS app. The Android limitation is specific to the platform's Credential Manager API.
|
||||
|
||||
:::
|
||||
|
||||
## Using Native Autofill in Chrome
|
||||
Currently AliasVault implements the `Native Autofill` API which shows an autofill popup on supported input fields. The Chrome browser on Android from **version 135** onwards support native autofill via third party apps. However you need to enable this manually.
|
||||
@@ -49,9 +46,8 @@ To configure AliasVault as the autofill provider in Chrome:
|
||||
|
||||
When you have correctly set up native autofill it should look like the examples below. Whenever you focus on a username, email or password field, the autofill popup will be triggered:
|
||||
|
||||
<img src="../../../assets/img/android/autofill/one-option.png" alt="Android Autofill Popup Example" width="300" height="auto">
|
||||
<img src="../../../assets/img/android/autofill/no-match.png" alt="Android Autofill Popup Example" width="300" height="auto">
|
||||
|
||||
<img src="/assets/img/android/autofill/one-option.png" alt="Android Autofill Popup Example" width="300" height="auto">
|
||||
<img src="/assets/img/android/autofill/no-match.png" alt="Android Autofill Popup Example" width="300" height="auto">
|
||||
|
||||
## Frequently Asked Questions
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Build from Source
|
||||
parent: Android App
|
||||
grand_parent: Mobile Apps
|
||||
nav_order: 1
|
||||
sidebar_position: 1
|
||||
sidebar_label: "Build from Source"
|
||||
---
|
||||
|
||||
# Building AliasVault Android App from Source
|
||||
|
||||
This guide explains how to build and install the AliasVault Android app from source code using React Native.
|
||||
@@ -38,7 +34,6 @@ npm install
|
||||
npx react-native run-android --mode release
|
||||
```
|
||||
|
||||
|
||||
5. For publishing to Google Play:
|
||||
Create a local gradle file in your user directory where the keystore credentials will be placed
|
||||
```bash
|
||||
@@ -1,10 +1,6 @@
|
||||
---
|
||||
layout: default
|
||||
title: Android App
|
||||
parent: Mobile Apps
|
||||
nav_order: 1
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Android app
|
||||
In order to install the Android iOS app, see the options below.
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: page
|
||||
title: Self-Signed SSL Setup
|
||||
parent: Android App
|
||||
grand_parent: Mobile Apps
|
||||
nav_order: 3
|
||||
sidebar_position: 3
|
||||
sidebar_label: "Self-Signed SSL Setup"
|
||||
---
|
||||
|
||||
# Self-Signed SSL Certificate Setup for Android
|
||||
|
||||
By default, the AliasVault Android app only supports connecting to servers with a valid SSL certificate from a trusted external authority. If you want to use your own self-signed certificate, you must manually install and trust the certificate on your Android device by following these steps.
|
||||
@@ -1,10 +1,6 @@
|
||||
---
|
||||
layout: default
|
||||
title: Mobile Apps
|
||||
has_children: true
|
||||
nav_order: 4
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
# Mobile Apps
|
||||
|
||||
This section contains information about installing and using the AliasVault mobile apps. These mobile apps allow you to manage and use AliasVault from your smartphone enabling autofilling of login credentials via native iOS/Android capabilities.
|
||||
4
docs/docs/mobile-apps/ios/_category_.json
Normal file
4
docs/docs/mobile-apps/ios/_category_.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "iOS App",
|
||||
"position": 2
|
||||
}
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: default
|
||||
title: Build from Source
|
||||
parent: iOS App
|
||||
grand_parent: Mobile Apps
|
||||
nav_order: 2
|
||||
sidebar_position: 2
|
||||
sidebar_label: "Build from Source"
|
||||
---
|
||||
|
||||
# Building AliasVault iOS App from Source
|
||||
|
||||
This guide explains how to build and install the AliasVault iOS app from source code using React Native.
|
||||
@@ -1,10 +1,6 @@
|
||||
---
|
||||
layout: default
|
||||
title: iOS App
|
||||
parent: Mobile Apps
|
||||
nav_order: 1
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# iOS app
|
||||
In order to install the AliasVault iOS app, see the options below.
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
---
|
||||
layout: page
|
||||
title: Self-Signed SSL Setup
|
||||
parent: iOS App
|
||||
grand_parent: Mobile Apps
|
||||
nav_order: 3
|
||||
sidebar_position: 3
|
||||
sidebar_label: "Self-Signed SSL Setup"
|
||||
---
|
||||
|
||||
# Self-Signed SSL Certificate Setup for iOS
|
||||
|
||||
By default, the AliasVault iOS app only supports connecting to servers with a valid SSL certificate from a trusted external authority. If you want to use your own self-signed certificate, you must manually install and trust the certificate on your iOS device by following these steps.
|
||||
192
docs/docusaurus.config.ts
Normal file
192
docs/docusaurus.config.ts
Normal file
@@ -0,0 +1,192 @@
|
||||
import {themes as prismThemes} from 'prism-react-renderer';
|
||||
import type {Config} from '@docusaurus/types';
|
||||
import type * as Preset from '@docusaurus/preset-classic';
|
||||
|
||||
const config: Config = {
|
||||
title: 'AliasVault',
|
||||
tagline: 'A privacy-first password manager with built-in email aliasing',
|
||||
favicon: 'assets/img/favicon.png',
|
||||
|
||||
url: 'https://docs.aliasvault.net',
|
||||
baseUrl: '/',
|
||||
|
||||
organizationName: 'aliasvault',
|
||||
projectName: 'aliasvault',
|
||||
|
||||
onBrokenLinks: 'throw',
|
||||
|
||||
// Treat .md as CommonMark (lenient) and .mdx as MDX. This keeps the large
|
||||
// body of migrated Markdown (shell snippets, angle brackets, braces) parsing
|
||||
// without JSX escaping issues, while still allowing MDX where we opt in.
|
||||
markdown: {
|
||||
format: 'detect',
|
||||
hooks: {
|
||||
onBrokenMarkdownLinks: 'warn',
|
||||
},
|
||||
},
|
||||
|
||||
i18n: {
|
||||
defaultLocale: 'en',
|
||||
locales: ['en'],
|
||||
},
|
||||
|
||||
presets: [
|
||||
[
|
||||
'classic',
|
||||
{
|
||||
docs: {
|
||||
routeBasePath: '/',
|
||||
sidebarPath: './sidebars.ts',
|
||||
editUrl: 'https://github.com/aliasvault/aliasvault/tree/main/docs/docs/',
|
||||
showLastUpdateTime: true,
|
||||
},
|
||||
blog: false,
|
||||
theme: {
|
||||
customCss: './src/css/custom.css',
|
||||
},
|
||||
sitemap: {
|
||||
changefreq: 'weekly',
|
||||
priority: 0.5,
|
||||
},
|
||||
} satisfies Preset.Options,
|
||||
],
|
||||
],
|
||||
|
||||
plugins: [
|
||||
[
|
||||
'@docusaurus/plugin-client-redirects',
|
||||
{
|
||||
redirects: [
|
||||
{
|
||||
to: '/installation/docker-compose/',
|
||||
from: [
|
||||
'/installation/advanced/manual-setup',
|
||||
'/installation/advanced/manual-setup.html',
|
||||
],
|
||||
},
|
||||
{
|
||||
to: '/installation/script/',
|
||||
from: ['/installation/install', '/installation/install.html'],
|
||||
},
|
||||
{
|
||||
to: '/installation/script/troubleshooting',
|
||||
from: [
|
||||
'/installation/troubleshooting',
|
||||
'/installation/troubleshooting.html',
|
||||
],
|
||||
},
|
||||
{
|
||||
to: '/installation/script/update/',
|
||||
from: ['/installation/update', '/installation/update.html'],
|
||||
},
|
||||
{
|
||||
to: '/installation/script/update/v0.22.0',
|
||||
from: [
|
||||
'/installation/update/v0.22.0',
|
||||
'/installation/update/v0.22.0.html',
|
||||
],
|
||||
},
|
||||
{
|
||||
to: '/installation/script/update/v0.23.0',
|
||||
from: [
|
||||
'/installation/update/v0.23.0',
|
||||
'/installation/update/v0.23.0.html',
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
],
|
||||
|
||||
themes: [
|
||||
[
|
||||
'@easyops-cn/docusaurus-search-local',
|
||||
{
|
||||
hashed: true,
|
||||
indexBlog: false,
|
||||
docsRouteBasePath: '/',
|
||||
highlightSearchTermsOnTargetPage: true,
|
||||
searchResultLimits: 8,
|
||||
},
|
||||
],
|
||||
],
|
||||
|
||||
themeConfig: {
|
||||
image: 'assets/img/screenshot.png',
|
||||
colorMode: {
|
||||
defaultMode: 'dark',
|
||||
respectPrefersColorScheme: true,
|
||||
},
|
||||
navbar: {
|
||||
// The logo SVG already includes the "AliasVault" wordmark, so no
|
||||
// separate title text (which would render the name twice). Light mode
|
||||
// uses the dark-wordmark logo; dark mode the white one.
|
||||
logo: {
|
||||
alt: 'AliasVault',
|
||||
src: 'assets/img/logo-light.svg',
|
||||
srcDark: 'assets/img/logo.svg',
|
||||
},
|
||||
items: [
|
||||
{
|
||||
type: 'docSidebar',
|
||||
sidebarId: 'docsSidebar',
|
||||
position: 'left',
|
||||
label: 'Documentation',
|
||||
},
|
||||
{
|
||||
href: 'https://aliasvault.net',
|
||||
label: 'Website',
|
||||
position: 'right',
|
||||
},
|
||||
{
|
||||
href: 'https://github.com/aliasvault/aliasvault',
|
||||
label: 'GitHub',
|
||||
position: 'right',
|
||||
},
|
||||
],
|
||||
},
|
||||
footer: {
|
||||
style: 'dark',
|
||||
links: [
|
||||
{
|
||||
title: 'Docs',
|
||||
items: [
|
||||
{label: 'Self-host Install', to: '/installation/'},
|
||||
{label: 'Browser Extensions', to: '/browser-extensions/'},
|
||||
{label: 'Mobile Apps', to: '/mobile-apps/'},
|
||||
{label: 'Architecture', to: '/architecture/'},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Community',
|
||||
items: [
|
||||
{
|
||||
label: 'GitHub',
|
||||
href: 'https://github.com/aliasvault/aliasvault',
|
||||
},
|
||||
{label: 'Contributing', to: '/contributing/'},
|
||||
{label: 'Help & Support', to: '/contact/'},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'More',
|
||||
items: [
|
||||
{label: 'Website', href: 'https://aliasvault.net'},
|
||||
{
|
||||
label: 'Edit these docs',
|
||||
href: 'https://github.com/aliasvault/aliasvault/tree/main/docs',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
copyright: `Copyright © ${new Date().getFullYear()} AliasVault. Built with Docusaurus.`,
|
||||
},
|
||||
prism: {
|
||||
theme: prismThemes.github,
|
||||
darkTheme: prismThemes.dracula,
|
||||
additionalLanguages: ['bash', 'json', 'yaml', 'docker', 'nginx', 'csharp'],
|
||||
},
|
||||
} satisfies Preset.ThemeConfig,
|
||||
};
|
||||
|
||||
export default config;
|
||||
@@ -1,57 +0,0 @@
|
||||
---
|
||||
layout: home
|
||||
title: Home
|
||||
nav_order: 1
|
||||
description: "AliasVault Documentation - Open-source password and identity manager"
|
||||
permalink: /
|
||||
---
|
||||
|
||||
# AliasVault Documentation
|
||||
{: .fs-9 }
|
||||
|
||||
A privacy-first password manager with built-in email aliasing. Fully encrypted and self-hostable.
|
||||
|
||||
{: .fs-6 .fw-300 }
|
||||
|
||||
[Self-host Install](./installation){: .btn .btn-primary .fs-5 .mb-4 .mb-md-0 .mr-2 }
|
||||
[View on GitHub](https://github.com/aliasvault/aliasvault){: .btn .fs-5 .mb-4 .mb-md-0 }
|
||||
|
||||
---
|
||||
|
||||
## What is AliasVault?
|
||||
|
||||
AliasVault is a self-hosted password and (email) alias 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 Encryption
|
||||
Your entire vault (usernames, passwords, notes, passkeys etc.) is fully encrypted client-side before being sent to the server. Your master password never leaves your device, and the server cannot decrypt any vault contents. When emails are received by the server, they are immediately encrypted with your public key before being saved, ensuring only you can read them. Email aliases themselves are registered on the server as "claims" linked to your account for routing purposes, but no personally identifiable information is required.
|
||||
|
||||
### 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.
|
||||
|
||||
---
|
||||
|
||||
## Getting Started
|
||||
|
||||
Ready to get started with AliasVault? Check out the [server installation guide](./installation).
|
||||
|
||||
---
|
||||
|
||||
## Want to Contribute?
|
||||
|
||||
Help make AliasVault better for everyone:
|
||||
|
||||
- 🌍 **[Translate the UI](./contributing/ui-translations.md)** - Help translate AliasVault into your language
|
||||
- 👤 **[Add Name Dictionaries](./contributing/identity-generator.md)** - Provide names for the identity generator
|
||||
|
||||
See all ways to contribute: [Contributing Guide](./contributing/)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user