Skip to content

jbl2024/latelier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

latelier

FOSSA Status Build Status Codacy Badge

A project management tool.

Kanban

Features

  • Kanban task board with realtime updates
  • Timeline view of tasks and projects
  • BPMN diagrams
  • Business model canvas sheet for project
  • Projects grouped by organization
  • Project weather like status
  • Meeting reports
  • Permissions per organization & per project

Demonstration

Demo server: https://latelier-demo.services2.jbl2024.com

Warning: do not store sensitive data, use at your own risk. Data is reset periodically.

Available credentials:

  • username: user1@localhost / password: user1

Installation

Docker

Since v2.9.0, Docker images are available on docker hub: https://hub.docker.com/r/jbl2024/latelier .

A docker-compose.yml is also provided.

Meteor

This application is built with Meteor framework.

See https://www.meteor.com/install for installation instructions.

Requirements

The following external dependencies are required:

Component Usage Reference
GraphicsMagick Generate thumbnails http://www.graphicsmagick.org/
Pandoc Export content to libreoffice & word formats https://pandoc.org/

Configuration

Copy settings-development.json.sample.json to settings-development.json and update values matching your configuration

Settings:

Key Type Default value Description
generateFixtures boolean false If true, users fixtures are generated at startup
disableAccountCreation boolean false If true account creation is forbidden
attachmentsPath string /tmp/ Attachment storage path on fs
avatarsPath string attachmentsPath Avatar storage path on fs
email object Email settings
roles.admin [string] [] Users matching emails will have the admin role
public.seo.titlePrefix string l'atelier window.title prefix
public.sso object {} See below
public.emailVerificationNeeded boolean false If false, no verification email is sent
public.disableAttachments boolean false If true, attachments are disabled
public.tracking object {} See below
public.tracking.matomo object {} See https://github.com/AmazingDreams/vue-matomo#usage
public.tracking.matomo.enabled boolean false If true, page and search keyword tracking are enabled
uploadTransport string ddp http or ddp
notificationsPerUser number 50 max number of notifications stored per user
users object {} See below
digestsRetention number 60 Number of days to keep in digest
storage object {} Storage. If empty, fs is used
auth object {} See below
coedition object {} See below

email:

Key Type Default value Description
from string noreply@localhost From email when sending mail
prefix string Subject prefix

users:

Key Type Default value Description
search string ("admin", "all") all Who can search existing users
invite string ("admin", "all") all Who can invite people

sso:

Key Type Default value Description
enabled boolean false If true, sso is enabled
email string null email header to match user
logoutUrl string null Logout url

storage:

Key Type Default value Description
type string ("s3") Storage type
migrateFromFS boolean false If true, files are moved from FS to storage system at startup (make sure you backup your data before!)
s3 object {} s3 options

s3

Key Type Default value Description
endpoint string Storage url (optional)
key string key
secret string secret
region string region
bucket string bucket

auth:

Key Type Default value Description
oauth2 object {} See below

oauth2:

Key Type Default value Description
enabled boolean false If true, oauth2 is enabled
title string OAuth2 Button title
idMap string id map
usernameMap string preferred_username
fullnameMap string given_name
emailMap string email
clientId string
secret string "
serverUrl string /auth
authEndpoint string /realms//protocol/openid-connect/auth
userInfoEndpoint string /realms//protocol/openid-connect/userinfo
tokenEndpoint string /realms//protocol/openid-connect/token
logoutUrl string /realms/l/protocol/openid-connect/logout
logoutRedirectParameter string redirect_uri
idTokenWhitelistFields string []

Note: tested only with keycloak.

coedition:

Key Type Default value Description
steps integer 500 Number of steps to keep for coedit collab feature
daysToKeep integer 3 previous edition steps are removed after daysToKeep

Example:

{
  "generateFixtures": false,
  "disableAccountCreation": false,
  "attachmentsPath": "/tmp/attachments/",
  "notificationsPerUser": 50,
  "users": {
    "search": "admin",
    "invite": "admin"
  },
  "email": {
    "from": "noreply@localhost"
  },
  "roles": {
    "admin": ["foo@bar.com"]
  },
  "public": {
    "emailVerificationNeeded": false,
    "seo": {
      "titlePrefix": "l'atelier"
    },
    "sso": {
      "enabled": true,
      "email": "header-email"
    },
    "uploadTransport": "ddp"
  }
}

Fixtures (dev only feature)

If generateFixtures parameter is set to true, 50 users are created at startup (if user count is <= 2). Default password for generated users is password.

Install dependencies

meteor npm install

Start

npm start

Docker development environment

A Dockerfile and a docker-compose are provided to start a development environment.

$ docker-compose --file docker-compose.dev.yml up

will start in dev mode (autorestart, no production build):

When all containers are running, open another terminal to start meteor application:

$ docker-compose --file docker-compose.dev.yml exec app npm run start-dev

After a few minutes, the app will be available at http://localhost

Note: do not forget to create a settings-development.json file.

Screenshots

Dashboard

Dashboard

Planning (organization)

Planning (project)

BPMN

Weather

Canvas

Meetings calendar

Meeting detail

License

Apache License 2.0

FOSSA Status