Minimalistic, lean & mean, node.js cms

Overview

enduro.js

Join the chat at https://gitter.im/Enduro-js/Lobby npm version npm Build Status Coverage Status Code Climate GitHub license

Enduro is minimalistic, lean & mean, node.js cms. See more at enduro.js website

Other repositories: Enduro • samplesEnduro adminendurojs.com site

enduro admin enduro admin enduro admin enduro admin

Documentation

Complete, structured documentation is available here http://www.endurojs.com/docs

JS Transpilers

If you'd like to transpile your static js assets (under assets/js/) you can do so. Simply, set a babel object in your config file. This uses the same babel config specified here: https://babeljs.io/docs/usage/api/#options

{
    "babel": {
        "presets": ["es2015"]
    }
}

Remember also to add whatever preset you'd like to use using npm:

npm install --save-dev babel-preset-es2015

CSS Pre-processors

Instead of using SASS, you can use the LESS pre-processor instead. To do this, set a less object in your config file. This consists of a paths array which is the same as one defined here: http://lesscss.org/#using-less

{
    "less": {
        "paths": []
    }
}

Once that is set, simply add a .less file in your assets/css folder.

For STYLUS (http://stylus-lang.com/) support simple set stylus to true in your config file:

{
    "stylus": true
}

now all .styl files in your assets/css folder are used to generate the css.

Getting started

enduro create

  1. Make sure you have node.js installed. Grab it here if you don't: nodejs installer.
  2. Run npm install enduro -g in your terminal. This will install enduro.
  3. Run enduro create myproject. This will create new folder /myproject with the enduro project
  4. Go in the newly created folder by running cd myproject.
  5. Start enduro in development mode by running simply enduro. Browser window should open with the website running.
  6. Done!
  7. Also, Admin interface is accessible at localhost:5000. Add admin user by running enduro admin add username password.

Developing enduro

I welcome you to develop enduro.js. Follow these guides to get you started quickly:

  1. clone enduro repository
  2. cd into enduro's directory
  3. run npm link
  4. now you can develop enduro

Writing enduro tests

  1. enduro has mocha tests
  2. add your tests in the /test directory
  3. run all tests just by running npm test

Developing enduro admin

  1. I decided to decouple admin interface from enduro to make things cleaner
  2. enduro admin is built using enduro ( duh ;-) )
  3. clone enduro_admin's git repo: https://github.com/Gottwik/Enduro_admin
  4. cd into enduro's directory
  5. run npm link ../enduro_admin or wherever you cloned the enduro_admin to
  6. run enduro on enduro_admin by enduro -nr -noadmin
  7. run enduro on your project
  8. now you can edit enduro admin's source code and see the change on your project at localhost:5000/admin
Comments
  • How to add md / WYSIWYG area?

    How to add md / WYSIWYG area?

    I find this topic (still open). For now - thier is option to add MD to Enduro? (Dont find any docs about this issue beside this post). https://github.com/Gottwik/Enduro/issues/71 https://github.com/Gottwik/enduro_samples/pull/2

    Why? for now its really hard to create text-areas without any structure (rich-text). Also MD vs clients - how clients/site-managers will write MD? (For now i build my own site - but in the future it could be a problem)

    Idea like this: https://quilljs.com/

    ANYWAY - why this feature (MD for now) - not build in - in the core as option (data-type)? (usefull in 99% of the sites)

    opened by Ezra-Siton-UIX 14
  • How to deploy on different server than heroku

    How to deploy on different server than heroku

    Hello! I'm new with this framework but I really like the concept of enduro.js Before I start develop sites based on enduro I want know is it even possible to deploy dynamic site on server which I use. My server use freeBSD OS, can handle with node.js but to run site there server start file MUST be app.js and all static filest MUST be in "public" folder. Is it any chance to run enduro.js site on this type of server?

    opened by masza 10
  • Couple Of Questions

    Couple Of Questions

    Thanks for this amazing platform @Gottwik , however i couldn't find anywhere else to ask a couple of questions except for here.

    • Can we extend the login system ? such as more user types (admin, user etc ...)
    • Extending User properties such as profiles ?
    • External OpenID Social Logins such as Facebook , google etc..
    • Connect the membership repository to a database for more security ?
    • Can we user AngularJS2 modules under it , i have seen an example for Angular1 so far
    • Is there any example showing how to build a custom module under Enduro by implementing an backend api's from cross origin ?
    opened by abomadi 9
  • Unable to setup Juicebox

    Unable to setup Juicebox

    Whenever I run

    enduro setup juicebox

    I get the following error:

    │ Arguments not recognized │ (node:99069) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): not recognized

    It may also be worth mentioning that when I run enduro --help it starts the enduro in production mode...

    I'm running node v6.9.0 and Enduro 1.4.3.

    I have tried uninstalling and installing different versions on Enduro. Sometimes the --help command will work but I have never been able to setup Juicebox.

    opened by eboebo 9
  • Heroku Cycling causing data loss

    Heroku Cycling causing data loss

    Hello,

    I currently have an enduro js site setup on Heroku, but I am finding that after I add and publish from the admin side my data eventually gets reset to what I pushed before adding the content through admin. This, I believe, is from Heroku cycling the dynos. Does anyone have an enduro site live on Heroku and finding the same thing to be happening? Is there a fix or should I use another service like Netlify?

    Thanks in advance!

    opened by dannydel 8
  • Error: ENOENT: no such file or directory, stat '/_generated/admin/index.html'

    Error: ENOENT: no such file or directory, stat '/_generated/admin/index.html'

    running endurojs in docker node:onbuild latest version of node and npm. After successfully executing enduro create web && cd web && enduro i get the following output

    ————————————————————~—Enduro started—~————————————————————┐ │ Development server started at: │ │ localhost:3000 │ │ Admin ui available at: │ │ localhost:5000/admin │ ├——————————————————————————————————————————————————————————┤ │ Admin has no live-reload! │ └——————————————————————————————————————————————————————————┘ [03:33:45 | + 1.37] developer start [03:33:45 | + 0.09] Render started [03:33:45 | + 0.02] Sass compiling started [03:33:46 | + 0.14] Sass compiling finished [03:33:46 | + 0.02] Render finished [03:33:46 | + 0.01] browsersync started [03:33:46 | + 0.02] production server starting [03:33:46 | + 0.01] Production server started at port 5000

    going to localhost:3000 and localhost:5000 gives me

    Hey you!

    Enduro is nice

    Try it out yourself

    which I assume is correct...however going to localhost:5000/admin gives me

    Error: ENOENT: no such file or directory, stat '/_generated/admin/index.html'

    checking the directory structure I see there is no admin folder and index.html is in the root of generated

    Am I missing a step here?

    opened by karneaud 8
  • addadmin doesn't add to .users.js

    addadmin doesn't add to .users.js

    enduro addadmin testUser testPass doesn't add to the .users.js file. I got it working by figuring out that you're using SHA256, and generating salts and hashes manually.

    opened by ghettosoak 8
  • A few questions (i'm a relatively new developer)

    A few questions (i'm a relatively new developer)

    Hi,

    Love enduro, its great and just what I have been looking for as a CMS.

    I'm having a couple of issues though. They might be amateur errors by be so I apologise for wasting time if they are.

    I have hosted my site, copied all the files from _src, but the admin interface doesn't appear to be working when I go to www.mydomain.com/admin. Do I need to set anything extra up to get admin working.

    Secondly, when I have gone back to my project today, I'm getting errors saying that partials could not be found although they are definately there. (Hopefully see screenshot) It was working perfectly yesterday.

    screen shot 2017-04-09 at 08 25 18

    Any help would be great. I've read the documentation but couldn't seem to find what I needed. Thank you in advance!

    opened by Jonesatron 8
  • Non-file stream objects are not supported with SigV4 in AWS.S3

    Non-file stream objects are not supported with SigV4 in AWS.S3

    After turning on Juicebox and connectinf to S3 i am getting the following error when trying to upload new images via the admin panel "unable to upload: Error: Non-file stream objects are not supported with SigV4 in AWS.S3"

    opened by jmelendev 8
  • running on windows  error

    running on windows error

    I am trying enduro on windows server 2012 but I got this error:

    [09:54:40 |    +10.4] developer start
    Juicebox is not set up
    Unhandled rejection TypeError: Cannot read property '1' of null
        at Array.slice.call.map (C:\Users\adm-213100168\AppData\Roaming\npm\node_modules\enduro\libs\flat_utilities\enduro_h
    elpers.js:52:110)
        at Array.map (native)
        at enduro_helpers.ensure_directory_existence (C:\Users\adm-213100168\AppData\Roaming\npm\node_modules\enduro\libs\fl
    at_utilities\enduro_helpers.js:52:53)
        at babel.get_cultures.then (C:\Users\adm-213100168\AppData\Roaming\npm\node_modules\enduro\libs\pregenerator\pregene
    rator.js:70:27)
        at tryCatcher (C:\Users\adm-213100168\AppData\Roaming\npm\node_modules\enduro\node_modules\bluebird\js\release\util.
    js:16:23)
        at Promise._settlePromiseFromHandler (C:\Users\adm-213100168\AppData\Roaming\npm\node_modules\enduro\node_modules\bl
    uebird\js\release\promise.js:510:31)
        at Promise._settlePromise (C:\Users\adm-213100168\AppData\Roaming\npm\node_modules\enduro\node_modules\bluebird\js\r
    elease\promise.js:567:18)
        at Promise._settlePromiseCtx (C:\Users\adm-213100168\AppData\Roaming\npm\node_modules\enduro\node_modules\bluebird\j
    s\release\promise.js:604:10)
        at Async._drainQueue (C:\Users\adm-213100168\AppData\Roaming\npm\node_modules\enduro\node_modules\bluebird\js\releas
    e\async.js:143:12)
        at Async._drainQueues (C:\Users\adm-213100168\AppData\Roaming\npm\node_modules\enduro\node_modules\bluebird\js\relea
    se\async.js:148:10)
        at Immediate.Async.drainQueues (C:\Users\adm-213100168\AppData\Roaming\npm\node_modules\enduro\node_modules\bluebird
    \js\release\async.js:17:14)
        at runCallback (timers.js:637:20)
        at tryOnImmediate (timers.js:610:5)
        at processImmediate [as _immediateCallback] (timers.js:582:5)
    
    C:\Users\adm-213100168\AppData\Roaming\npm\node_modules\enduro\libs\flat_utilities\enduro_helpers.js:52
            file_paths = Array.prototype.slice.call(arguments).map((file_path) => { return file_path.match(/^(.*)\/.*$/)[1]
    })
                                                                                                                        ^
    
    TypeError: Cannot read property '1' of null
        at Array.slice.call.map (C:\Users\adm-213100168\AppData\Roaming\npm\node_modules\enduro\libs\flat_utilities\enduro_h
    elpers.js:52:110)
        at Array.map (native)
        at enduro_helpers.ensure_directory_existence (C:\Users\adm-213100168\AppData\Roaming\npm\node_modules\enduro\libs\fl
    at_utilities\enduro_helpers.js:52:53)
        at read (C:\Users\adm-213100168\AppData\Roaming\npm\node_modules\enduro\libs\pregenerator\pregenerator.js:51:19)
        at tryToString (fs.js:425:3)
        at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:412:12)
    

    what is wrong?

    Thanks

    opened by assiomatica 8
  • cannot run enduro with s3

    cannot run enduro with s3

    After setting up s3, my project won't run. I get this error message. This is what happens whether I run juice pack -f, juice pull, or just enduro start. <?xml version="1.0" encoding="UTF-8"?> <Error><Code>NoSuchKey</Code><Message>The specified key does not exist.</Message><Key>juicebox/juice.json</Key><RequestId>C755B9F8AD70628E</RequestId><HostId>pChEn3ve9fmYPI5yt4GSsnjg/ZFn+oa+npQGzJve8APEEOc5L/wCLoeeyZH4JnneQ1lmz1cxqFo=</HostId></Error>

    enduro.json: { "project_name": "daronscustombuildings", "project_slug": "dcb", "juicebox_enabled": true, "s3": { "bucket": "{my bucket name}", "region": "us-west-1" } } enduro_secret.json: { "secret": { "s3": { "S3_KEY": "{IAM access key from aws}", "S3_SECRET": "{IAM secret key from aws}" } } }

    Am I missing something here? I've tried updating enduro, I've checked that juicebox is enabled and I do have a juicebox/juice.json file, and double checked that my keys are entered in correctly. Please help!

    opened by jennanmchugh 7
  • Is Enduro still actively maintained?

    Is Enduro still actively maintained?

    Hi,

    Found about Enduro just today and it seems awesome but the "npm install" throw mainly deprecated dependencies messages, "enduro create" don't create and there seems to be no more activity on Github/Twitter/Blog since 2017.

    Among the 112 Forks, is there maby a maintained one? Really hope to find a way to test out Enduro.

    opened by AndiKod 4
  • Update mkdirp to the latest version 🚀

    Update mkdirp to the latest version 🚀

    The dependency mkdirp was updated from 0.5.1 to 1.0.0.

    This version is not covered by your current version range.

    If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.


    Publisher: isaacs License: MIT

    Find out more about this release.


    FAQ and help

    There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


    Your Greenkeeper bot :palm_tree:

    greenkeeper 
    opened by greenkeeper[bot] 4
  • Update dir-compare to the latest version 🚀

    Update dir-compare to the latest version 🚀

    The dependency dir-compare was updated from 1.8.0 to 2.0.0.

    This version is not covered by your current version range.

    If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.


    Publisher: gliviu License: MIT

    Find out more about this release.


    FAQ and help

    There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


    Your Greenkeeper bot :palm_tree:

    greenkeeper 
    opened by greenkeeper[bot] 3
  • Enduro js don't create new project.

    Enduro js don't create new project.

    I installed enduro with npm install enduro -g in my cmd terminal. It install correctly, when I type enduro --version, print out 1.4.47. Well, everything right, but when I type enduro create helloworld in line to enduro startup tutorlial cmd sad:

    (node:4424) UnhandledPromiseRejectionWarning: ReferenceError: primordials is not defined at fs.js:27:26 at req_ (C:\Users\matte\AppData\Roaming\npm\node_modules\enduro\node_modules\natives\index.js:143:24) at Object.req [as require] (C:\Users\matte\AppData\Roaming\npm\node_modules\enduro\node_modules\natives\index.js:55:10) at Object. (C:\Users\matte\AppData\Roaming\npm\node_modules\enduro\node_modules\vinyl-fs\node_modules\graceful-fs\fs.js:1:37) at Module._compile (internal/modules/cjs/loader.js:959:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10) at Module.load (internal/modules/cjs/loader.js:815:32) at Function.Module._load (internal/modules/cjs/loader.js:727:14) at Module.require (internal/modules/cjs/loader.js:852:19) at require (internal/modules/cjs/helpers.js:74:18) at Object. (C:\Users\matte\AppData\Roaming\npm\node_modules\enduro\node_modules\vinyl-fs\node_modules\graceful-fs\graceful-fs.js:3:27) at Module._compile (internal/modules/cjs/loader.js:959:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10) at Module.load (internal/modules/cjs/loader.js:815:32) at Function.Module._load (internal/modules/cjs/loader.js:727:14) at Module.require (internal/modules/cjs/loader.js:852:19) (node:4424) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:4424) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

    So, I think, is a dependence of endoru-js, but after installed python, updated npm and node, the situation is still the same.

    Some advice?

    opened by mmss1995 8
  • Update gulp-rename to the latest version 🚀

    Update gulp-rename to the latest version 🚀

    The dependency gulp-rename was updated from 1.4.0 to 2.0.0.

    This version is not covered by your current version range.

    If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.


    Publisher: contra License: MIT

    Find out more about this release.


    FAQ and help

    There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


    Your Greenkeeper bot :palm_tree:

    greenkeeper 
    opened by greenkeeper[bot] 0
Owner
Martin Gottweis
Martin Gottweis
The most powerful headless CMS for Node.js — built with GraphQL and React

A scalable platform and CMS to build Node.js applications. schema => ({ GraphQL, AdminUI }) Keystone Next is a preview of the next major release of Ke

KeystoneJS 7.3k Dec 31, 2022
👻 The #1 headless Node.js CMS for professional publishing

Ghost.org | Features | Showcase | Forum | Docs | Contributing | Twitter Love open source? We're hiring Node.js Engineers to work on Ghost full-time Th

Ghost 42.1k Jan 5, 2023
ApostropheCMS is a full-featured, open-source CMS built with Node.js that seeks to empower organizations by combining in-context editing and headless architecture in a full-stack JS environment.

ApostropheCMS ApostropheCMS is a full-featured, open source CMS built with Node.js that seeks to empower organizations by combining in-context editing

Apostrophe Technologies 3.9k Jan 4, 2023
A Node.js CMS written in CoffeeScript, with a user friendly backend

Nodizecms A Node.js CMS written in CoffeeScript, with a user friendly backend Status NodizeCMS is still under heavy development, there's a ton of unim

Nodize CMS 176 Sep 24, 2022
🚀 Open source Node.js Headless CMS to easily build customisable APIs

API creation made simple, secure and fast. The most advanced open-source headless CMS to build powerful APIs with no effort. Try live demo Strapi is a

strapi 50.8k Dec 27, 2022
👻 The #1 headless Node.js CMS for professional publishing

Ghost.org | Features | Showcase | Forum | Docs | Contributing | Twitter Love open source? We're hiring Node.js Engineers to work on Ghost full-time Th

Ghost 37k Apr 5, 2021
ApostropheCMS is a full-featured, open-source CMS built with Node.js that seeks to empower organizations by combining in-context editing and headless architecture in a full-stack JS environment.

ApostropheCMS ApostropheCMS is a full-featured, open source CMS built with Node.js that seeks to empower organizations by combining in-context editing

Apostrophe Technologies 3.9k Jan 4, 2023
Drag and drop page builder and CMS for React, Vue, Angular, and more

Drag and drop page builder and CMS for React, Vue, Angular, and more Use your code components and the stack of your choice. No more being pestered for

Builder.io 4.3k Jan 9, 2023
The official CMS of OwnStore suite.

This project is part of OwnStore suite. Learn more here: https://ownstore.dev The suite contains the following projects: Website API CMS Doc Apps TWA

OwnStore 15 Nov 12, 2022
Reaction is an API-first, headless commerce platform built using Node.js, React, GraphQL. Deployed via Docker and Kubernetes.

Reaction Commerce Reaction is a headless commerce platform built using Node.js, React, and GraphQL. It plays nicely with npm, Docker and Kubernetes. G

Reaction Commerce 11.9k Jan 3, 2023
We.js, extensible Node.js MVC framework - CLI

We.js ;) We.js is a extensible node.js MVC framework For information and documentation see: http://wejs.org This repository (wejs/we) have the We.js C

We.js 208 Nov 10, 2022
Javascript Content Management System running on Node.js

Cody CMS A Javascript Content Management System running on Node.js We finally took upon the task, we are happy to announce the transition to Express 4

Johan Coppieters 669 Oct 31, 2022
Business class content management for Node.js (plugins, server cluster management, data-driven pages)

PencilBlue A full featured Node.js CMS and blogging platform (plugins, server cluster management, data-driven pages) First and foremost: If at any poi

PencilBlue, LLC. 1.6k Dec 30, 2022
Business class content management for Node.js (plugins, server cluster management, data-driven pages)

PencilBlue A full featured Node.js CMS and blogging platform (plugins, server cluster management, data-driven pages) First and foremost: If at any poi

PencilBlue, LLC. 1.6k Dec 30, 2022
We.js, extensible Node.js MVC framework - CLI

We.js ;) We.js is a extensible node.js MVC framework For information and documentation see: http://wejs.org This repository (wejs/we) have the We.js C

We.js 208 Nov 10, 2022
AdminBro is an admin panel for apps written in node.js

Admin Bro AdminBro is An automatic admin interface which can be plugged into your application. You, as a developer, provide database models (like post

Software Brothers 6.5k Jan 2, 2023
A Node.js Express backend for a Stackoverflow like answering forum, with RESTful endpoints

A Node.js Express backend for a Stackoverflow like answering forum, with RESTful endpoints, written in es6 style with linted and comprehensively unit-tested code. Utilizes a local json database using fs but has full separation of concern to implement anything else.

Dhiman Seal 3 Jan 9, 2022
A lean framework for developing Elgato Stream Deck plugins

A lean framework for developing Elgato Stream Deck plugins

Nando Vieira 17 Dec 17, 2022
Library to calculate a Mean Opinion Score (MOS) from 1 to 5 for audio and video real time communications

RTC SCORE Library to calculate a Mean Opinion Score (MOS) from 1 to 5 for audio and video real time communications. The first version of the algorithm

Gustavo Garcia 25 Nov 27, 2022
A repository to store everything related to Mean's oracles

Mean Finance Oracles This repository will hold all Mean Finance's oracle infrastructure. It aims to have a sufficiently flexible architecture as to su

Mean Finance 18 Nov 18, 2022