Make planka usable without Docker. #87

Closed
opened 2026-02-04 17:05:03 +03:00 by OVERLORD · 6 comments
Owner

Originally created by @skid9000 on GitHub (Mar 24, 2021).

Hello,

As a system administrator, Docker is pure nightmare, i won't dig into details (because that isn't what i'm here for) but i wish planka was usable without having to rely on docker.

I'm trying to make my own documentation on my side but considering how the Dockerfile is made (with copies of some folders for each build), it isn’t reasonable to maintain this doc properly (especially in a production environnement, when it well be released).

So far i made sure to setup everything (based on your Dockerfile) on my debian test machine, install deps, init the db, but trying starting the node app gave me this error.

error: A hook (`userconfig`) failed to load! 
error: Failed to lift app: Error: Attempted to `require('/srv/planka-app/config/custom.js')`, but an error occurred: 
-- 
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined 
   at validateString (internal/validators.js:120:11) 
   at Object.join (path.js:1039:7) 
   at Object.<anonymous> (/srv/planka-app/config/custom.js:23:25) 
   at Module._compile (internal/modules/cjs/loader.js:999:30) 
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10) 
   at Module.load (internal/modules/cjs/loader.js:863:32) 
   at Function.Module._load (internal/modules/cjs/loader.js:708:14) 
   at Module.require (internal/modules/cjs/loader.js:887:19) 
   at require (internal/modules/cjs/helpers.js:74:18) 
   at /srv/planka-app/node_modules/include-all/lib/help-include-all-sync.js:293:33 
   at Array.forEach (<anonymous>) 
   at _recursivelyIncludeAll (/srv/planka-app/node_modules/include-all/lib/help-include-all-sync.js:178:11) 
   at includeAll (/srv/planka-app/node_modules/include-all/lib/help-include-all-sync.js:317:5) 
   at helpBuildDictionary (/srv/planka-app/node_modules/include-all/lib/help-build-dictionary.js:46:13) 
   at Function.module.exports.aggregate (/srv/planka-app/node_modules/include-all/index.js:101:10) 
   at loadOtherConfigFiles (/srv/planka-app/node_modules/sails/lib/hooks/moduleloader/index.js:162:22) 
-- 
   at /srv/planka-app/node_modules/include-all/lib/help-include-all-sync.js:298:25 
   at Array.forEach (<anonymous>) 
   at _recursivelyIncludeAll (/srv/planka-app/node_modules/include-all/lib/help-include-all-sync.js:178:11) 
   at includeAll (/srv/planka-app/node_modules/include-all/lib/help-include-all-sync.js:317:5) 
   at helpBuildDictionary (/srv/planka-app/node_modules/include-all/lib/help-build-dictionary.js:46:13) 
   at Function.module.exports.aggregate (/srv/planka-app/node_modules/include-all/index.js:101:10) 
   at loadOtherConfigFiles (/srv/planka-app/node_modules/sails/lib/hooks/moduleloader/index.js:162:22) 
   at runTask (/srv/planka-app/node_modules/async/dist/async.js:1621:13) 
   at /srv/planka-app/node_modules/async/dist/async.js:1559:13 
   at processQueue (/srv/planka-app/node_modules/async/dist/async.js:1569:13) 
   at Object.auto (/srv/planka-app/node_modules/async/dist/async.js:1555:5) 
   at Hook.loadUserConfig (/srv/planka-app/node_modules/sails/lib/hooks/moduleloader/index.js:160:13) 
   at Hook.wrapper [as loadUserConfig] (/srv/planka-app/node_modules/@sailshq/lodash/lib/index.js:3282:19) 
   at Hook.loadModules (/srv/planka-app/node_modules/sails/lib/hooks/userconfig/index.js:45:21) 
   at Hook.wrapper [as loadModules] (/srv/planka-app/node_modules/@sailshq/lodash/lib/index.js:3282:19) 
   at modules (/srv/planka-app/node_modules/sails/lib/hooks/index.js:86:25) 
error: More details (raw): TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received und
efined 
   at validateString (internal/validators.js:120:11) 
   at Object.join (path.js:1039:7) 
   at Object.<anonymous> (/srv/planka-app/config/custom.js:23:25) 
   at Module._compile (internal/modules/cjs/loader.js:999:30) 
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10) 
   at Module.load (internal/modules/cjs/loader.js:863:32) 
   at Function.Module._load (internal/modules/cjs/loader.js:708:14) 
   at Module.require (internal/modules/cjs/loader.js:887:19) 
   at require (internal/modules/cjs/helpers.js:74:18) 
   at /srv/planka-app/node_modules/include-all/lib/help-include-all-sync.js:293:33 
   at Array.forEach (<anonymous>) 
   at _recursivelyIncludeAll (/srv/planka-app/node_modules/include-all/lib/help-include-all-sync.js:178:11) 
   at includeAll (/srv/planka-app/node_modules/include-all/lib/help-include-all-sync.js:317:5) 
   at helpBuildDictionary (/srv/planka-app/node_modules/include-all/lib/help-build-dictionary.js:46:13) 
   at Function.module.exports.aggregate (/srv/planka-app/node_modules/include-all/index.js:101:10) 
   at loadOtherConfigFiles (/srv/planka-app/node_modules/sails/lib/hooks/moduleloader/index.js:162:22)

I did setup the BASE_URL env to http://localhost:9876 and SECRET_KEY + DATABASE_URL to the expected values.

Please consider this issue as not everybody wants to install a docker environnement just for Planka.
I would be happy to make a PR with a setup documentation for some distros (starting with Debian).

Originally created by @skid9000 on GitHub (Mar 24, 2021). Hello, As a system administrator, Docker is pure nightmare, i won't dig into details (because that isn't what i'm here for) but i wish planka was usable without having to rely on docker. I'm trying to make my own documentation on my side but considering how the Dockerfile is made (with copies of some folders for each build), it isn’t reasonable to maintain this doc properly (especially in a production environnement, when it well be released). So far i made sure to setup everything (based on your Dockerfile) on my debian test machine, install deps, init the db, but trying starting the node app gave me this error. ``` error: A hook (`userconfig`) failed to load! error: Failed to lift app: Error: Attempted to `require('/srv/planka-app/config/custom.js')`, but an error occurred: -- TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined    at validateString (internal/validators.js:120:11)    at Object.join (path.js:1039:7)    at Object.<anonymous> (/srv/planka-app/config/custom.js:23:25)    at Module._compile (internal/modules/cjs/loader.js:999:30)    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)    at Module.load (internal/modules/cjs/loader.js:863:32)    at Function.Module._load (internal/modules/cjs/loader.js:708:14)    at Module.require (internal/modules/cjs/loader.js:887:19)    at require (internal/modules/cjs/helpers.js:74:18)    at /srv/planka-app/node_modules/include-all/lib/help-include-all-sync.js:293:33    at Array.forEach (<anonymous>)    at _recursivelyIncludeAll (/srv/planka-app/node_modules/include-all/lib/help-include-all-sync.js:178:11)    at includeAll (/srv/planka-app/node_modules/include-all/lib/help-include-all-sync.js:317:5)    at helpBuildDictionary (/srv/planka-app/node_modules/include-all/lib/help-build-dictionary.js:46:13)    at Function.module.exports.aggregate (/srv/planka-app/node_modules/include-all/index.js:101:10)    at loadOtherConfigFiles (/srv/planka-app/node_modules/sails/lib/hooks/moduleloader/index.js:162:22) --    at /srv/planka-app/node_modules/include-all/lib/help-include-all-sync.js:298:25    at Array.forEach (<anonymous>)    at _recursivelyIncludeAll (/srv/planka-app/node_modules/include-all/lib/help-include-all-sync.js:178:11)    at includeAll (/srv/planka-app/node_modules/include-all/lib/help-include-all-sync.js:317:5)    at helpBuildDictionary (/srv/planka-app/node_modules/include-all/lib/help-build-dictionary.js:46:13)    at Function.module.exports.aggregate (/srv/planka-app/node_modules/include-all/index.js:101:10)    at loadOtherConfigFiles (/srv/planka-app/node_modules/sails/lib/hooks/moduleloader/index.js:162:22)    at runTask (/srv/planka-app/node_modules/async/dist/async.js:1621:13)    at /srv/planka-app/node_modules/async/dist/async.js:1559:13    at processQueue (/srv/planka-app/node_modules/async/dist/async.js:1569:13)    at Object.auto (/srv/planka-app/node_modules/async/dist/async.js:1555:5)    at Hook.loadUserConfig (/srv/planka-app/node_modules/sails/lib/hooks/moduleloader/index.js:160:13)    at Hook.wrapper [as loadUserConfig] (/srv/planka-app/node_modules/@sailshq/lodash/lib/index.js:3282:19)    at Hook.loadModules (/srv/planka-app/node_modules/sails/lib/hooks/userconfig/index.js:45:21)    at Hook.wrapper [as loadModules] (/srv/planka-app/node_modules/@sailshq/lodash/lib/index.js:3282:19)    at modules (/srv/planka-app/node_modules/sails/lib/hooks/index.js:86:25) error: More details (raw): TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received und efined    at validateString (internal/validators.js:120:11)    at Object.join (path.js:1039:7)    at Object.<anonymous> (/srv/planka-app/config/custom.js:23:25)    at Module._compile (internal/modules/cjs/loader.js:999:30)    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)    at Module.load (internal/modules/cjs/loader.js:863:32)    at Function.Module._load (internal/modules/cjs/loader.js:708:14)    at Module.require (internal/modules/cjs/loader.js:887:19)    at require (internal/modules/cjs/helpers.js:74:18)    at /srv/planka-app/node_modules/include-all/lib/help-include-all-sync.js:293:33    at Array.forEach (<anonymous>)    at _recursivelyIncludeAll (/srv/planka-app/node_modules/include-all/lib/help-include-all-sync.js:178:11)    at includeAll (/srv/planka-app/node_modules/include-all/lib/help-include-all-sync.js:317:5)    at helpBuildDictionary (/srv/planka-app/node_modules/include-all/lib/help-build-dictionary.js:46:13)    at Function.module.exports.aggregate (/srv/planka-app/node_modules/include-all/index.js:101:10)    at loadOtherConfigFiles (/srv/planka-app/node_modules/sails/lib/hooks/moduleloader/index.js:162:22) ``` I did setup the BASE_URL env to http://localhost:9876 and SECRET_KEY + DATABASE_URL to the expected values. Please consider this issue as not everybody wants to install a docker environnement just for Planka. I would be happy to make a PR with a setup documentation for some distros (starting with Debian).
Author
Owner

@meltyshev commented on GitHub (Mar 24, 2021):

Hi! We also use it without Docker. It seems like the server\sails.rc file is missed or doesn't load properly, so you receive an error that sails.config.paths.public is undefined.

@meltyshev commented on GitHub (Mar 24, 2021): Hi! We also use it without Docker. It seems like the `server\sails.rc` file is missed or doesn't load properly, so you receive an error that `sails.config.paths.public` is undefined.
Author
Owner

@skid9000 commented on GitHub (Mar 24, 2021):

The file do exist.
As per a friend recommendation i copied it to the home folder (for the planka user).
Now it does start, tho for some reason, it dosen't take the BASE_URL env for the listening port.

image

I saw that there was a .env file, i tried editing it, but same result 🤔 (i also tried to copy it to the working dir).

For context, i tried replicating what your Dockerfile does, so /srv/planka-app as /app, i don't know if there is a better way to do this.

@skid9000 commented on GitHub (Mar 24, 2021): The file do exist. As per a friend recommendation i copied it to the home folder (for the planka user). Now it does start, tho for some reason, it dosen't take the BASE_URL env for the listening port. ![image](https://user-images.githubusercontent.com/26208369/112358425-a1c41300-8cd0-11eb-8d7f-3d4bc909aff1.png) I saw that there was a .env file, i tried editing it, but same result 🤔 (i also tried to copy it to the working dir). For context, i tried replicating what your Dockerfile does, so /srv/planka-app as /app, i don't know if there is a better way to do this.
Author
Owner

@meltyshev commented on GitHub (Mar 24, 2021):

BASE_URL is only needed to prepend it to the static file URL. Port can be configured by the --port option when lifting or in the config files.

@meltyshev commented on GitHub (Mar 24, 2021): BASE_URL is only needed to prepend it to the static file URL. Port can be configured by the [--port option when lifting](https://sailsjs.com/documentation/reference/command-line-interface/sails-lift) or in the [config files](https://sailsjs.com/documentation/reference/configuration/sails-config).
Author
Owner

@skid9000 commented on GitHub (Mar 24, 2021):

Ok it works, thanks :)

@skid9000 commented on GitHub (Mar 24, 2021): Ok it works, thanks :)
Author
Owner

@Jieiku commented on GitHub (Nov 30, 2021):

I got it up and running on Ubuntu 20.04 but I hit a snag: https://github.com/plankanban/planka/issues/184

@Jieiku commented on GitHub (Nov 30, 2021): I got it up and running on Ubuntu 20.04 but I hit a snag: https://github.com/plankanban/planka/issues/184
Author
Owner

@skid9000 commented on GitHub (May 2, 2024):

Closing this issue as there is now an official documentation to install without docker : https://docs.planka.cloud/docs/installation/manual_installation/debian_ubuntu/

@skid9000 commented on GitHub (May 2, 2024): Closing this issue as there is now an official documentation to install without docker : https://docs.planka.cloud/docs/installation/manual_installation/debian_ubuntu/
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/planka#87