Node-based content management system


Keywords
punchcard-cms, content, form, cms, eyeglass-module, cms-framework, cms-punchcard, headless, node-cms, postgres
License
Apache-2.0
Install
npm install punchcard-cms@2.42.11

Documentation

Punchcard CMS Build Status Coverage Status Code Climate

Deploy

Headless Content Management System designed with content strategy at its heart. Built with Node.

Install and Usage

npm i punchcard-cms --save
const punchcard = require('punchcard-cms');

punchcard().then(app => {
  app.listen(8080);
})

Setting File Storage

Punchcard uses any Vinyl Adapter that your heart desires. A good first place to start is searching for vinyl on NPM. Punchcard assumes all vinyl adapters are named vinyl-adapter.

Developing Locally

Make sure PostgresSQL is set up locally (see below)

Install all the things

npm install

Run the following to run both the database and get the server running:

$ npm run dev

debug mode

Uses node's built in inspector. This works in chrome only.

$ npm run dev:database

then in a separate window:

$ npm run debug

There will be instructions and a link to paste into chrome shown in the terminal after this debug command is run.

Setting up PostgreSQL locally

  1. Make sure you have homebrew installed: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  2. brew update

  3. brew install postgres

  4. start the postgres server: postgres -D /usr/local/var/postgres

  5. open new terminal tab

  6. create a postgres user (it'll prompt for a password use W@ts0n): createuser punchcard -P

  7. Create local CMS database: createdb -O punchcard punchcard

  8. Create local test database: createdb -O punchcard punchcard_test

  9. reconnect to psql as new user: psql -d punchcard -U punchcard

  10. connect to db: \connect punchcard

Once you are connected you should be able to use psql cli syntax to check tables.

  • \d+ checks table relations
  • \l lists all available databases
  • select * from "database_name"; Displays all rows in database, replacing database_name with the table you want to see.
  • list all tables for user punchcard: \c punchcard \dt

Changelog

See the latest release for the most recent changelog