# Cinny <p> <a href="https://github.com/ajbura/cinny/releases"> <img alt="GitHub release downloads" src="https://img.shields.io/github/downloads/ajbura/cinny/total?logo=github&style=social"></a> <a href="https://hub.docker.com/r/ajbura/cinny"> <img alt="DockerHub downloads" src="https://img.shields.io/docker/pulls/ajbura/cinny?logo=docker&style=social"></a> <a href="https://fosstodon.org/@cinnyapp"> <img alt="Follow on Mastodon" src="https://img.shields.io/mastodon/follow/106845779685925461?domain=https%3A%2F%2Ffosstodon.org&logo=mastodon&style=social"></a> <a href="https://twitter.com/intent/follow?screen_name=cinnyapp"> <img alt="Follow on Twitter" src="https://img.shields.io/twitter/follow/cinnyapp?logo=twitter&style=social"></a> <a href="https://cinny.in/#sponsor"> <img alt="Sponsor Cinny" src="https://img.shields.io/opencollective/all/cinny?logo=opencollective&style=social"></a> </p> 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. - [Roadmap](https://github.com/orgs/cinnyapp/projects/1) - [Contributing](./CONTRIBUTING.md) <img align="center" src="https://raw.githubusercontent.com/cinnyapp/cinny-site/main/assets/preview2-light.png" height="380"> ## Getting started * Web app is available at https://cinny.yiffing.dev and gets updated on each new release. * To host Cinny on your own, download tarball of the app from [GitHub release](https://github.com/cinnyapp/cinny/releases/latest). You can serve the application with a webserver of your choice by simply copying `dist/` directory to the webroot. To set default Homeserver on login, register and Explore Community page, place a customized [`config.json`](config.json) in webroot of your choice. You will also need to setup redirects to serve the assests. An example setting of redirects for netlify is done in [`netlify.toml`](netlify.toml). You can also set `hashRouter.enabled = true` in [`config.json`](config.json) if you have trouble setting redirects. To deploy on subdirectory, you need to rebuild the app youself after updating the `base` path in [`build.config.ts`](build.config.ts). For example, if you want to deploy on `https://cinny.in/app`, then change `base: '/app'`. </details> ## Local development > We recommend using a version manager as versions change very quickly. You will likely need to switch between multiple Node.js versions based on the needs of different projects you're working on. [NVM on windows](https://github.com/coreybutler/nvm-windows#installation--upgrades) on Windows and [nvm](https://github.com/nvm-sh/nvm) on Linux/macOS are pretty good choices. Recommended nodejs version is Iron LTS (v20). 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 cinny:latest . ``` You can then run the container you've built with a command similar to this: ``` docker run -p 8080:80 cinny: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`. Or use Docker Compose ``` services: cinny: image: git.yiffing.dev/leafus/cinny-improved:latest restart: always ports: - 8444:80 ```