From a048a1827af6fdce57a87eda9465fa1342dfb882 Mon Sep 17 00:00:00 2001 From: Adam Hnat Date: Thu, 19 Jan 2023 14:42:11 +0100 Subject: [PATCH] Deploy vaultwarden into Azure as container app Scripts to 'one click' vaultwarden deployment into Azure Cloud as container app (cheapest option) with enabled vaultwarden external storage on fileshare. It uses official vaultwarden container docker.io/vaultwarden/server:latest --- Azure/Readme.md | 38 ++++++++ Azure/db.sqlite3 | Bin 0 -> 221184 bytes Azure/main.bicep | 170 +++++++++++++++++++++++++++++++++++ Azure/main.json | 226 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 434 insertions(+) create mode 100644 Azure/Readme.md create mode 100644 Azure/db.sqlite3 create mode 100644 Azure/main.bicep create mode 100644 Azure/main.json diff --git a/Azure/Readme.md b/Azure/Readme.md new file mode 100644 index 00000000..05574ad7 --- /dev/null +++ b/Azure/Readme.md @@ -0,0 +1,38 @@ +# Creates a Vaultwarden Container App within Azurefile external storage + +[![Deploy To Azure](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/1-CONTRIBUTION-GUIDE/images/deploytoazure.svg?sanitize=true)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fadamhnat%2Fvaultwarden%2Fmain%2FAzure%2Fmain.json) +[![Visualize](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/1-CONTRIBUTION-GUIDE/images/visualizebutton.svg?sanitize=true)](http://armviz.io/#/?load=https%3A%2F%2Fraw.githubusercontent.com%2Fadamhnat%2Fvaultwarden%2Fmain%2FAzure%2Fmain.json) + +This template provides a way to deploy a **Vaultwarden** in a **Azure Container App** with external **file share** storage that can be used to backup restore data easly. + +Deploy: +1. Click above button and select +- Resource Group - all resources will be created in that group, you can choose also to create new one +- Storage Account Type - in case that you you like to be more resistant for failure you may choose Standard_GRS or any other storage with redundancy. +- AdminAPI Key - it will be generated automaticly or you can specify your own one. It will be used to access /admin page +- Choose memory and cpu sizing - I recommend to start with 0.25 cpu and 0.5 Memory + The total CPU and memory allocations requested for all the containers in a container app must add up to one of the following combinations. + vCPUs (cores) Memory + 0.25 0.5Gi + 0.5 1.0Gi + 0.75 1.5Gi + 1.0 2.0Gi + 1.25 2.5Gi + 1.5 3.0Gi + 1.75 3.5Gi + 2.0 4.0Gi +- **Deploy** +- copy db.sqlite3 (empty database, with WAL off) into fileshare (deployment bug - vaultwarden cannot create new database in SMB share) + +2. Resource vaultwarden Microsoft.App/containerApps failed - if in some case you will notice failed message, just click **redeploy** and reenter same data as before - it may happen when Azure provision resources and link to storage isn't created at time. + +Updating to new version: +in Azure Portal: +- Open Resource Group -> vaultwarden -> Revision management -> **Create revision** -> type name/suffix -> check vaultwarden in Container image section -> **create** + This will update your vaultwarden container app into most recent version, keeping data in place, in no downtime. + +Get Admin key: +- Resource Group -> vaultwarden -> Containers -> Environment Variables -> double click on ADMIN_TOKEN **value** + +Restore your backup into Azure Contaier App: +- The storage is accesible via SMB in contaner it means that sqlite WAL needs to be turned off, make sure before put database in fileshare that you turned off WAL [Running without WAL enabled](https://github.com/dani-garcia/vaultwarden/wiki/Running-without-WAL-enabled) \ No newline at end of file diff --git a/Azure/db.sqlite3 b/Azure/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..078456b861bb4752572847d3f568704d208e41d2 GIT binary patch literal 221184 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