Skip to content
The simplest CMS based on pure Node.js without Express
HTML JavaScript CSS Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Node CMS

The simplest CMS based on pure Node.js without Express.
You can manage contents with markdown text files.

How to Run This Website

local (macOS)

  1. install Node.js (version 10)
  2. install MongoDB
  3. install pm2
    npm install pm2 -g
  4. install Node CMS & node-utils
    git clone
    git clone
    mv -r node-cms fully-hatter
    cd fully-hatter
    npm install
  5. create 'configs/mailgun-config.json'
  6. start MongoDB
    bash scripts/local/
  7. start server
    # normal mode
    node app.js
    # debug mode
    node inspect app.js

production (ubuntu)

  1. set up server with below commands
    # install Node.js (version 10)
    curl -sL | sudo -E bash -
    sudo apt-get install -y nodejs
    # install MongoDB
    sudo apt-key adv --keyserver hkp:// --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
    echo "deb [ arch=amd64,arm64 ] xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
    sudo apt-get update
    sudo apt-get install -y mongodb-org
    # install pm2
    sudo npm install pm2 -g
    # install Node CMS
    git clone
    cd fully-hatter
    npm install
  2. create 'configs/mailgun-config.json'
  3. start MongoDB
    bash scripts/production/ start
  4. start server
    npm start
  5. set-up crontab
    crontab configs/crontab/crontab.config

How to Backup (on macOS)

  1. execute below command on macOS
    bash scripts/local/
  2. delete unneeded logs in server

Error check

# MongoDB
tail /var/log/mongodb/mongod.log

# Server (PM2)
pm2 ls
tail logs/app.log
tail logs/app-err.log

# cron
crontab -l
tail logs/cron.log
You can’t perform that action at this time.