/core

Backend repository / Reactive realtime forum software (currently alpha).

Primary LanguageGoApache License 2.0Apache-2.0

Build Status Go Report Card

Meet Anzu

Anzu is our greatest endeavor to build the most rad, simple & reactive forum software out there since the Javascript revolution.

Forum platforms to host communities are vast. Many would say it's a lifeless space with almost zero innovation, and attempting to create something new is pointless. We dissent, and if you found this repository you might also share with us the idea that there has to be an alternative to the old forum. Well, we think Anzu is that young and sexy software that could bring back to life the community-building movement.

This repository contains the core backend and the frontend submodule link. We're still working in the first alpha, so previous knowledge about the stack is required to set things up.

Alpha screenshot

Anzu alpha post Anzu alpha publisher Anzu alpha post Anzu alpha chat Anzu alpha profile

Anzu's stack

  • Golang.
  • Redis (to be replaced)
  • LedisDB (embedded cache)
  • MongoDB (persistent storage)
  • React JS

Contribute

Installation

Download dependencies

The first step is to download Go, official binary distributions are available at https://golang.org/dl/. If you are upgrading from an older version of Go you must first remove the existing version.

Download the package file, open it, and follow the prompts to install the Go tools. The package installs the Go distribution to /usr/local/go. The package should put the /usr/local/go/bin directory in your PATH environment variable. You may need to restart any open Terminal sessions for the change to take effect.

Make sure you have defined your GOPATH:

export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

Now you need to download and configure MongoDB and Redis. Alternatively you can use remote servers.

Execute the following command: go get https://github.com/cespare/reflex

Reflex probably only works on Linux and Mac OS.

Download the repositories

Download the core in any path.

Initialize the repo submodule, so the frontend is in static/frontend.

git submodule update --init --recursive

Install the core dependencies with go build.

Install the frontend dependencies with yarn install.

Configure

Copy the .env.example file into .env and edit it to meet your local environment configuration.

Edit static/frontend/src/index.html. The window.Anzu variable is the configuration section.

Last steps

Execute the script develop.sh to have hot reload (compile and run) while editing the core code.

Execute brunch watch -s in static/frontend to have hot reload while editing the frontend code.

Commits

We follow the Conventional Commits specification, which help us with automatic semantic versioning and CHANGELOG generation.