You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Jonas Lochmann dd18b015f6
Update dependencies
1 month ago
other Initial commit 9 months ago
scripts Remove sign in with Google account 4 months ago
src Make mail code verification less strict 1 month ago
.gitignore Initial commit 9 months ago
.gitlab-ci.yml Initial commit 9 months ago
Dockerfile Initial commit 9 months ago
LICENSE Initial commit 9 months ago Add option to specify mail providers which are not supported 2 months ago
package-lock.json Update dependencies 1 month ago
package.json Update dependencies 1 month ago
tsconfig.json Initial commit 9 months ago
tslint.json Initial commit 9 months ago


This is the server for the connected mode in TimeLimit.


This application only supports running a single instance of it. When clustering, push messages do not work anymore between devices connected to different devices and the rate limiting is per instance.


Option 1: Use a prebuilt docker image
Option 2: Install Node.JS (see below for detailed usage)


npm start

This runs all pending migrations and starts the server.

npm run build

This “compiles” the application.

npm run lint:fix

This fixes the causes of lint warnings (where possible).

Configuration (environment variables)

    • this specifies the database to use
    • default value: sqlite://test.db (sqlite database in the source code directory)
    • supports mysql, postgresql and sqlite (sqlite in development builds only because it’s declared as dev dependency)
    • looks like postgres://
    • no extra setup needed
      • when starting the application, the database tables are created/ migrated
      • this only works for upgrading; if you intend to eventually downgrade, make a backup first (you should make backups in all cases before an upgrade)
  • PORT
    • the port at which the server should listen
    • should be set to production in production
    • when using development, then mails are not sent; instead they are written to a html file which is opened
    • key for validating purchases
    • purchases using google play don’t work without it
    • sender (for the from-field) for sent mails
    • a string which is added to the footer of the sent mails
    • default value: not defined
    • a password which allows to use some APIs
    • admin APIs are disabled when this is not set
    • list of domains, separated by comma
    • if the user tries to use such a mail service, then he will get the notification that this provider is not supported