Simple self-, project- and task management.
Run npm
to install necessary scripts (and lerna
).
npm install
If you have ./node_modules/.bin
in your $PATH
, you can run lerna
to install all packages in the monorepo.
Otherwise, you should install lerna
globally by doing npm install -g lerna
.
lerna bootstrap
Running the client
lerna run build-client && npm run start-web
Build the docker container
docker build -t todastic .
And run it as you're used to:
docker run -p 3000:3000 -d todastic
If you only want to start a mongodb and connect from your local dev environment to it:
docker run -e MONGO_INITDB_DATABASE=todastic -d --name todastic_mongo_standalone -p 127.0.0.1:27017:27017 mongo --smallfiles
Then start todastic with
DB_PORT=27017 DB_DATABASE=todastic SESSION_STORE=mongo npm run local
The tests are run via travis-ci.
Run the following command in order to see results:
docker-compose -p tests run -p 3000 --rm todastic npm run test
The browser based tests in travis-integration-test.sh
build and start
the application via docker-compose in a docker container. The test
itself is run on the baremetal machine (Getting a browser up and running
in a container is not trivial). It reuses a installed Chrome browser.
Codecept also supports other browsers.
In case you want to start the npm task test-browser
by hand, make
sure, the app is running on localhost:3000
and the user John
exists
with password Snow
.
You can automatically build frontend changes with npm run watch-web
.
From v0.2.2 on, todastic uses mongoDB for user and session management. Easiest configuration option is to follow the 12 factor pattern and configure todastic via the following environment variables:
DB_HOST
DB_USER
DB_PASSWORD
DB_PORT
DB_DATABASE
User and password can be left empty if your mongodb instance doesn't require authentication.
You can also set the environment variable PORT
to bind to a
different port than the standard 3000.
SESSION_STORE
is also configurable. Currently supported options are
in-memory
(default, not suited for production) and mongo
.
You can use the node script add-user.js
in the package konsol
to add
a user. For more convenient usage, it is included in the root
package.json
:
npm run add-user -- -u <username> -p <password> -l <language>
Note: You don't have to provide a password or language. There will be a password auto-generated and english will be uses as language. Known languages are english (en) and german (de).