mirror of
				https://github.com/dani-garcia/vaultwarden.git
				synced 2025-11-04 12:18:20 +02:00 
			
		
		
		
	Add backend support for alternate base dir (subdir/subpath) hosting
To use this, include a path in the `DOMAIN` URL, e.g.: * `DOMAIN=https://example.com/custom-path` * `DOMAIN=https://example.com/multiple/levels/are/ok`
This commit is contained in:
		@@ -6,10 +6,10 @@
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
 | 
			
		||||
    <title>Bitwarden_rs Admin Panel</title>
 | 
			
		||||
 | 
			
		||||
    <link rel="stylesheet" href="/bwrs_static/bootstrap.css" />
 | 
			
		||||
    <script src="/bwrs_static/bootstrap-native-v4.js"></script>
 | 
			
		||||
    <script src="/bwrs_static/md5.js"></script>
 | 
			
		||||
    <script src="/bwrs_static/identicon.js"></script>
 | 
			
		||||
    <link rel="stylesheet" href="bwrs_static/bootstrap.css" />
 | 
			
		||||
    <script src="bwrs_static/bootstrap-native-v4.js"></script>
 | 
			
		||||
    <script src="bwrs_static/md5.js"></script>
 | 
			
		||||
    <script src="bwrs_static/identicon.js"></script>
 | 
			
		||||
    <style>
 | 
			
		||||
        body {
 | 
			
		||||
            padding-top: 70px;
 | 
			
		||||
@@ -38,10 +38,10 @@
 | 
			
		||||
        <div class="navbar-collapse">
 | 
			
		||||
            <ul class="navbar-nav">
 | 
			
		||||
                <li class="nav-item active">
 | 
			
		||||
                    <a class="nav-link" href="/admin">Admin Panel</a>
 | 
			
		||||
                    <a class="nav-link" href="admin">Admin Panel</a>
 | 
			
		||||
                </li>
 | 
			
		||||
                <li class="nav-item">
 | 
			
		||||
                    <a class="nav-link" href="/">Vault</a>
 | 
			
		||||
                    <a class="nav-link" href=".">Vault</a>
 | 
			
		||||
                </li>
 | 
			
		||||
            </ul>
 | 
			
		||||
        </div>
 | 
			
		||||
@@ -55,7 +55,7 @@
 | 
			
		||||
 | 
			
		||||
            {{#if logged_in}}
 | 
			
		||||
            <li class="nav-item">
 | 
			
		||||
                <a class="nav-link" href="/admin/logout">Log Out</a>
 | 
			
		||||
                <a class="nav-link" href="admin/logout">Log Out</a>
 | 
			
		||||
            </li>
 | 
			
		||||
            {{/if}}
 | 
			
		||||
        </ul>
 | 
			
		||||
@@ -64,4 +64,4 @@
 | 
			
		||||
    {{> (page_content) }}
 | 
			
		||||
</body>
 | 
			
		||||
 | 
			
		||||
</html>
 | 
			
		||||
</html>
 | 
			
		||||
 
 | 
			
		||||
@@ -225,7 +225,7 @@
 | 
			
		||||
        var input_mail = prompt("To delete user '" + mail + "', please type the email below")
 | 
			
		||||
        if (input_mail != null) {
 | 
			
		||||
            if (input_mail == mail) {
 | 
			
		||||
                _post("/admin/users/" + id + "/delete",
 | 
			
		||||
                _post("admin/users/" + id + "/delete",
 | 
			
		||||
                    "User deleted correctly",
 | 
			
		||||
                    "Error deleting user");
 | 
			
		||||
            } else {
 | 
			
		||||
@@ -235,19 +235,19 @@
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    function remove2fa(id) {
 | 
			
		||||
        _post("/admin/users/" + id + "/remove-2fa",
 | 
			
		||||
        _post("admin/users/" + id + "/remove-2fa",
 | 
			
		||||
            "2FA removed correctly",
 | 
			
		||||
            "Error removing 2FA");
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    function deauthUser(id) {
 | 
			
		||||
        _post("/admin/users/" + id + "/deauth",
 | 
			
		||||
        _post("admin/users/" + id + "/deauth",
 | 
			
		||||
            "Sessions deauthorized correctly",
 | 
			
		||||
            "Error deauthorizing sessions");
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    function updateRevisions() {
 | 
			
		||||
        _post("/admin/users/update_revision",
 | 
			
		||||
        _post("admin/users/update_revision",
 | 
			
		||||
            "Success, clients will sync next time they connect",
 | 
			
		||||
            "Error forcing clients to sync");
 | 
			
		||||
        return false;
 | 
			
		||||
@@ -256,7 +256,7 @@
 | 
			
		||||
        inv = document.getElementById("email-invite");
 | 
			
		||||
        data = JSON.stringify({ "email": inv.value });
 | 
			
		||||
        inv.value = "";
 | 
			
		||||
        _post("/admin/invite/", "User invited correctly",
 | 
			
		||||
        _post("admin/invite/", "User invited correctly",
 | 
			
		||||
            "Error inviting user", data);
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
@@ -278,7 +278,7 @@
 | 
			
		||||
    }
 | 
			
		||||
    function saveConfig() {
 | 
			
		||||
        data = JSON.stringify(getFormData());
 | 
			
		||||
        _post("/admin/config/", "Config saved correctly",
 | 
			
		||||
        _post("admin/config/", "Config saved correctly",
 | 
			
		||||
            "Error saving config", data);
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
@@ -286,7 +286,7 @@
 | 
			
		||||
        var input = prompt("This will remove all user configurations, and restore the defaults and the " +
 | 
			
		||||
            "values set by the environment. This operation could be dangerous. Type 'DELETE' to proceed:");
 | 
			
		||||
        if (input === "DELETE") {
 | 
			
		||||
            _post("/admin/config/delete",
 | 
			
		||||
            _post("admin/config/delete",
 | 
			
		||||
                "Config deleted correctly",
 | 
			
		||||
                "Error deleting config");
 | 
			
		||||
        } else {
 | 
			
		||||
@@ -296,7 +296,7 @@
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    function backupDatabase() {
 | 
			
		||||
        _post("/admin/config/backup_db",
 | 
			
		||||
        _post("admin/config/backup_db",
 | 
			
		||||
            "Backup created successfully",
 | 
			
		||||
            "Error creating backup");
 | 
			
		||||
        return false;
 | 
			
		||||
@@ -336,4 +336,4 @@
 | 
			
		||||
    // {{#each config}} {{#if grouptoggle}}
 | 
			
		||||
    masterCheck("input_{{grouptoggle}}", "#g_{{group}} input");
 | 
			
		||||
    // {{/if}} {{/each}}
 | 
			
		||||
</script>
 | 
			
		||||
</script>
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,6 @@ Invitation accepted
 | 
			
		||||
<html>
 | 
			
		||||
<p>
 | 
			
		||||
    Your invitation for <b>{{email}}</b> to join <b>{{org_name}}</b> was accepted.
 | 
			
		||||
    Please <a href="{{url}}">log in</a> to the bitwarden_rs server and confirm them from the organization management page.
 | 
			
		||||
    Please <a href="{{url}}/">log in</a> to the bitwarden_rs server and confirm them from the organization management page.
 | 
			
		||||
</p>
 | 
			
		||||
</html>
 | 
			
		||||
 
 | 
			
		||||
@@ -101,7 +101,7 @@ Invitation accepted
 | 
			
		||||
                                    </tr>
 | 
			
		||||
                                    <tr style="margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none;">
 | 
			
		||||
                                       <td class="content-block" style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; margin: 0; -webkit-font-smoothing: antialiased; padding: 0 0 10px; -webkit-text-size-adjust: none;" valign="top">
 | 
			
		||||
                                          Please <a href="{{url}}">log in</a> to the bitwarden_rs server and confirm them from the organization management page.
 | 
			
		||||
                                          Please <a href="{{url}}/">log in</a> to the bitwarden_rs server and confirm them from the organization management page.
 | 
			
		||||
                                       </td>
 | 
			
		||||
                                    </tr>
 | 
			
		||||
                                    <tr style="margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none;">
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,6 @@ Invitation to {{org_name}} confirmed
 | 
			
		||||
<html>
 | 
			
		||||
<p>
 | 
			
		||||
    Your invitation to join <b>{{org_name}}</b> was confirmed.
 | 
			
		||||
    It will now appear under the Organizations the next time you <a href="{{url}}">log in</a> to the web vault.
 | 
			
		||||
    It will now appear under the Organizations the next time you <a href="{{url}}/">log in</a> to the web vault.
 | 
			
		||||
</p>
 | 
			
		||||
</html>
 | 
			
		||||
 
 | 
			
		||||
@@ -102,7 +102,7 @@ Invitation to {{org_name}} confirmed
 | 
			
		||||
                                    <tr style="margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none;">
 | 
			
		||||
                                       <td class="content-block last" style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; margin: 0; -webkit-font-smoothing: antialiased; padding: 0; -webkit-text-size-adjust: none;" valign="top">
 | 
			
		||||
                                          Any collections and logins being shared with you by this organization will now appear in your Bitwarden vault. <br>
 | 
			
		||||
                                          <a href="{{url}}">Log in</a>
 | 
			
		||||
                                          <a href="{{url}}/">Log in</a>
 | 
			
		||||
                                       </td>
 | 
			
		||||
                                    </tr>
 | 
			
		||||
                                 </table>
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,6 @@ New Device Logged In From {{device}}
 | 
			
		||||
   Device Type: {{device}}
 | 
			
		||||
 | 
			
		||||
   You can deauthorize all devices that have access to your account from the
 | 
			
		||||
    <a href="{{url}}">web vault</a> under Settings > My Account > Deauthorize Sessions.
 | 
			
		||||
    <a href="{{url}}/">web vault</a> under Settings > My Account > Deauthorize Sessions.
 | 
			
		||||
</p>
 | 
			
		||||
</html>
 | 
			
		||||
 
 | 
			
		||||
@@ -116,7 +116,7 @@ New Device Logged In From {{device}}
 | 
			
		||||
                                    </tr>
 | 
			
		||||
                                    <tr style="margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none;">
 | 
			
		||||
                                       <td class="content-block last" style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; margin: 0; -webkit-font-smoothing: antialiased; padding: 0; -webkit-text-size-adjust: none;" valign="top">
 | 
			
		||||
                                           You can deauthorize all devices that have access to your account from the <a href="{{url}}">web vault</a> under Settings > My Account > Deauthorize Sessions.
 | 
			
		||||
                                           You can deauthorize all devices that have access to your account from the <a href="{{url}}/">web vault</a> under Settings > My Account > Deauthorize Sessions.
 | 
			
		||||
                                       </td>
 | 
			
		||||
                                    </tr>
 | 
			
		||||
                                 </table>
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ Your master password hint
 | 
			
		||||
You (or someone) recently requested your master password hint.
 | 
			
		||||
 | 
			
		||||
Your hint is: "{{hint}}"
 | 
			
		||||
Log in: <a href="{{url}}">Web Vault</a>
 | 
			
		||||
Log in: <a href="{{url}}/">Web Vault</a>
 | 
			
		||||
 | 
			
		||||
If you cannot remember your master password, there is no way to recover your data. The only option to gain access to your account again is to <a href="{{url}}/#/recover-delete">delete the account</a> so that you can register again and start over. All data associated with your account will be deleted.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -102,7 +102,7 @@ Your master password hint
 | 
			
		||||
                                    <tr style="margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none;">
 | 
			
		||||
                                       <td class="content-block" style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; margin: 0; -webkit-font-smoothing: antialiased; padding: 0 0 10px; -webkit-text-size-adjust: none;" valign="top">
 | 
			
		||||
                                          Your hint is: "{{hint}}"<br style="margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none;" />
 | 
			
		||||
                                          Log in: <a href="{{url}}">Web Vault</a>
 | 
			
		||||
                                          Log in: <a href="{{url}}/">Web Vault</a>
 | 
			
		||||
                                       </td>
 | 
			
		||||
                                    </tr>
 | 
			
		||||
                                    <tr style="margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none;">
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@ Welcome
 | 
			
		||||
<!---------------->
 | 
			
		||||
<html>
 | 
			
		||||
<p>
 | 
			
		||||
Thank you for creating an account at <a href="{{url}}">{{url}}</a>. You may now log in with your new account.
 | 
			
		||||
Thank you for creating an account at <a href="{{url}}/">{{url}}</a>. You may now log in with your new account.
 | 
			
		||||
</p>
 | 
			
		||||
<p>If you did not request to create an account, you can safely ignore this email.</p>
 | 
			
		||||
</html>
 | 
			
		||||
 
 | 
			
		||||
@@ -96,7 +96,7 @@ Welcome
 | 
			
		||||
                                 <table width="100%" cellpadding="0" cellspacing="0" style="margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none;">
 | 
			
		||||
                                    <tr style="margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none;">
 | 
			
		||||
                                       <td class="content-block" style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; margin: 0; -webkit-font-smoothing: antialiased; padding: 0 0 10px; -webkit-text-size-adjust: none; text-align: center;" valign="top" align="center">
 | 
			
		||||
                                          Thank you for creating an account at <a href="{{url}}">{{url}}</a>. You may now log in with your new account.
 | 
			
		||||
                                          Thank you for creating an account at <a href="{{url}}/">{{url}}</a>. You may now log in with your new account.
 | 
			
		||||
                                       </td>
 | 
			
		||||
                                    </tr>
 | 
			
		||||
                                    <tr style="margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none;">
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@ Welcome
 | 
			
		||||
<!---------------->
 | 
			
		||||
<html>
 | 
			
		||||
<p>
 | 
			
		||||
Thank you for creating an account at <a href="{{url}}">{{url}}</a>. Before you can login with your new account, you must verify this email address by clicking the link below.
 | 
			
		||||
Thank you for creating an account at <a href="{{url}}/">{{url}}</a>. Before you can login with your new account, you must verify this email address by clicking the link below.
 | 
			
		||||
<br>
 | 
			
		||||
<br>
 | 
			
		||||
<a href="{{url}}/#/verify-email/?userId={{user_id}}&token={{token}}">
 | 
			
		||||
 
 | 
			
		||||
@@ -96,7 +96,7 @@ Welcome
 | 
			
		||||
                                 <table width="100%" cellpadding="0" cellspacing="0" style="margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none;">
 | 
			
		||||
                                    <tr style="margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none;">
 | 
			
		||||
                                       <td class="content-block" style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; margin: 0; -webkit-font-smoothing: antialiased; padding: 0 0 10px; -webkit-text-size-adjust: none; text-align: center;" valign="top" align="center">
 | 
			
		||||
                                          Thank you for creating an account at <a href="{{url}}">{{url}}</a>. Before you can login with your new account, you must verify this email address by clicking the link below.
 | 
			
		||||
                                          Thank you for creating an account at <a href="{{url}}/">{{url}}</a>. Before you can login with your new account, you must verify this email address by clicking the link below.
 | 
			
		||||
                                       </td>
 | 
			
		||||
                                    </tr>
 | 
			
		||||
                                    <tr style="margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none;">
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user