Skip to content

Latest commit

 

History

History
86 lines (65 loc) · 2.05 KB

docker.md

File metadata and controls

86 lines (65 loc) · 2.05 KB

Warning

Usage of docker is a third-party contribution and not actively tested, used or supported by the main developer(s).

Having said that, you can also use Docker to create a local dev environment or a production deployment.

Dev environment

In this repository, create a Docker image:

docker build -t hydrogen-dev -f Dockerfile-dev .

Then start up a container from that image:

docker run \
    --name hydrogen-dev \
    --publish 3000:3000 \
    --volume "$PWD":/code \
    --interactive \
    --tty \
    --rm \
    hydrogen-dev

Then point your browser to http://localhost:3000. You can see the server logs in the terminal where you started the container.

To stop the container, simply hit ctrl+c.

Production deployment

Build or pull image

In this repository, create a Docker image:

# Enable BuildKit https://docs.docker.com/develop/develop-images/build_enhancements/
export DOCKER_BUILDKIT=1
docker build -t hydrogen .

Or, pull the docker image from GitHub Container Registry:

docker pull ghcr.io/element-hq/hydrogen-web
docker tag ghcr.io/element-hq/hydrogen-web hydrogen

Start container image

Then, start up a container from that image:

docker run \
    --name hydrogen \
    --publish 8080:8080 \
    hydrogen

n.b. the image is now based on the unprivileged nginx base, so the port is now 8080 instead of 80 and you need a writable /tmp volume.

You can override the default config.json using the CONFIG_OVERRIDE environment variable. For example to specify a different Homeserver and :

docker run \
    --name hydrogen \
    --publish 8080:8080 \
    --env CONFIG_OVERRIDE='{
  "push": {
    "appId": "io.element.hydrogen.web",
    "gatewayUrl": "https://matrix.org",
    "applicationServerKey": "BC-gpSdVHEXhvHSHS0AzzWrQoukv2BE7KzpoPO_FfPacqOo3l1pdqz7rSgmB04pZCWaHPz7XRe6fjLaC-WPDopM"
  },
  "defaultHomeServer": "https://fosdem.org",
  "themeManifests": [
    "assets/theme-element.json"
  ],
  "defaultTheme": {
    "light": "element-light",
    "dark": "element-dark"
  }
}' \
    hydrogen