Giter Club home page Giter Club logo

hashbrown-cms's Introduction

HashBrown CMS

A free and open-source headless CMS built with Node.js and MongoDB

Getting started

Installing HashBrown

First make sure you have these dependencies met:

  • node.js
  • mongodb
  • imagemagick
  • optional:
    • docker & docker-compose
    • nodemon

Then clone the code and install the dependencies:

git clone https://github.com/HashBrownCMS/hashbrown-cms.git --recursive
cd ./hashbrown-cms
npm install

Running HashBrown

Building and starting the server for production:

npm start

Building/watching frontend files:

npm run build:frontend
npm run watch:frontend

Using Docker:

npm run start:docker
npm run restart:docker
npm run watch:docker
npm run stop:docker

Using nodemon:

npm run watch:nodemon

Updating HashBrown

To update the core HashBrown version and all of its dependencies:

npm run update

Or manually:

cd /to/your/hashbrown/dir
git pull
git submodule update --recursive --init
npm install
webpack 

Remember to stop and restart the server afterwards.

Configuring MongoDB

Using environment variables:

  • MONGODB_HOST: host(s), split by comma, default value is localhost
  • MONGODB_PORT: port(s), split by comma
  • MONGODB_USERNAME: username
  • MONGODB_PASSWORD: password
  • MONGODB_PREFIX: database name prefix, default value is hb_
  • MONGODB_OPTIONS: connection options, JSON string containing key/value pairs.

Using /config/database.cfg

{
  "host": "host" | ["host1", "host2"] | "host1,host2",
  "port": "port" | [port1, port2] | "port1,port2",
  "username": "<username>",
  "password": "<password>",
  "prefix": "<database name prefix>",
  "options": {
    "<key>": "<value>",
    ...
  }
}

Plugins

The folder structure for plugins is like this:

/plugins
    /[plugin-name]
        package.json
        /src
            /Client
                /index.js
            /Server
                /index.js
        /template
        /schema
            /content
            /field

Plugins follow the same file and namespace structure as the main codebase.

When developing plugins, use npm run watch:frontend to compile client-side code and npm run watch:nodemon or npm run watch:docker for server-side code.

When using Docker, issue the command touch package.json to reload the daemon (you might have to exit and re-enter the npm run watch:docker command depending on your OS).

Contribute

If you'd like to contribute to HashBrown development, you can make a pull request to our repo or contact us about becoming a collaborator

Talk to us

Matrix: #hashbrowncms:matrix.org

Report issues

If you have questions, bug reports or anything else of the sort, please use the issue tracker

hashbrown-cms's People

Contributors

mrzapp avatar republica-dk avatar andrelion avatar silend avatar milesleif avatar hancandy avatar pvoznyuk avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.