Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 58 additions & 10 deletions docs/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,64 @@ There are some exceptions like when using localhost, which is considered a [secu

## Release tarball

1. Download the latest version from <https://github.com/element-hq/element-web/releases>
1. Untar the tarball on your web server
1. Move (or symlink) the `element-x.x.x` directory to an appropriate name
1. Configure the correct caching headers in your webserver (see below)
1. Configure the app by copying `config.sample.json` to `config.json` and
modifying it. See the [configuration docs](config.md) for details.
1. Enter the URL into your browser and log into Element!

Releases are signed using gpg and the OpenPGP standard,
and can be checked against the public key located at <https://packages.element.io/element-release-key.asc>.
The release tarball contains a pre-built, production-ready version of Element Web that you can deploy to any static web server.

### Installation Steps

1. **Download the latest release**

Download from <https://github.com/element-hq/element-web/releases>

Releases are signed using GPG and the OpenPGP standard. You can verify the signature against the public key at <https://packages.element.io/element-release-key.asc>

2. **Extract the tarball**

```bash
tar -xzf element-v*.tar.gz
```

This creates a directory named `element-x.x.x` containing all the static files.

3. **Deploy to your web server**

Move or symlink the directory to your web server's document root:

```bash
# Example: Move to /var/www/element
sudo mv element-x.x.x /var/www/element

# Or create a symlink for easier version management
sudo ln -s /var/www/element-x.x.x /var/www/element
```

4. **Configure Element Web**

Copy the sample configuration and customize it:

```bash
cd /var/www/element
cp config.sample.json config.json
```

Edit `config.json` to configure your homeserver and other settings. See the [configuration docs](config.md) for details.

5. **Configure your web server**

Set up proper caching headers and security settings. See the [web server configuration examples](#web-server-configuration) below.

6. **Access Element Web**

Navigate to your server's URL (e.g., `https://element.example.com`) and log in!

### Web Server Configuration

Element Web requires specific caching headers to work correctly. The following files **must not be cached** to ensure users always get the latest version:

- `/index.html`
- `/version`
- `/config*.json` (including `config.json` and `config.domain.json`)

Additionally, configure `Cache-Control: no-cache` for `/` to force browsers to revalidate on page load.

## Debian package

Expand Down
Loading