thelounge/README.md
Tim Miller-Williams 19d8178606 Add webpack hot module reloading for development
Co-Authored-By: Tim Miller-Williams <timmw@users.noreply.github.com>
2019-11-08 15:02:44 +02:00

115 lines
4 KiB
Markdown

<h1 align="center">
<img
width="300"
alt="The Lounge"
src="https://raw.githubusercontent.com/thelounge/thelounge/master/client/img/logo-vertical-transparent-bg.svg?sanitize=true">
</h1>
<h3 align="center">
Modern web IRC client designed for self-hosting
</h3>
<p align="center">
<strong>
<a href="https://thelounge.chat/">Website</a>
<a href="https://thelounge.chat/docs">Docs</a>
<a href="https://demo.thelounge.chat/">Demo</a>
</strong>
</p>
<p align="center">
<a href="https://demo.thelounge.chat/"><img
alt="#thelounge IRC channel on freenode"
src="https://img.shields.io/badge/freenode-%23thelounge-415364.svg?colorA=ff9e18"></a>
<a href="https://yarn.pm/thelounge"><img
alt="npm version"
src="https://img.shields.io/npm/v/thelounge.svg?colorA=333a41&maxAge=3600"></a>
<a href="https://travis-ci.com/thelounge/thelounge"><img
alt="Travis CI Build Status"
src="https://img.shields.io/travis/com/thelounge/thelounge/master.svg?colorA=333a41&logo=travis-ci&logoColor=959da5&label=Build&maxAge=60"></a>
<a href="https://github.com/thelounge/thelounge/actions"><img
alt="Build Status"
src="https://github.com/thelounge/thelounge/workflows/Build/badge.svg"></a>
<a href="https://npm-stat.com/charts.html?package=thelounge&from=2016-02-12"><img
alt="Total downloads on npm"
src="https://img.shields.io/npm/dy/thelounge.svg?colorA=333a41&colorB=007dc7&maxAge=3600&label=Downloads"></a>
</p>
<p align="center">
<img src="https://raw.githubusercontent.com/thelounge/thelounge.github.io/master/img/thelounge-screenshot.png" width="550">
</p>
## Overview
- **Modern features brought to IRC.** Push notifications, link previews, new message markers, and more bring IRC to the 21st century.
- **Always connected.** Remains connected to IRC servers while you are offline.
- **Cross platform.** It doesn't matter what OS you use, it just works wherever Node.js runs.
- **Responsive interface.** The client works smoothly on every desktop, smartphone and tablet.
- **Synchronized experience.** Always resume where you left off no matter what device.
To learn more about configuration, usage and features of The Lounge, take a look at [the website](https://thelounge.chat).
The Lounge is the official and community-managed fork of [Shout](https://github.com/erming/shout), by [Mattias Erming](https://github.com/erming).
## Installation and usage
The Lounge requires latest [Node.js](https://nodejs.org/) LTS version or more recent.
[Yarn package manager](https://yarnpkg.com/) is also recommended.
If you want to install with npm, `--unsafe-perm` is required for a correct install.
### Running stable releases using Yarn (recommended)
Run this in a terminal to install (or upgrade) the latest stable release from
[npm registry](https://www.npmjs.com/):
```sh
yarn global add thelounge
```
If you already have The Lounge installed globally, use the following command to update it:
```sh
yarn global upgrade thelounge
```
When installation is complete, run:
```sh
thelounge start
```
For more information, read the [usage documentation](https://thelounge.chat/docs/usage) or run:
```sh
thelounge --help
```
### Running from source
The following commands install and run the development version of The Lounge:
```sh
git clone https://github.com/thelounge/thelounge.git
cd thelounge
yarn install
NODE_ENV=production yarn build
yarn start
```
When installed like this, `thelounge` executable is not created. Use `node index <command>` to run commands.
⚠️ While it is the most recent codebase, this is not production-ready! Run at
your own risk. It is also not recommended to run this as root.
## Development setup
Simply follow the instructions to run The Lounge from source above, on your own
fork.
Before submitting any change, make sure to:
- Read the [Contributing instructions](https://github.com/thelounge/thelounge/blob/master/.github/CONTRIBUTING.md#contributing)
- Run `yarn test` to execute linters and test suite
- Run `yarn build` if you change or add anything in `client/js` or `client/views`
- `yarn dev` can be used to start The Lounge with hot module reloading