Suggest Edits

Developing


Running Coral for development is very similar to installing Coral via Source as described above.

Coral requires NodeJS >=12, we recommend using nvm to help manage node versions: https://github.com/creationix/nvm.

# Clone and cd into the Coral directory.
git clone https://github.com/coralproject/talk.git
cd talk

# Install dependencies.
npm install

Running Coral with default settings assumes that you have:

  • MongoDB >=4.2 running on 127.0.0.1:27017
  • Redis >=3.2 running on 127.0.0.1:6379

If you don’t already have these databases running, you can execute the following assuming you have Docker installed on your local machine:

docker run -d -p 27017:27017 --restart always --name mongo mongo:4.2
docker run -d -p 6379:6379 --restart always --name redis redis:3.2

We recommend installing watchman for better watch performance.

# On macOS, you can run the following with Homebrew.
brew update
brew install watchman

Then start Coral with:

# Run the server in development mode in order to facilitate auto-restarting and
# rebuilding when file changes are detected. This might take a while to fully run.
npm run watch

When the client code has been built, navigate to http://localhost:8080/install to start the installation wizard. Note: Ensure localhost:8080 is used in the permitted domains list.

To see the comment stream goto http://localhost:8080/.

To run linting and tests use the following commands:

# Run the linters.
npm run lint

# Run our unit and integration tests.
npm run test

Email

To test out the email sending functionality, you can run inbucket which provides a test SMTP server that can visualize emails in the browser:

docker run -d --name inbucket --restart always -p 2500:2500 -p 9000:9000 inbucket/inbucket

You can then configure the email server on Coral by setting the email settings in Configure -> Email in the admin:

Field Value
From Address `community@test.com`
Secure No
Host localhost
Port 2500
Authentication No

Navigate to http://localhost:9000, click the “Monitor” tab. New emails received on this screen.

Design Language System (UI Components)

We use docz to document and develop our Design Language System. To start docz run:

# Make sure CSS types are generated.
# This is not required when `npm run watch` is already running.
npm run generate:css-types

# Run docz in development.
npm run docz -- dev

After compilation has finished you can access docz at http://localhost:3030/.