SOLVED Unable to login after upgrade

  • Global Moderator Plugin & Theme Dev

    What version of Node.JS?


  • @julian Got it!

    root /home/ubuntu/NodeBB/public/; mismatched. I had an older install there. Updating that directory worked.

    And you're right. The nodebb.service in systemd downgrades to the nodebb user.


  • @PitaJ

    Package: nodejs
    Version: 6.9.4-1nodesource1~xenial1
    Architecture: amd64
    Maintainer: Chris Lea <chl@nodesource.com>
    

  • Output of sudo npm install:

    sudo npm install
    npm WARN deprecated mongodb@2.2.16: Please upgrade to 2.2.19 or higher
    npm WARN deprecated node-uuid@1.4.7: use uuid module instead
    npm WARN deprecated wrench@1.5.9: wrench.js is deprecated! You should check out fs-extra (https://github.com/jprichardson/node-fs-extra) for any operations you were using wrench for. Thanks for all the usage over the years.
    npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
    npm WARN deprecated minimatch@0.3.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
    npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
    nodebb@1.4.2 /home/ubuntu/NodeBB
    ├── async@1.5.2
    ├─┬ autoprefixer@6.7.0
    │ ├─┬ browserslist@1.6.0
    │ │ └── electron-to-chromium@1.2.1
    │ ├── caniuse-db@1.0.30000617
    │ ├── normalize-range@0.1.2
    │ ├── num2fraction@1.2.2
    │ └── postcss-value-parser@3.3.0
    ├── bcryptjs@2.3.0
    ├─┬ body-parser@1.16.0
    │ ├── bytes@2.4.0
    │ ├── content-type@1.0.2
    │ ├── debug@2.6.0
    │ ├── depd@1.1.0
    │ ├─┬ http-errors@1.5.1
    │ │ ├── inherits@2.0.3
    │ │ ├── setprototypeof@1.0.2
    │ │ └── statuses@1.3.1
    │ ├── iconv-lite@0.4.15
    │ ├─┬ on-finished@2.3.0
    │ │ └── ee-first@1.1.1
    │ ├── qs@6.2.1
    │ ├─┬ raw-body@2.2.0
    │ │ └── unpipe@1.0.0
    │ └─┬ type-is@1.6.14
    │   └── media-typer@0.3.0
    ├─┬ chart.js@2.4.0
    │ ├─┬ chartjs-color@2.0.0
    │ │ ├─┬ chartjs-color-string@0.4.0
    │ │ │ └── color-name@1.1.1
    │ │ └── color-convert@0.5.3
    │ └── moment@2.17.1
    ├── colors@1.1.2
    ├─┬ compression@1.6.2
    │ ├─┬ accepts@1.3.3
    │ │ └── negotiator@0.6.1
    │ ├── bytes@2.3.0
    │ ├─┬ compressible@2.0.9
    │ │ └── mime-db@1.26.0
    │ ├─┬ debug@2.2.0
    │ │ └── ms@0.7.1
    │ ├── on-headers@1.0.1
    │ └── vary@1.1.0
    ├── connect-ensure-login@0.1.1
    ├── connect-flash@0.1.1
    ├─┬ connect-mongo@1.3.2
    │ └── bluebird@3.4.7
    ├─┬ connect-multiparty@2.0.0
    │ ├─┬ multiparty@4.1.3
    │ │ └─┬ fd-slicer@1.0.1
    │ │   └── pend@1.2.0
    │ └── qs@4.0.0
    ├── connect-redis@3.1.0
    ├─┬ cookie-parser@1.4.3
    │ ├── cookie@0.3.1
    │ └── cookie-signature@1.0.6
    ├─┬ coveralls@2.11.15
    │ ├─┬ js-yaml@3.6.1
    │ │ └── argparse@1.0.9
    │ ├── lcov-parse@0.0.10
    │ ├── log-driver@1.2.5
    │ └─┬ request@2.75.0
    │   ├─┬ bl@1.1.2
    │   │ └── readable-stream@2.0.6
    │   ├── form-data@2.0.0
    │   └── node-uuid@1.4.7
    ├─┬ cron@1.2.1
    │ └── moment-timezone@0.5.11
    ├─┬ csurf@1.9.0
    │ └─┬ csrf@3.0.4
    │   ├── base64-url@1.3.3
    │   ├── rndm@1.2.0
    │   └── tsscmp@1.0.5
    ├── daemon@1.1.0
    ├─┬ eslint@3.14.1
    │ ├─┬ babel-code-frame@6.22.0
    │ │ └── js-tokens@3.0.0
    │ ├─┬ chalk@1.1.3
    │ │ ├── ansi-styles@2.2.1
    │ │ ├── has-ansi@2.0.0
    │ │ ├── strip-ansi@3.0.1
    │ │ └── supports-color@2.0.0
    │ ├─┬ concat-stream@1.6.0
    │ │ ├── readable-stream@2.2.2
    │ │ └── typedarray@0.0.6
    │ ├─┬ doctrine@1.5.0
    │ │ └── isarray@1.0.0
    │ ├─┬ escope@3.6.0
    │ │ ├── es6-weak-map@2.0.1
    │ │ └─┬ esrecurse@4.1.0
    │ │   └── estraverse@4.1.1
    │ ├─┬ espree@3.3.2
    │ │ ├── acorn@4.0.4
    │ │ └─┬ acorn-jsx@3.0.1
    │ │   └── acorn@3.3.0
    │ ├── estraverse@4.2.0
    │ ├── esutils@2.0.2
    │ ├─┬ file-entry-cache@2.0.0
    │ │ └─┬ flat-cache@1.2.2
    │ │   ├── circular-json@0.3.1
    │ │   ├─┬ del@2.2.2
    │ │   │ ├─┬ globby@5.0.0
    │ │   │ │ ├─┬ array-union@1.0.2
    │ │   │ │ │ └── array-uniq@1.0.3
    │ │   │ │ └── arrify@1.0.1
    │ │   │ ├── is-path-cwd@1.0.0
    │ │   │ ├─┬ is-path-in-cwd@1.0.0
    │ │   │ │ └── is-path-inside@1.0.0
    │ │   │ └── pify@2.3.0
    │ │   └── write@0.2.1
    │ ├─┬ glob@7.1.1
    │ │ ├── fs.realpath@1.0.0
    │ │ ├── inflight@1.0.6
    │ │ └── path-is-absolute@1.0.1
    │ ├── globals@9.14.0
    │ ├── ignore@3.2.0
    │ ├── imurmurhash@0.1.4
    │ ├─┬ inquirer@0.12.0
    │ │ ├── ansi-escapes@1.4.0
    │ │ ├── ansi-regex@2.1.1
    │ │ ├─┬ cli-cursor@1.0.2
    │ │ │ └─┬ restore-cursor@1.0.1
    │ │ │   ├── exit-hook@1.1.1
    │ │ │   └── onetime@1.1.0
    │ │ ├── cli-width@2.1.0
    │ │ ├── figures@1.7.0
    │ │ ├─┬ readline2@1.0.1
    │ │ │ ├── code-point-at@1.1.0
    │ │ │ ├─┬ is-fullwidth-code-point@1.0.0
    │ │ │ │ └── number-is-nan@1.0.1
    │ │ │ └── mute-stream@0.0.5
    │ │ ├── run-async@0.1.0
    │ │ ├── rx-lite@3.1.2
    │ │ ├── string-width@1.0.2
    │ │ └── through@2.3.8
    │ ├─┬ is-my-json-valid@2.15.0
    │ │ ├── generate-function@2.0.0
    │ │ ├─┬ generate-object-property@1.2.0
    │ │ │ └── is-property@1.0.2
    │ │ └── jsonpointer@4.0.1
    │ ├─┬ is-resolvable@1.0.0
    │ │ └── tryit@1.0.3
    │ ├── js-yaml@3.7.0
    │ ├─┬ json-stable-stringify@1.0.1
    │ │ └── jsonify@0.0.0
    │ ├─┬ levn@0.3.0
    │ │ ├── prelude-ls@1.1.2
    │ │ └── type-check@0.3.2
    │ ├── lodash@4.17.4
    │ ├── natural-compare@1.4.0
    │ ├─┬ optionator@0.8.2
    │ │ ├── deep-is@0.1.3
    │ │ ├── fast-levenshtein@2.0.6
    │ │ └── wordwrap@1.0.0
    │ ├── path-is-inside@1.0.2
    │ ├── pluralize@1.2.1
    │ ├── progress@1.1.8
    │ ├─┬ require-uncached@1.0.3
    │ │ ├─┬ caller-path@0.1.0
    │ │ │ └── callsites@0.2.0
    │ │ └── resolve-from@1.0.1
    │ ├─┬ shelljs@0.7.6
    │ │ ├── interpret@1.0.1
    │ │ └── rechoir@0.6.2
    │ ├── strip-bom@3.0.0
    │ ├── strip-json-comments@2.0.1
    │ ├─┬ table@3.8.3
    │ │ ├─┬ ajv@4.11.2
    │ │ │ └── co@4.6.0
    │ │ ├── ajv-keywords@1.5.1
    │ │ ├── slice-ansi@0.0.4
    │ │ └─┬ string-width@2.0.0
    │ │   └── is-fullwidth-code-point@2.0.0
    │ ├── text-table@0.2.0
    │ └─┬ user-home@2.0.0
    │   └── os-homedir@1.0.1
    ├─┬ eslint-config-airbnb@12.0.0
    │ └── eslint-config-airbnb-base@8.0.0
    ├─┬ eslint-plugin-import@1.16.0
    │ ├── builtin-modules@1.1.1
    │ ├── contains-path@0.1.0
    │ ├── doctrine@1.3.0
    │ ├─┬ es6-map@0.1.4
    │ │ ├── d@0.1.1
    │ │ ├── es5-ext@0.10.12
    │ │ ├── es6-iterator@2.0.0
    │ │ ├── es6-symbol@3.1.0
    │ │ └── event-emitter@0.3.4
    │ ├── es6-set@0.1.4
    │ ├─┬ eslint-import-resolver-node@0.2.3
    │ │ └── resolve@1.2.0
    │ ├─┬ has@1.0.1
    │ │ └── function-bind@1.1.0
    │ ├── lodash.cond@4.5.2
    │ ├── lodash.endswith@4.2.1
    │ ├── lodash.find@4.6.0
    │ ├── lodash.findindex@4.6.0
    │ ├─┬ minimatch@3.0.3
    │ │ └─┬ brace-expansion@1.1.6
    │ │   ├── balanced-match@0.4.2
    │ │   └── concat-map@0.0.1
    │ ├── object-assign@4.1.0
    │ ├─┬ pkg-dir@1.0.0
    │ │ └─┬ find-up@1.1.2
    │ │   └── path-exists@2.1.0
    │ └── pkg-up@1.0.0
    ├─┬ eslint-plugin-jsx-a11y@2.2.3
    │ ├── damerau-levenshtein@1.0.3
    │ └── jsx-ast-utils@1.3.5
    ├─┬ eslint-plugin-react@6.9.0
    │ └─┬ array.prototype.find@2.0.3
    │   ├─┬ define-properties@1.1.2
    │   │ ├── foreach@2.0.5
    │   │ └── object-keys@1.0.11
    │   └─┬ es-abstract@1.7.0
    │     ├─┬ es-to-primitive@1.1.1
    │     │ ├── is-date-object@1.0.1
    │     │ └── is-symbol@1.0.1
    │     ├── is-callable@1.1.3
    │     └── is-regex@1.0.3
    ├─┬ express@4.14.0
    │ ├── array-flatten@1.1.1
    │ ├── content-disposition@0.5.1
    │ ├─┬ debug@2.2.0
    │ │ └── ms@0.7.1
    │ ├── encodeurl@1.0.1
    │ ├── escape-html@1.0.3
    │ ├── etag@1.7.0
    │ ├─┬ finalhandler@0.5.0
    │ │ └─┬ debug@2.2.0
    │ │   └── ms@0.7.1
    │ ├── fresh@0.3.0
    │ ├── merge-descriptors@1.0.1
    │ ├── methods@1.1.2
    │ ├── parseurl@1.3.1
    │ ├── path-to-regexp@0.1.7
    │ ├─┬ proxy-addr@1.1.3
    │ │ ├── forwarded@0.1.0
    │ │ └── ipaddr.js@1.2.0
    │ ├── qs@6.2.0
    │ ├── range-parser@1.2.0
    │ ├─┬ send@0.14.1
    │ │ ├── debug@2.2.0
    │ │ ├── destroy@1.0.4
    │ │ └── ms@0.7.1
    │ ├─┬ serve-static@1.11.2
    │ │ └─┬ send@0.14.2
    │ │   └─┬ debug@2.2.0
    │ │     └── ms@0.7.1
    │ └── utils-merge@1.0.0
    ├─┬ express-session@1.15.0
    │ ├── crc@3.4.4
    │ └─┬ uid-safe@2.1.3
    │   └── random-bytes@1.0.0
    ├─┬ express-useragent@1.0.4
    │ └─┬ nodeunit@0.10.2
    │   └─┬ tap@7.1.2
    │     ├── clean-yaml-object@0.1.0
    │     ├── color-support@1.1.2
    │     ├── deeper@2.1.0
    │     ├─┬ foreground-child@1.5.6
    │     │ └── cross-spawn@4.0.2
    │     ├─┬ nyc@7.1.0
    │     │ ├── arrify@1.0.1
    │     │ ├─┬ caching-transform@1.0.1
    │     │ │ └─┬ write-file-atomic@1.1.4
    │     │ │   ├── graceful-fs@4.1.4
    │     │ │   ├── imurmurhash@0.1.4
    │     │ │   └── slide@1.1.6
    │     │ ├── convert-source-map@1.3.0
    │     │ ├─┬ default-require-extensions@1.0.0
    │     │ │ └─┬ strip-bom@2.0.0
    │     │ │   └── is-utf8@0.2.1
    │     │ ├─┬ find-cache-dir@0.1.1
    │     │ │ ├── commondir@1.0.1
    │     │ │ └── pkg-dir@1.0.0
    │     │ ├─┬ find-up@1.1.2
    │     │ │ ├── path-exists@2.1.0
    │     │ │ └─┬ pinkie-promise@2.0.1
    │     │ │   └── pinkie@2.0.4
    │     │ ├─┬ foreground-child@1.5.3
    │     │ │ └─┬ cross-spawn@4.0.0
    │     │ │   └─┬ lru-cache@4.0.1
    │     │ │     ├── pseudomap@1.0.2
    │     │ │     └── yallist@2.0.0
    │     │ ├─┬ glob@7.0.5
    │     │ │ ├── fs.realpath@1.0.0
    │     │ │ ├─┬ inflight@1.0.5
    │     │ │ │ └── wrappy@1.0.2
    │     │ │ ├── inherits@2.0.1
    │     │ │ ├─┬ minimatch@3.0.2
    │     │ │ │ └─┬ brace-expansion@1.1.6
    │     │ │ │   ├── balanced-match@0.4.2
    │     │ │ │   └── concat-map@0.0.1
    │     │ │ ├── once@1.3.3
    │     │ │ └── path-is-absolute@1.0.0
    │     │ ├── istanbul-lib-coverage@1.0.0-alpha.4
    │     │ ├─┬ istanbul-lib-hook@1.0.0-alpha.4
    │     │ │ └── append-transform@0.3.0
    │     │ ├─┬ istanbul-lib-instrument@1.1.0-alpha.4
    │     │ │ ├─┬ babel-generator@6.11.4
    │     │ │ │ ├── babel-messages@6.8.0
    │     │ │ │ ├─┬ babel-runtime@6.9.2
    │     │ │ │ │ ├── core-js@2.4.1
    │     │ │ │ │ └── regenerator-runtime@0.9.5
    │     │ │ │ ├─┬ detect-indent@3.0.1
    │     │ │ │ │ ├── get-stdin@4.0.1
    │     │ │ │ │ ├── minimist@1.2.0
    │     │ │ │ │ └─┬ repeating@1.1.3
    │     │ │ │ │   └── is-finite@1.0.1
    │     │ │ │ └── lodash@4.13.1
    │     │ │ ├── babel-template@6.9.0
    │     │ │ ├─┬ babel-traverse@6.11.4
    │     │ │ │ ├─┬ babel-code-frame@6.11.0
    │     │ │ │ │ ├─┬ chalk@1.1.3
    │     │ │ │ │ │ ├── ansi-styles@2.2.1
    │     │ │ │ │ │ ├── escape-string-regexp@1.0.5
    │     │ │ │ │ │ ├── has-ansi@2.0.0
    │     │ │ │ │ │ └── supports-color@2.0.0
    │     │ │ │ │ └── js-tokens@2.0.0
    │     │ │ │ ├─┬ debug@2.2.0
    │     │ │ │ │ └── ms@0.7.1
    │     │ │ │ ├── globals@8.18.0
    │     │ │ │ └─┬ invariant@2.2.1
    │     │ │ │   └─┬ loose-envify@1.2.0
    │     │ │ │     └── js-tokens@1.0.3
    │     │ │ ├─┬ babel-types@6.11.1
    │     │ │ │ ├── esutils@2.0.2
    │     │ │ │ └── to-fast-properties@1.0.2
    │     │ │ └── babylon@6.8.4
    │     │ ├─┬ istanbul-lib-report@1.0.0-alpha.3
    │     │ │ ├── async@1.5.2
    │     │ │ ├── path-parse@1.0.5
    │     │ │ └─┬ supports-color@3.1.2
    │     │ │   └── has-flag@1.0.0
    │     │ ├─┬ istanbul-lib-source-maps@1.0.0-alpha.10
    │     │ │ └── source-map@0.5.6
    │     │ ├─┬ istanbul-reports@1.0.0-alpha.8
    │     │ │ └─┬ handlebars@4.0.5
    │     │ │   ├─┬ optimist@0.6.1
    │     │ │   │ └── wordwrap@0.0.3
    │     │ │   ├─┬ source-map@0.4.4
    │     │ │   │ └── amdefine@1.0.0
    │     │ │   └─┬ uglify-js@2.7.0
    │     │ │     ├── async@0.2.10
    │     │ │     ├── uglify-to-browserify@1.0.2
    │     │ │     └─┬ yargs@3.10.0
    │     │ │       ├── camelcase@1.2.1
    │     │ │       ├─┬ cliui@2.1.0
    │     │ │       │ ├─┬ center-align@0.1.3
    │     │ │       │ │ ├─┬ align-text@0.1.4
    │     │ │       │ │ │ └── longest@1.0.1
    │     │ │       │ │ └── lazy-cache@1.0.4
    │     │ │       │ ├── right-align@0.1.3
    │     │ │       │ └── wordwrap@0.0.2
    │     │ │       └── window-size@0.1.0
    │     │ ├─┬ md5-hex@1.3.0
    │     │ │ └── md5-o-matic@0.1.1
    │     │ ├─┬ micromatch@2.3.11
    │     │ │ ├─┬ arr-diff@2.0.0
    │     │ │ │ └── arr-flatten@1.0.1
    │     │ │ ├── array-unique@0.2.1
    │     │ │ ├─┬ braces@1.8.5
    │     │ │ │ ├─┬ expand-range@1.8.2
    │     │ │ │ │ └─┬ fill-range@2.2.3
    │     │ │ │ │   ├── is-number@2.1.0
    │     │ │ │ │   ├─┬ isobject@2.1.0
    │     │ │ │ │   │ └── isarray@1.0.0
    │     │ │ │ │   ├── randomatic@1.1.5
    │     │ │ │ │   └── repeat-string@1.5.4
    │     │ │ │ ├── preserve@0.2.0
    │     │ │ │ └── repeat-element@1.1.2
    │     │ │ ├─┬ expand-brackets@0.1.5
    │     │ │ │ └── is-posix-bracket@0.1.1
    │     │ │ ├── extglob@0.3.2
    │     │ │ ├── filename-regex@2.0.0
    │     │ │ ├── is-extglob@1.0.0
    │     │ │ ├── is-glob@2.0.1
    │     │ │ ├─┬ kind-of@3.0.3
    │     │ │ │ └── is-buffer@1.1.3
    │     │ │ ├── normalize-path@2.0.1
    │     │ │ ├─┬ object.omit@2.0.0
    │     │ │ │ ├─┬ for-own@0.1.4
    │     │ │ │ │ └── for-in@0.1.5
    │     │ │ │ └── is-extendable@0.1.1
    │     │ │ ├─┬ parse-glob@3.0.4
    │     │ │ │ ├─┬ glob-base@0.3.0
    │     │ │ │ │ └── glob-parent@2.0.0
    │     │ │ │ └── is-dotfile@1.0.2
    │     │ │ └─┬ regex-cache@0.4.3
    │     │ │   ├── is-equal-shallow@0.1.3
    │     │ │   └── is-primitive@2.0.0
    │     │ ├─┬ mkdirp@0.5.1
    │     │ │ └── minimist@0.0.8
    │     │ ├── pkg-up@1.0.0
    │     │ ├── resolve-from@2.0.0
    │     │ ├── rimraf@2.5.4
    │     │ ├── signal-exit@3.0.0
    │     │ ├─┬ spawn-wrap@1.2.4
    │     │ │ ├── os-homedir@1.0.1
    │     │ │ ├── signal-exit@2.1.2
    │     │ │ └─┬ which@1.2.10
    │     │ │   └── isexe@1.1.2
    │     │ ├─┬ test-exclude@1.1.0
    │     │ │ ├─┬ lodash.assign@4.0.9
    │     │ │ │ ├── lodash.keys@4.0.7
    │     │ │ │ └── lodash.rest@4.0.3
    │     │ │ ├─┬ read-pkg-up@1.0.1
    │     │ │ │ └─┬ read-pkg@1.1.0
    │     │ │ │   ├─┬ load-json-file@1.1.0
    │     │ │ │   │ ├─┬ parse-json@2.2.0
    │     │ │ │   │ │ └─┬ error-ex@1.3.0
    │     │ │ │   │ │   └── is-arrayish@0.2.1
    │     │ │ │   │ └── pify@2.3.0
    │     │ │ │   ├─┬ normalize-package-data@2.3.5
    │     │ │ │   │ ├── hosted-git-info@2.1.5
    │     │ │ │   │ ├─┬ is-builtin-module@1.0.0
    │     │ │ │   │ │ └── builtin-modules@1.1.1
    │     │ │ │   │ ├── semver@5.3.0
    │     │ │ │   │ └─┬ validate-npm-package-license@3.0.1
    │     │ │ │   │   ├─┬ spdx-correct@1.0.2
    │     │ │ │   │   │ └── spdx-license-ids@1.2.1
    │     │ │ │   │   └─┬ spdx-expression-parse@1.0.2
    │     │ │ │   │     └── spdx-exceptions@1.0.5
    │     │ │ │   └── path-type@1.1.0
    │     │ │ └── require-main-filename@1.0.1
    │     │ ├─┬ yargs@4.8.1
    │     │ │ ├─┬ cliui@3.2.0
    │     │ │ │ └── wrap-ansi@2.0.0
    │     │ │ ├── decamelize@1.2.0
    │     │ │ ├── get-caller-file@1.0.1
    │     │ │ ├─┬ os-locale@1.4.0
    │     │ │ │ └─┬ lcid@1.0.0
    │     │ │ │   └── invert-kv@1.0.0
    │     │ │ ├── require-directory@2.1.1
    │     │ │ ├── set-blocking@2.0.0
    │     │ │ ├─┬ string-width@1.0.1
    │     │ │ │ ├─┬ code-point-at@1.0.0
    │     │ │ │ │ └── number-is-nan@1.0.0
    │     │ │ │ ├── is-fullwidth-code-point@1.0.0
    │     │ │ │ └─┬ strip-ansi@3.0.1
    │     │ │ │   └── ansi-regex@2.0.0
    │     │ │ ├── which-module@1.0.0
    │     │ │ ├── window-size@0.2.0
    │     │ │ └── y18n@3.2.1
    │     │ └─┬ yargs-parser@2.4.1
    │     │   └── camelcase@3.0.0
    │     ├── only-shallow@1.2.0
    │     ├── opener@1.4.2
    │     ├── signal-exit@3.0.2
    │     ├── stack-utils@0.4.0
    │     ├─┬ tap-mocha-reporter@2.0.1
    │     │ └── unicode-length@1.0.3
    │     ├─┬ tap-parser@2.2.3
    │     │ └── events-to-array@1.0.2
    │     └── tmatch@2.0.1
    ├─┬ grunt@0.4.5
    │ ├── async@0.1.22
    │ ├── coffee-script@1.3.3
    │ ├── colors@0.6.2
    │ ├── dateformat@1.0.2-1.2.3
    │ ├── eventemitter2@0.4.14
    │ ├── exit@0.1.2
    │ ├─┬ findup-sync@0.1.3
    │ │ ├─┬ glob@3.2.11
    │ │ │ └─┬ minimatch@0.3.0
    │ │ │   └── lru-cache@2.7.3
    │ │ └── lodash@2.4.2
    │ ├── getobject@0.1.0
    │ ├─┬ glob@3.1.21
    │ │ ├── graceful-fs@1.2.3
    │ │ └── inherits@1.0.2
    │ ├─┬ grunt-legacy-log@0.1.3
    │ │ ├── colors@0.6.2
    │ │ ├─┬ grunt-legacy-log-utils@0.1.1
    │ │ │ ├── colors@0.6.2
    │ │ │ ├── lodash@2.4.2
    │ │ │ └── underscore.string@2.3.3
    │ │ ├── lodash@2.4.2
    │ │ └── underscore.string@2.3.3
    │ ├─┬ grunt-legacy-util@0.2.0
    │ │ ├── async@0.1.22
    │ │ ├── lodash@0.9.2
    │ │ ├── underscore.string@2.2.1
    │ │ └── which@1.0.9
    │ ├── hooker@0.2.3
    │ ├── iconv-lite@0.2.11
    │ ├─┬ js-yaml@2.0.5
    │ │ ├─┬ argparse@0.1.16
    │ │ │ ├── underscore@1.7.0
    │ │ │ └── underscore.string@2.4.0
    │ │ └── esprima@1.0.4
    │ ├── lodash@0.9.2
    │ ├─┬ minimatch@0.2.14
    │ │ ├── lru-cache@2.7.3
    │ │ └── sigmund@1.0.1
    │ ├── nopt@1.0.10
    │ ├── rimraf@2.2.8
    │ ├── underscore.string@2.2.1
    │ └── which@1.0.9
    ├─┬ grunt-contrib-watch@1.0.0
    │ ├─┬ gaze@1.1.2
    │ │ └─┬ globule@1.1.0
    │ │   └── lodash@4.16.6
    │ ├── lodash@3.10.1
    │ └─┬ tiny-lr@0.2.1
    │   ├─┬ body-parser@1.14.2
    │   │ ├── bytes@2.2.0
    │   │ ├── http-errors@1.3.1
    │   │ ├── iconv-lite@0.4.13
    │   │ ├── qs@5.2.0
    │   │ └─┬ raw-body@2.1.7
    │   │   └── bytes@2.4.0
    │   ├─┬ debug@2.2.0
    │   │ └── ms@0.7.1
    │   ├─┬ faye-websocket@0.10.0
    │   │ └─┬ websocket-driver@0.6.5
    │   │   └── websocket-extensions@0.1.1
    │   ├── livereload-js@2.2.2
    │   └── qs@5.1.0
    ├─┬ html-to-text@2.1.3
    │ ├── he@1.1.1
    │ ├── htmlparser@1.7.7
    │ ├─┬ optimist@0.6.1
    │ │ ├── minimist@0.0.10
    │ │ └── wordwrap@0.0.3
    │ └─┬ underscore.string@3.3.4
    │   ├── sprintf-js@1.0.3
    │   └── util-deprecate@1.0.2
    ├── ip@1.1.3
    ├─┬ istanbul@0.4.5
    │ ├── abbrev@1.0.9
    │ ├─┬ escodegen@1.8.1
    │ │ ├── estraverse@1.9.3
    │ │ └─┬ source-map@0.2.0
    │ │   └── amdefine@1.0.1
    │ ├── esprima@2.7.3
    │ ├── glob@5.0.15
    │ ├─┬ handlebars@4.0.6
    │ │ └── source-map@0.4.4
    │ ├── nopt@3.0.6
    │ ├─┬ once@1.4.0
    │ │ └── wrappy@1.0.2
    │ ├── resolve@1.1.7
    │ ├─┬ supports-color@3.2.3
    │ │ └── has-flag@1.0.0
    │ ├─┬ which@1.2.12
    │ │ └── isexe@1.1.2
    │ └── wordwrap@1.0.0
    ├─┬ jimp@0.2.27
    │ ├── bignumber.js@2.4.0
    │ ├── bmp-js@0.0.1
    │ ├── es6-promise@3.2.1
    │ ├── exif-parser@0.1.9
    │ ├── file-type@3.9.0
    │ ├── jpeg-js@0.2.0
    │ ├─┬ load-bmfont@1.2.5
    │ │ ├── buffer-equal@0.0.1
    │ │ ├── parse-bmfont-ascii@1.0.6
    │ │ ├── parse-bmfont-binary@1.0.6
    │ │ ├─┬ parse-bmfont-xml@1.1.3
    │ │ │ ├── xml-parse-from-string@1.0.0
    │ │ │ └─┬ xml2js@0.4.17
    │ │ │   ├── sax@1.2.1
    │ │ │   └── xmlbuilder@4.2.1
    │ │ └─┬ xhr@2.3.3
    │ │   ├─┬ global@4.3.1
    │ │   │ ├─┬ min-document@2.19.0
    │ │   │ │ └── dom-walk@0.1.1
    │ │   │ └── process@0.5.2
    │ │   ├── is-function@1.0.1
    │ │   └─┬ parse-headers@2.0.1
    │ │     ├── for-each@0.3.2
    │ │     └── trim@0.0.1
    │ ├── pixelmatch@4.0.2
    │ ├── pngjs@3.0.0
    │ ├── read-chunk@1.0.1
    │ ├─┬ stream-to-buffer@0.1.0
    │ │ └── stream-to@0.2.2
    │ ├── tinycolor2@1.4.1
    │ └─┬ url-regex@3.2.0
    │   └── ip-regex@1.0.3
    ├── jquery@3.1.1
    ├─┬ json-2-csv@2.1.0
    │ ├── bluebird@3.4.6
    │ └── doc-path@1.0.8
    ├─┬ less@2.7.2
    │ ├─┬ errno@0.1.4
    │ │ └── prr@0.0.0
    │ ├── graceful-fs@4.1.11
    │ ├── image-size@0.5.1
    │ ├─┬ promise@7.1.1
    │ │ └── asap@2.0.5
    │ └── source-map@0.5.6
    ├─┬ logrotate-stream@0.2.5
    │ ├── byt@0.1.0
    │ └── log-rotate@0.2.7
    ├─┬ lru-cache@4.0.1
    │ ├── pseudomap@1.0.2
    │ └── yallist@2.0.0
    ├── mime@1.3.4
    ├── minimist@1.2.0
    ├─┬ mkdirp@0.5.1
    │ └── minimist@0.0.8
    ├─┬ mocha@3.1.2
    │ ├── browser-stdout@1.3.0
    │ ├─┬ commander@2.9.0
    │ │ └── graceful-readlink@1.0.1
    │ ├─┬ debug@2.2.0
    │ │ └── ms@0.7.1
    │ ├── diff@1.4.0
    │ ├── escape-string-regexp@1.0.5
    │ ├── glob@7.0.5
    │ ├── growl@1.9.2
    │ ├── json3@3.3.2
    │ ├─┬ lodash.create@3.1.1
    │ │ ├─┬ lodash._baseassign@3.2.0
    │ │ │ ├── lodash._basecopy@3.0.1
    │ │ │ └─┬ lodash.keys@3.1.2
    │ │ │   ├── lodash._getnative@3.9.1
    │ │ │   ├── lodash.isarguments@3.1.0
    │ │ │   └── lodash.isarray@3.0.4
    │ │ ├── lodash._basecreate@3.0.3
    │ │ └── lodash._isiterateecall@3.0.9
    │ └── supports-color@3.1.2
    ├── mocha-lcov-reporter@1.2.0
    ├─┬ mongodb@2.2.16
    │ ├─┬ mongodb-core@2.1.2
    │ │ ├── bson@1.0.4
    │ │ └─┬ require_optional@1.0.0
    │ │   └── resolve-from@2.0.0
    │ └─┬ readable-stream@2.1.5
    │   ├── buffer-shims@1.0.0
    │   ├── core-util-is@1.0.2
    │   ├── process-nextick-args@1.0.7
    │   └── string_decoder@0.10.31
    ├─┬ morgan@1.7.0
    │ ├── basic-auth@1.0.4
    │ └─┬ debug@2.2.0
    │   └── ms@0.7.1
    ├── mousetrap@1.6.0
    ├─┬ nconf@0.8.4
    │ ├── ini@1.3.4
    │ ├── secure-keys@1.0.0
    │ └─┬ yargs@3.32.0
    │   ├── camelcase@2.1.1
    │   ├─┬ cliui@3.2.0
    │   │ └── wrap-ansi@2.1.0
    │   ├── decamelize@1.2.0
    │   ├─┬ os-locale@1.4.0
    │   │ └─┬ lcid@1.0.0
    │   │   └── invert-kv@1.0.0
    │   ├── window-size@0.1.4
    │   └── y18n@3.2.1
    ├─┬ nodebb-plugin-composer-default@4.3.4
    │ └── screenfull@3.0.0
    ├─┬ nodebb-plugin-dbsearch@1.0.4
    │ └─┬ redisearch@0.0.6
    │   ├─┬ natural@0.2.1
    │   │ ├── apparatus@0.0.9
    │   │ └── sylvester@0.0.21
    │   └── redis@0.12.1
    ├─┬ nodebb-plugin-emoji-extended@1.1.1
    │ └── q@1.4.1
    ├─┬ nodebb-plugin-emoji-one@1.1.5
    │ ├── adm-zip@0.4.7
    │ └── wrench@1.5.9
    ├─┬ nodebb-plugin-markdown@7.0.1
    │ └─┬ markdown-it@6.1.1
    │   ├── entities@1.1.1
    │   ├── linkify-it@1.2.4
    │   ├── mdurl@1.0.1
    │   └── uc.micro@1.0.3
    ├── nodebb-plugin-mentions@1.1.3
    ├── nodebb-plugin-soundpack-default@0.1.6
    ├─┬ nodebb-plugin-spam-be-gone@0.4.10
    │ ├── akismet@1.0.0
    │ ├── project-honeypot@0.0.0
    │ └── simple-recaptcha-new@1.1.1
    ├── nodebb-rewards-essentials@0.0.9
    ├── nodebb-theme-lavender@3.0.15
    ├── nodebb-theme-persona@4.1.93
    ├── nodebb-theme-vanilla@5.1.57
    ├── nodebb-widget-essentials@2.0.13
    ├─┬ nodemailer@2.6.4
    │ ├─┬ libmime@2.1.0
    │ │ ├── iconv-lite@0.4.13
    │ │ ├── libbase64@0.1.0
    │ │ └── libqp@1.1.0
    │ ├─┬ mailcomposer@3.12.0
    │ │ └─┬ buildmail@3.10.0
    │ │   └── addressparser@1.0.1
    │ ├── nodemailer-direct-transport@3.3.2
    │ ├─┬ nodemailer-shared@1.1.0
    │ │ └── nodemailer-fetch@1.6.0
    │ ├── nodemailer-smtp-pool@2.8.2
    │ └─┬ socks@1.1.9
    │   └── smart-buffer@1.0.13
    ├── nodemailer-sendmail-transport@1.0.0
    ├─┬ nodemailer-smtp-transport@2.7.2
    │ ├── nodemailer-wellknown@0.1.10
    │ └─┬ smtp-connection@2.12.0
    │   └─┬ httpntlm@1.6.1
    │     ├── httpreq@0.4.22
    │     └── underscore@1.7.0
    ├─┬ passport@0.3.2
    │ ├── passport-strategy@1.0.0
    │ └── pause@0.0.1
    ├── passport-local@1.0.0
    ├─┬ postcss@5.2.11
    │ └── js-base64@2.1.9
    ├─┬ postcss-clean@1.0.2
    │ ├─┬ clean-css@3.4.24
    │ │ ├── commander@2.8.1
    │ │ └── source-map@0.4.4
    │ └── postcss@5.0.21
    ├── promise-polyfill@6.0.2
    ├─┬ prompt@1.0.0
    │ ├── pkginfo@0.4.0
    │ ├─┬ read@1.0.7
    │ │ └── mute-stream@0.0.7
    │ ├── revalidator@0.1.8
    │ ├─┬ utile@0.3.0
    │ │ ├── async@0.9.2
    │ │ ├── deep-equal@0.2.2
    │ │ ├── i@0.3.5
    │ │ └── ncp@1.0.1
    │ └─┬ winston@2.1.1
    │   ├── async@1.0.0
    │   ├── colors@1.0.3
    │   └── pkginfo@0.3.1
    ├─┬ redis@2.6.5
    │ ├── double-ended-queue@2.1.0-0
    │ ├── redis-commands@1.3.1
    │ └── redis-parser@2.4.0
    ├─┬ request@2.79.0
    │ ├── aws-sign2@0.6.0
    │ ├── aws4@1.5.0
    │ ├── caseless@0.11.0
    │ ├─┬ combined-stream@1.0.5
    │ │ └── delayed-stream@1.0.0
    │ ├── extend@3.0.0
    │ ├── forever-agent@0.6.1
    │ ├─┬ form-data@2.1.2
    │ │ └── asynckit@0.4.0
    │ ├─┬ har-validator@2.0.6
    │ │ └─┬ pinkie-promise@2.0.1
    │ │   └── pinkie@2.0.4
    │ ├─┬ hawk@3.1.3
    │ │ ├── boom@2.10.1
    │ │ ├── cryptiles@2.0.5
    │ │ ├── hoek@2.16.3
    │ │ └── sntp@1.0.9
    │ ├─┬ http-signature@1.1.1
    │ │ ├── assert-plus@0.2.0
    │ │ ├─┬ jsprim@1.3.1
    │ │ │ ├── extsprintf@1.0.2
    │ │ │ ├── json-schema@0.2.3
    │ │ │ └── verror@1.3.6
    │ │ └─┬ sshpk@1.10.2
    │ │   ├── asn1@0.2.3
    │ │   ├── assert-plus@1.0.0
    │ │   ├── bcrypt-pbkdf@1.0.0
    │ │   ├─┬ dashdash@1.14.1
    │ │   │ └── assert-plus@1.0.0
    │ │   ├── ecc-jsbn@0.1.1
    │ │   ├─┬ getpass@0.1.6
    │ │   │ └── assert-plus@1.0.0
    │ │   ├── jodid25519@1.0.2
    │ │   ├── jsbn@0.1.0
    │ │   └── tweetnacl@0.14.5
    │ ├── is-typedarray@1.0.0
    │ ├── isstream@0.1.2
    │ ├── json-stringify-safe@5.0.1
    │ ├── mime-types@2.1.14
    │ ├── oauth-sign@0.8.2
    │ ├── qs@6.3.0
    │ ├── stringstream@0.0.5
    │ ├─┬ tough-cookie@2.3.2
    │ │ └── punycode@1.4.1
    │ ├── tunnel-agent@0.4.3
    │ └── uuid@3.0.1
    ├── rimraf@2.5.4
    ├─┬ rss@1.2.2
    │ ├─┬ mime-types@2.1.13
    │ │ └── mime-db@1.25.0
    │ └── xml@1.0.1
    ├─┬ sanitize-html@1.14.1
    │ ├─┬ htmlparser2@3.9.2
    │ │ ├── domelementtype@1.3.0
    │ │ ├── domhandler@2.3.0
    │ │ └─┬ domutils@1.5.1
    │ │   └─┬ dom-serializer@0.1.0
    │ │     └── domelementtype@1.1.3
    │ ├── regexp-quote@0.0.0
    │ └── xtend@4.0.1
    ├── semver@5.3.0
    ├─┬ serve-favicon@2.3.2
    │ └── ms@0.7.2
    ├─┬ sitemap@1.9.0
    │ └── url-join@1.1.0
    ├─┬ socket.io@1.7.1
    │ ├── debug@2.3.3
    │ ├─┬ engine.io@1.8.1
    │ │ ├── base64id@0.1.0
    │ │ ├── debug@2.3.3
    │ │ ├─┬ engine.io-parser@1.3.1
    │ │ │ ├── after@0.8.1
    │ │ │ ├── arraybuffer.slice@0.0.6
    │ │ │ ├── base64-arraybuffer@0.1.5
    │ │ │ ├── blob@0.0.4
    │ │ │ ├─┬ has-binary@0.1.6
    │ │ │ │ └── isarray@0.0.1
    │ │ │ └── wtf-8@1.0.0
    │ │ └─┬ ws@1.1.1
    │ │   ├── options@0.0.6
    │ │   └── ultron@1.0.2
    │ ├─┬ has-binary@0.1.7
    │ │ └── isarray@0.0.1
    │ ├─┬ socket.io-adapter@0.5.0
    │ │ └── debug@2.3.3
    │ └─┬ socket.io-parser@2.3.1
    │   ├── component-emitter@1.1.2
    │   ├─┬ debug@2.2.0
    │   │ └── ms@0.7.1
    │   └── isarray@0.0.1
    ├─┬ socket.io-client@1.7.1
    │ ├── backo2@1.0.2
    │ ├── component-bind@1.0.0
    │ ├── component-emitter@1.2.1
    │ ├── debug@2.3.3
    │ ├─┬ engine.io-client@1.8.1
    │ │ ├── component-emitter@1.2.1
    │ │ ├── component-inherit@0.0.3
    │ │ ├── debug@2.3.3
    │ │ ├── has-cors@1.1.0
    │ │ ├── parsejson@0.0.3
    │ │ ├── parseqs@0.0.5
    │ │ └── yeast@0.1.2
    │ ├── indexof@0.0.1
    │ ├── object-component@0.0.3
    │ ├─┬ parseuri@0.0.5
    │ │ └─┬ better-assert@1.0.2
    │ │   └── callsite@1.0.0
    │ └── to-array@0.1.4
    ├─┬ socket.io-redis@2.0.0
    │ ├── async@2.1.4
    │ ├── debug@2.3.3
    │ ├─┬ msgpack-js@0.3.0
    │ │ └─┬ bops@0.0.7
    │ │   ├── base64-js@0.0.2
    │ │   └── to-utf8@0.0.1
    │ ├── redis@2.6.3
    │ └── uid2@0.0.3
    ├── socketio-wildcard@0.3.0
    ├── string@3.3.3
    ├── templates.js@0.3.5
    ├── toobusy-js@0.5.1
    ├─┬ uglify-js@2.7.5
    │ ├── async@0.2.10
    │ ├── uglify-to-browserify@1.0.2
    │ └─┬ yargs@3.10.0
    │   ├── camelcase@1.2.1
    │   ├─┬ cliui@2.1.0
    │   │ ├─┬ center-align@0.1.3
    │   │ │ ├─┬ align-text@0.1.4
    │   │ │ │ ├─┬ kind-of@3.1.0
    │   │ │ │ │ └── is-buffer@1.1.4
    │   │ │ │ ├── longest@1.0.1
    │   │ │ │ └── repeat-string@1.6.1
    │   │ │ └── lazy-cache@1.0.4
    │   │ ├── right-align@0.1.3
    │   │ └── wordwrap@0.0.2
    │   └── window-size@0.1.0
    ├── underscore@1.8.3
    ├── underscore.deep@0.5.1
    ├── validator@6.2.1
    ├─┬ winston@2.3.1
    │ ├── async@1.0.0
    │ ├── colors@1.0.3
    │ ├── cycle@1.0.3
    │ ├── eyes@0.1.8
    │ └── stack-trace@0.0.9
    ├── xmlhttprequest@1.8.0
    ├── xmlhttprequest-ssl@1.5.3
    └── xregexp@3.1.1
    

  • bump bump


  • @julian, please excuse the ping but do you have an idea about why the upgrade is causing this?

  • GNU/Linux Admin

    The common causes for a session mismatch error are usually one of the following:

    1. Mis-configured URL parameter in your config.json file

    If you have a misconfigured url value in your config.json file, the cookie may be saved incorrectly (or not at all), causing a session mismatch error. Please ensure that the link you are accessing your site with and the url defined match.

    2. Improper/malformed cookieDomain set in ACP

    Sometimes admins set this value without realising that they probably don't need to set it at all. The default is perfectly fine. This is what the config looks like:

    Cookie Domain setting

    If this is set, you'll want to revert the setting by editing your database directly:

    Redis: hdel config cookieDomain

    Perhaps those may help?


  • @julian Unfortunately, no luck. I opened up 4567 to see if it was my use of HTTP2 causing some problems, and the error persists and is a bit more descriptive:

    http://domain.com:4567/login?error=csrf-invalid

    Here is my nginx conf:

    server {
        listen 80;
    
        server_name www.domain.com domain.com;
        return 301 https://domain.com$request_uri;    
    }
    
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
    
        server_name www.domain.com;
        return 301 https://domain.com$request_uri;
        ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
    }
    
    upstream io_nodes {
        ip_hash;
        server 127.0.0.1:4567;
        server 127.0.0.1:4568;
    }
    
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
    
        ssl on;
        ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:50m;
        #add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
        add_header X-Frame-Options DENY;
        add_header X-Content-Type-Options nosniff;
        ssl_stapling on; # Requires nginx >= 1.3.7
        ssl_stapling_verify on; # Requires nginx => 1.3.7
        
        ssl_session_timeout 1d;
        ssl_trusted_certificate /etc/letsencrypt/live/domain.com/chain.pem;
        resolver 8.8.4.4 8.8.8.8 valid=300s;
        resolver_timeout 5s; 
        ssl_dhparam /etc/nginx/conf/dhparam.pem;
    
        server_name domain.com;    
    	
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
    
        proxy_redirect off;
    
        # Socket.IO Support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        
        gzip            on;
        gzip_min_length 1000;
        gzip_proxied    off;
        gzip_types      text/plain application/xml application/x-javascript text/css application/json;
        
        location @nodebb {
    	      proxy_pass http://io_nodes;
        }
        
        location ~ ^/(images|language|sounds|templates|uploads|vendor|src\/modules|nodebb\.min\.js|stylesheet\.css|admin\.css) {
            root /home/ubuntu/NodeBB/public/;
            try_files $uri $uri/ @nodebb;
    	access_log off;
    	expires 1d;
        }
            
        location / {
            proxy_pass http://io_nodes;
        }
    }
    
  • GNU/Linux Admin

    Ensure that a csrf token is being sent during the login process (you can investigate the login request in your web browser).

    Also, there should be no need to run NodeBB as root.


  • @julian Got it!

    root /home/ubuntu/NodeBB/public/; mismatched. I had an older install there. Updating that directory worked.

    And you're right. The nodebb.service in systemd downgrades to the nodebb user.

  • GNU/Linux Admin

    Glad to hear it is resolved 🙂

Suggested Topics

  • 1
  • 13
  • 6
  • 3
  • 3
| |