This repository has been archived by the owner. It is now read-only.
A web-based IRC client
Go CSS HTML Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
build
conn
css
data
res
templates
ui
util
.gitattributes
.gitignore
LICENSE
Makefile
README.md
TODO.md
mauirc.go

README.md

mauIRC

License GitHub release GitHub commits

A web-based UI-focused IRC client. Written in Go (GopherJS).

No longer maintained!

I've stopped using IRC in favor of Matrix.

The master branch contains the older GopherJS version. There's a JavaScript version in the rewrite-2 branch which is much faster and works fine, but doesn't have some mauIRC-specific things (e.g. settings menu).

Setup

Packages

You can find the basic minified sources from the Release section.

Compiling

You can compile the code yourself using GopherJS. Once you have the Go toolkit, simply use go get -u github.com/gopherjs/gopherjs to get the GopherJS toolkit. Then get the mauIRC sources using go get -u maunium.net/go/mauirc and use make in the mauIRC source directory.

Minifying the GopherJS output is included in GopherJS itself, but HTML and CSS minification require other tools. The build scripts in mauIRC use the NPM packages clean-css and html-minifier. If you have the two packages installed, simply use make build-min to build a minified version. You can also use make package to generate a .tar.xz package with the necessary files.

Webserver setup

mauIRC only contains static files, but assumes that a mauIRC server is running the same domain. The easiest way to set this up is to have your webserver try to proxypass requests to the mauIRC server.

Here's a basic Nginx config:

server {
	listen			<ip>:80;

	location / {
		# mauIRC uses some Server-Side Includes
		ssi               on;
		ssi_silent_errors on;

		root              <path to mauIRC>;

		try_files         $uri $uri/ @mauircd;
	}

	location @mauircd {
		proxy_pass            http://<mauIRCd ip:port>;

		# Forward the actual IP of the client to the server.
		# Remember to configure the server to trust these headers.
		proxy_set_header      X-Forwarded-For $remote_addr;

		port_in_redirect      off;
		proxy_connect_timeout 300;

		# Forward the WebSocket upgrade headers.
		proxy_set_header      Upgrade    $http_upgrade;
		proxy_set_header      Connection $connection_upgrade;
	}
}

map $http_upgrade $connection_upgrade {
	default	upgrade;
	''	close;
}