Updating to v0.22.0
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. Installed via install.sh
If you have installed AliasVault using the official install.sh method, you don’t need to do anything. Running the built-in install.sh update command will take care of all necessary data migrations for you.
./install.sh update
2. Manually installed
If you have manually installed AliasVault via a custom docker-compose.yml file or other Docker management interface such as Portainer, follow the following manual steps:
Step 1: Move secrets from .env to ./secrets folder
Create a new ./secrets folder and move your secrets from environment variables to individual text files:
mkdir -p ./secrets
Migration mapping:
| Old .env key | New file location | File content format | 
|---|---|---|
| ADMIN_PASSWORD_HASH + ADMIN_PASSWORD_GENERATED | ./secrets/admin_password_hash | hash|generated | 
| DATA_PROTECTION_CERT_PASS | ./secrets/data_protection_cert_pass | password | 
| JWT_KEY | ./secrets/jwt_key | key | 
| POSTGRES_PASSWORD | ./secrets/postgres_password | password | 
Update permissions for new secret files:
# Set proper permissions
chmod 600 ./secrets/*
The final structure should look like:
-rw------- 1 root root  106 Aug  8 11:30 admin_password_hash
-rw------- 1 root root   44 Aug  7 22:46 data_protection_cert_pass
-rw------- 1 root root   44 Aug  7 22:46 jwt_key
-rw------- 1 root root   44 Aug  7 22:46 postgres_password
Step 2: Update docker-compose.yml
Update your docker-compose.yml to mount the new ./secrets folder to /secrets in the api, admin, smtp and taskrunner containers:
services:
  api:
    # ... other configuration
    volumes:
      - ./secrets:/secrets:ro
      # ... other volumes
  admin:
    # ... other configuration
    volumes:
      - ./secrets:/secrets:ro
      # ... other volumes
  smtp:
    # ... other configuration
    volumes:
        - ./secrets:/secrets:ro
        # ... other volumes
  task-runner:
      # ... other configuration
    volumes:
        - ./secrets:/secrets:ro
        # ... other volumes
Step 3: Remove optional environment variables (optional)
You can optionally remove the following environment variables from .env as they now fallback to default values:
- HOSTNAME(defaults to auto-detection)
- PUBLIC_REGISTRATION_ENABLED(defaults to true/enabled)
- IP_LOGGING_ENABLED(defaults to true/enabled)
Step 4: Update and restart
Pull the latest images and restart your containers:
docker-compose pull
docker-compose down
docker-compose up -d
If you encounter any issues during the upgrade, please join the AliasVault Discord, create an issue on GitHub or contact us by email.