# Vojo A Matrix client focusing primarily on simple, elegant and secure interface. The main goal is to have an instant messaging application that is easy on people and has a modern touch. Based on [Cinny](https://github.com/cinnyapp/cinny) (MIT license). - [Contributing](./CONTRIBUTING.md) ## Getting started The web app is available at [vojo.chat](https://vojo.chat). ## Self-hosting To host Vojo on your own, build from source and serve the files from `dist/` using your preferred webserver. * The default homeserver is defined in [`config.json`](config.json). * You need to set up redirects to serve the assets. Example configurations: [nginx](contrib/nginx/vojo.domain.tld.conf), [caddy](contrib/caddy/caddyfile). * To deploy on a subdirectory, rebuild the app after updating the `base` path in [`build.config.ts`](build.config.ts). ## Local development > [!TIP] > We recommend using a version manager as versions change very quickly. [NVM on Windows](https://github.com/coreybutler/nvm-windows#installation--upgrades) or [nvm](https://github.com/nvm-sh/nvm) on Linux/macOS are good choices. Execute the following commands to start a development server: ```sh npm ci # Installs all dependencies npm start # Serve a development version ``` To build the app: ```sh npm run build # Compiles the app into the dist/ directory ``` ### Running with Docker This repository includes a Dockerfile, which builds the application from source and serves it with Nginx on port 80. To use this locally, you can build the container like so: ``` docker build -t vojo:latest . ``` You can then run the container you've built with a command similar to this: ``` docker run -p 8080:80 vojo:latest ``` This will forward your `localhost` port 8080 to the container's port 80. You can visit the app in your browser by navigating to `http://localhost:8080`.