Skip to main content

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 keyNew file locationFile content format
ADMIN_PASSWORD_HASH + ADMIN_PASSWORD_GENERATED./secrets/admin_password_hash`hash
DATA_PROTECTION_CERT_PASS./secrets/data_protection_cert_passpassword
JWT_KEY./secrets/jwt_keykey
POSTGRES_PASSWORD./secrets/postgres_passwordpassword

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.