Giter Club home page Giter Club logo

docker-leantime's Introduction

Leantime Logo

Leantime®

Leantime is an open source project management system for non-project manager.
We combine strategy, planning and executing while making it easy for everyone on the team to use. Building with ADHD, dyslexia and Autistism in mind.
It's an alternative to ClickUp, Monday, or Asana. As simple as Trello but as feature-rich as Jira.
https://leantime.io

Leantime%2Fleantime | Trendshift

License Badge Docker Hub Badge Github Downloads Discord Badge Crowdin GitHub Sponsors

alt text



🚀 Features*

Task Management Project Planning Information/Knowledge Management Administration
Task management via
kanban boards, gantt, table, list and calendar views
Project Dashboards, reports & status updates Wikis / Docs Easy installation
Unlimited subtasks and dependencies Goal & metrics tracking Idea Boards Multiple user roles and per project permissions
Milestone management Lean & Business Model Canvas Retrospectives Two factor authentication
Sprint Management SWOT Analysis canvas File Storage via S3 or local filesystem LDAP, OIDC integration
Timetracking & timesheets Risk Analysis Screen & webcam recording Extendable via plugins and API
... and more Comments/discussions on everything Integrates with Slack, Mattermost, Discord
... and more Available in over 20 languages
*yes, all of these features are included in the OSS version


📸 Screenshots

alt text alt text alt text
alt text alt text alt text
alt text alt text alt text



❗System Requirements

  • PHP 8.1+
  • MySQL 5.7+
  • Apache or Nginx (IIS works with some modifications)
  • PHP Extensions:
    • mysql, mbstring, GD, exif, pcntl, bcmath, opcache, ldap

️⚡️ Installation (Production)

There are two main ways to install LeanTime for production. The first of which is to install all needed pieces of the system locally. The second is to use the officially supported Docker image.

Local Production Installation

  • Download latest release package (file is called: Leantime-vx.x.x.zip) from the release page
  • Create an empty MySQL database
  • Upload the entire directory to your server
  • Point your domain root to the public/ directory
  • Rename config/.env.sample to config/.env
  • Fill in your database credentials (username, password, host, dbname) in config/.env
  • Navigate to <yourdomain.com>/install
  • Follow instructions to install database and set up first user account
IIS Installation Notes

Whilst the steps above are applicable to Internet Information Services (IIS), there is an additional configuration change that may be required in IIS to ensure full functionality - you need to allow the PATCH method:

  • Open IIS
  • Expand the server and sites on the left and select the LeanTime site
  • Double click on Handler Mappings
  • Double click on the PHP handler mapping that is used by the site
  • Click Request Restrictions…
  • Click the Verbs tab
  • In the One of the following verbs text box, add ,PATCH - for example: GET,HEAD,POST,PATCH
  • Click OK
  • In the Executable (optional) text box, put a double quote character () at the start and at the end of the path to the php-cgi.exe file (this isn't needed if the path doesn't have a space in it)
  • Click OK
  • A popup will appear asking if you want to create a FastCGI application - click Yes

Note: You may need to repeat this when you upgrade PHP.

Production Installation via Docker

We maintain an official Docker image on dockerhub. To run the image enter your MySQL credentials and execute. You can pass in all the configuration variables from .env

docker run -d --restart unless-stopped -p 80:80 --network leantime-net \
-e LEAN_DB_HOST=mysql_leantime \
-e LEAN_DB_USER=admin \
-e LEAN_DB_PASSWORD=321.qwerty \
-e LEAN_DB_DATABASE=leantime \
-e [email protected] \
--name leantime leantime/leantime:latest

Unless you have a database defined somewhere else you should use our docker-compose file.

Once started you can go to <yourdomain.com>/install and run the installation script.

Important: If you are planning to use plugins you need to mount the plugin folder plugins:/var/www/html/app/Plugins and ensure the www-data user has access to it. Otherwise installation may fail or plugins will be removed after a restart

Docker Installation Notes

If you intend to place Leantime behind a reverse proxy (nginx, etc.) to handle custom domain name resolution and SSL offloading, you will need to set the following environment variable in docker

-e LEAN_APP_URL=https://yourdomain.com \
  • Update yourdomain.com to your custom domain name.

🤓 Installation (Development)

There are two ways to install a development setup of LeanTime. The first (but most technical) is to install all pieces of the system locally. The second (and preferred method) is to use a docker containerized development environment.

Local Development Installation

  • Clone repository to your local server
  • Create MySQL database
  • Run webpack builder via make build-dev
  • Point your local domain to the public/ directory
  • Rename config/.env.sample to config/.env
  • Fill in your database credentials (username, password, host, dbname) in config/.env
  • Navigate to <localdomain>/install
  • Follow instructions to install database and user account

Development Installation via Docker

For development, we use a dockerized development environment. You will need to have docker, docker compose, make, composer, git and npm installed.

  • Notes for Windows Environments:
    • Run all commands within the git bash terminal in order to utilize unix specific commands
    • If installing php from a zip file, make sure to configure php.ini It does not exist initially, so copy C:\php\php.ini-development to C:\php\php.ini. You will also need to edit php.ini in a text editor and enable all needed extensions for the build process. You can find these by running the make commands and looking for any extensions that error out as missing. You can enable them by searching php.ini for the extension that will look like: ;extension=gd and removing the semicolon.

In order to build the development docker image, in the root of this repository, run a primer with

make clean build

afterwards, run

make run-dev

this will start the development server on port 8090.

The dev environment provides a MySQL server, mail server, s3 server, and should be good to go for your needs out of the box. The configuration of the development environment is found in .dev/.env, and is already seeded with the appropriate values. You should probably not be modifying this unless you plan to work on a feature for a specific integration. the applications you get are as follows

Additionally, Xdebug is enabled, but you will have to modify your IDE key in the .dev/xdebug.ini file(or alternatively, on your IDE). You also need to have port 9003 temporarily open on your firewall so you can utilize it effectively. This is because connections from docker to the host will count as external inbound connections

🏗 Update

Manual

  • Make sure to take a backup of your database and files
  • Replace all files in your directory with the updated version
  • If there were any database changes, the system will redirect you to <yourdomain.com>/update

CLI

  • Run bin/leantime system:update

Docker

  • Before updating, make sure your mysql container was started using a mounted volume, otherwise your content will be deleted
  • Delete/Stop existing container
  • Pull the latest docker image and rebuild using your compose file

☁️ Not interested in hosting yourself? Let us do it for you

We offer managed hosting plans as well as a SaaS product so you can get all the benefits of Leantime without the hassle. Head to leantime.io for more information.

🤙 Need technical support?

We can help you set up Leantime in your environment and customize it to your needs. Our support plans are outlined on our website.

Contributing

We're excited you are interested in contributing to Leantime. We want to make sure you have a great experience contributing to Leantime and that the new features you build will make it into core.

Bugs

Find an issue on Github (or create a new one) add your name to it or comment that you will be working on it. Once fixed, create a Pull Request.

New Features in Core

If you have an idea about new features please reach out to us on Discord. This is where we coordinate feature development and discuss whether core is the right place to add your new features (Plugins is the alternative).

Translations

We use (Crowdin)https://crowdin.com/project/leantime to manage all of our translations. If you don't see a language please message us on Discord.

Community Support

⚖️ LICENSE Exceptions

Leantime is licensed under AGPLv3. This file forms part of the Leantime Software for which the following exception is added: Plugins within the /app/plugins directory which may contain plugins licensed under other licenses including our enterprise license.

docker-leantime's People

Contributors

antonanders avatar brian-n-millar avatar jjensen90 avatar jwynn6 avatar kosantosbik avatar kristof33 avatar lamping7 avatar marcelfolaron avatar mentallyinspired avatar mipmhannes avatar opichon avatar pascalbru avatar phulstaert avatar raman325 avatar rpavlik avatar simonmicro avatar tet3 avatar thehamstermuffin avatar therealgramdalf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-leantime's Issues

File uploads do not get sent to S3

Hi! I have configured Leantime to use s3 as a storage provider, but no files are being uploaded to the bucket. Leantime says that it uploaded the file successfully, but after a refresh of the page it lists there being no files.

Here's my .env

LEAN_PORT = '80'                           
LEAN_APP_URL = 'https://**********.com'  
LEAN_APP_DIR = ''             

LEAN_DEBUG = 0                                    

# Database - MySQL container
MYSQL_ROOT_PASSWORD = '*****************' 
MYSQL_DATABASE = 'leantime'    
MYSQL_USER = 'lean'                    
MYSQL_PASSWORD = '************'  

# Database - leantime container
LEAN_DB_HOST = 'leantime-db'               
LEAN_DB_USER = 'lean'                              
LEAN_DB_PASSWORD = ''************''
LEAN_DB_DATABASE = 'leantime'                   
LEAN_DB_PORT = '3306'                        

LEAN_SITENAME = 'Leantime'                        
LEAN_LANGUAGE = 'en-US'                         
LEAN_DEFAULT_TIMEZONE = 'America/Los_Angeles'        
LEAN_ENABLE_MENU_TYPE = false                      
LEAN_SESSION_PASSWORD = '*******************'
LEAN_SESSION_EXPIRATION = 172800           
LEAN_LOG_PATH = null                              

LEAN_LOGO_PATH = '/images/logo.svg'    
LEAN_PRINT_LOGO_URL = '/images/logo.jpg'         
LEAN_DEFAULT_THEME = 'default'                    
LEAN_PRIMARY_COLOR = '#1b75bb'                   
LEAN_SECONDARY_COLOR = '#6f03fc'                 

## Fileuploads

# Local File Uploads
LEAN_USER_FILE_PATH = 'userfiles/'                 # Local relative path to store uploaded files (if not using S3)
LEAN_DB_BACKUP_PATH = 'backupdb/'                  # Local relative path to store backup files, need permission to write

# S3 File Uploads
LEAN_USE_S3 = true                            
LEAN_S3_KEY = 'censored-key'   
LEAN_S3_SECRET = 'censored-secret'
LEAN_S3_BUCKET = 'censored-bucket-name'        
LEAN_S3_USE_PATH_STYLE_ENDPOINT = true
LEAN_S3_REGION = 'us-east-005'                
LEAN_S3_FOLDER_NAME = ''                        
LEAN_S3_END_POINT = 'https://s3.us-east-005.backblazeb2.com'

leantime behind nginx proxy manager

hello guys,

i was stumbling over leantime and installed it on my docker with the sugested docker-compose.yml.
It is very impressing imo.

but after i played a little with it, i would like to expose it to my collegues over the internet.
So, i created a net Proxy Host in my NginxProxyManager and pointed it at the interlal host, where leantime is installed.
But when i visited the site, it was displayed wrong. Like without CSS.

I have nothing in Advanced settings because i don't no what i should put in there.
This are my only settings, besides enabling SSL.
grafik

Could you please help me to enable leantime through nginxproxymanager?

DB_PORT for Docker

Hello,
I have different port for MySQL tried adding DB_PORT MYSQL_PORT nothing works, im not sure if i missed env or its not there.

I can't send notification emails

I'm running leantime in a docker swarm environment.

I set the environment variables as the documentation says, but I still can't send emails.

When I test the shipment, I receive the message in the container logs:

sendmail: can't connect to remote host (127.0.0.1): Connection refused

  LEAN_EMAIL_USE_SMTP: 'TRUE'
  LEAN_EMAIL_RETURN: '[email protected]'
  LEAN_EMAIL_SMTP_HOSTS: 'smtp.office365.com'
  LEAN_EMAIL_SMTP_USERNAME: '[email protected]'
  LEAN_EMAIL_SMTP_PASSWORD: $SMTP_PASSWORD
  LEAN_EMAIL_SMTP_AUTO_TLS: 'TRUE'
  LEAN_EMAIL_SMTP_SECURE: 'TLS'
  LEAN_EMAIL_SMTP_PORT: '25'

Maybe LEAN_EMAIL_SMTP_HOSTS variable is wrong? Does anyone have any idea what's going on? I didn't find much information out there

httpd entered FATAL state, too many start retries too quickly

hi there,

after installing the leantime 2.1.8 in the synology nas via docker, leantime is inaccessible randomly after each synology reboot or docker container restart and the browser showing error 502 when inaccessible. Reverse proxy has also been config to allow access via https address.

The log of the container showed below:

Config file already exists!
2022-04-29 11:58:18,058 CRIT Supervisor is running as root.  Privileges were not dropped because no user is specified in the config file.  If you intend to run as root, you can set user=root in the config file to avoid this message.
2022-04-29 11:58:18,063 INFO supervisord started with pid 7
2022-04-29 11:58:19,066 INFO spawned: 'httpd' with pid 9
2022-04-29 11:58:19,068 INFO spawned: 'php-fpm' with pid 10
[29-Apr-2022 11:58:19] NOTICE: fpm is running, pid 10
[29-Apr-2022 11:58:19] NOTICE: ready to handle connections
2022-04-29 11:58:19,121 INFO exited: httpd (exit status 0; not expected)
2022-04-29 11:58:20,125 INFO spawned: 'httpd' with pid 13
2022-04-29 11:58:20,125 INFO success: php-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-04-29 11:58:20,180 INFO exited: httpd (exit status 0; not expected)
2022-04-29 11:58:22,185 INFO spawned: 'httpd' with pid 14
2022-04-29 11:58:22,239 INFO exited: httpd (exit status 0; not expected)
2022-04-29 11:58:25,246 INFO spawned: 'httpd' with pid 15
2022-04-29 11:58:25,301 INFO exited: httpd (exit status 0; not expected)
2022-04-29 11:58:26,302 INFO gave up: httpd entered FATAL state, too many start retries too quickly

Looks like the issue is related to httpd httpd entered FATAL state, too many start retries too quickly.
I have tried to put the startsecs = 0 in supervisord.conf file under [program:httpd].
However looks like it is still the same, after each reboot the nas or restart the container, leantime is not accessible due to the same issue.

The env added are as below:

env value
LEAN_DB_DATABASE leantime
LEAN_DB_HOST 192.168.x.x:xxxx
LEAN_APP_URL https://xxxxxx
LEAN_DB_PASSWORD xxxxxx
LEAN_DB_USER leantime

[comment] Docker hub image on Raspberry Pi 4

This doesn't work out of the box on a Raspberry Pi 4. I'm going to note some things I did to get this to work for others that may run into problems. Now I can test it out with my team. Thanks for the project.

  1. There isn't a mysql container for arm. So, I installed mariadb on the host OS (Raspbian Buster). Here is a decent guide: here
  2. The entrypoint (start.sh) for the image on docker hub would crash. I had to clone the repo and build the image locally. I'm guessing things (the extensions) are not compiled for arm.
  3. Now you need to fuss with getting access to the database from inside the container. When a user for the database is created, don't use @'localhost'. Use @'%' or replace % with the subdomain/IP of your docker container. If you failed to do this, you'll need to fix it using the GRANT command. See: here.
  4. Make sure the mariadb is configured to setup the TCP port, by commenting out the bind-address in the configs. #bind-address=127.0.0.1, For me this was found in the file /etc/mysql/mariadb.conf.d/50-server.cnf, then restart mariadb sudo systemctl restart mariadb.service if you had to change this.
  5. Finally, we have a slightly modified run command. I added the --add-host=docker:xxx.xxx.xxx.xxx option and removed the --network, making the -e DB_HOST=docker. Basically I kept a default bridged network with the host, but this allows the container to resolve the IP of your host. There are probably many ways to resolve this problem.

LEAN_APP_URL unclear in the sample.env file

I'm running Leantime behind a reverse proxy that's using SSL.

I ran into an issue where the CSS wasn't working properly and forms were being submitted insecurely.

In the sample.env file it has the following line:

LEAN_APP_URL = ''                             # Base URL, only needed for subfolder installation

This comment is confusing since I don't have a subfolder installation. I think it's misleading. I have a reverse proxy and am using SSL. However, this parameter is needed.

I believe the documentation needs to be updated to clarify the meaning of this parameter. I'm not sure if there's more documentation that's clearer about it, but I couldn't find it.

Once I set this parameter, including the https:// in the URL, it solved my issue.

Screenshot 2024-04-04 at 6 27 43 PM
Screenshot 2024-04-04 at 6 29 17 PM

Edit User Issue

Hi there

Am having issues with the edit user page. We set up using the docker image. I did find a solution for this when I tried searching for a fix.

Leantime/leantime#454

But then since we set up the tool using the docker image, finding it difficult to actually locate the individual file. How do I go about fixing this issue? I tried searching for it under /var/lib/docker/. But then guess that's not the right approach.

Any help would be highly appreciated.

Regards
Thomas

bad permissions on public/userfiles

Apache runs as a different user (www-data) than the directory owner.

[Mon Mar 02 06:00:45.035151 2020] [proxy_fcgi:error] [pid 33:tid 140204501296896] [client 172.18.0.1:37012] AH01071: Got error 'PHP message: PHP Warning: move_uploaded_file(/var/www/html/public/userfiles/12799c57a72538146028b66c059e0ebd.png): failed to open stream: Permission denied in /var/www/html/src/core/class.fileupload.php on line 249\nPHP message: PHP Warning: move_uploaded_file(): Unable to move '/tmp/phpIID8df' to '/var/www/html/public/userfiles/12799c57a72538146028b66c059e0ebd.png' in /var/www/html/src/core/class.fileupload.php on line 249\n', referer: http://localhost/setting/editCompanySettings/

No easy way to run behind proxy with SSL

I tried to run leantime behind traefik proxy, but there is no way to change leantime URLs to use https instead of http. The frontend shown up, but completly unstyled due to mixed content restriction (many http request for scripts and stylesheets). What can I do to change them to https?

utf8mb4 issue

When I type utf-8 characters for my firstname and lastname in installation form, it can be accepted but shows '?' after logging in. And company name can show utf-8 characters.
image
I also change firstname and lastname in 'Edit Profile', but still show '?' character. Thanks for your nice work.

Testing Email

I followed the documentation here.

Specifically, this is what I ran:

$ docker compose exec -it leantime /bin/sh
/var/www/html # ./bin/leantime email:test
                                                                                                                        
 [ERROR] address parameter needs to be set  

How do I set this parameter correctly?

I have all the settings in the .env filled out. So I'm not sure if my settings are incorrect or if they are not being transferred properly into the configuration.

Container behind HTTPS proxy

I would like to use Leantime behind Traefik, html page is loaded (using Browser <-- HTTPS --> Proxy Traefik <--HTTP --> Leantime container ) but content like css, images are not. The problem is with absolute path to the content which has defined HTTP protocol and it is blocked by browser:
Mixed Content: The page at '' was loaded over HTTPS, but requested an insecure stylesheet ''. This request has been blocked; the content must be served over HTTPS.
Is it possible to use only relative paths or define somewhere protocol to use?

failed to register layer - invalid argument

Running on Ubuntu 18.04.4 LTS, docker-compose up -d aborts with:

Pulling web (leantime/leantime:latest)...
latest: Pulling from leantime/leantime
[...]
a122f7c8f7dc: Extracting [==================================================>]  33.55MB/33.55MB
[...]
ERROR: failed to register layer: ApplyLayer exit status 1 stdout:  stderr: lchown /var/www/html/LICENSE: invalid argument

No database connection, check your database credentials in your configuration file.

Getting the above error, not quite sure where the issue is, doesn't seem to be much in terms of logs.

  ##~~~~~~~~##
 ##Leantime##
 ##~~~~~~~~##

  leantime_web:
    image: leantime/leantime
    container_name: Leantime
    hostname: Leantime
    environment:
      - LEAN_DB_HOST="LeantimeDB"
      - LEAN_DB_USER="admin"
      - LEAN_DB_PASSWORD="dbpass"
      - LEAN_DB_DATABASE="leantime"
    networks:
      pihole:
        ipv4_address: '172.22.0.142'
      isolated:
    expose:
      - "9000"
      - "80"
      - "443"
    depends_on:
      - leantime_db
    labels: 
      # - backup
      - autoheal=true
      - "traefik.enable=true"
      ## HTTP Routers
      - "traefik.http.routers.leantime-rtr.entrypoints=https"
      - "traefik.http.routers.leantime-rtr.rule=Host(`leantime.$DOMAINNAME`)"
      - "traefik.http.routers.leantime-rtr.tls=true"
      ## Middlewares
      - "traefik.http.routers.leantime-rtr.middlewares=chain-no-auth@file" # No Authentication
      # - "traefik.http.routers.leantime-rtr.middlewares=chain-basic-auth@file" # Basic Authentication
      # - "traefik.http.routers.leantime-rtr.middlewares=chain-oauth@file" # Google OAuth 2.0
      # - "traefik.http.routers.leantime-rtr.middlewares=chain-authelia@file" # Authelia
      ## HTTP Services
      - "traefik.http.routers.leantime-rtr.service=leantime-svc"
      - "traefik.http.services.leantime-svc.loadbalancer.server.port=80"
      ## Flame Dashboard
      - flame.type=application # "app" works too
      - flame.name=leantime
      - flame.icon=https://raw.githubusercontent.com/modem7/MiscAssets/master/Icons/leantime-logo.png # Optional, default is "docker"

  leantime_db:
    image: linuxserver/mariadb:alpine
    container_name: LeantimeDB
    hostname: LeantimeDB
    volumes:
      - $USERDIR/Leantime/DB:/config
    restart: always
    environment:
      - PUID=$PUID
      - PGID=$PGID
      - TZ=$TZ
      - MYSQL_ROOT_PASSWORD="rootpass"
      - MYSQL_DATABASE="leantime"
      - MYSQL_USER="admin"
      - MYSQL_PASSWORD="dbpass"
    networks:
      - isolated
    expose:
      - "3306"

Log from Leantime:

today at 01:17:34 Creating configuration file!
today at 01:17:34 2022-02-07 01:17:34,798 CRIT Supervisor is running as root.  Privileges were not dropped because no user is specified in the config file.  If you intend to run as root, you can set user=root in the config file to avoid this message.
today at 01:17:34 2022-02-07 01:17:34,802 INFO supervisord started with pid 14
today at 01:17:35 2022-02-07 01:17:35,806 INFO spawned: 'httpd' with pid 16
today at 01:17:35 2022-02-07 01:17:35,808 INFO spawned: 'php-fpm' with pid 17
today at 01:17:35 [07-Feb-2022 01:17:35] NOTICE: fpm is running, pid 17
today at 01:17:35 [07-Feb-2022 01:17:35] NOTICE: ready to handle connections
today at 01:17:36 2022-02-07 01:17:36,864 INFO success: httpd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
today at 01:17:36 2022-02-07 01:17:36,865 INFO success: php-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
today at 01:18:03 127.0.0.1 -  07/Feb/2022:01:17:58 +0000 "GET /index.php" 200
today at 01:18:15 127.0.0.1 -  07/Feb/2022:01:18:10 +0000 "GET /index.php" 200

Log from DB:

today at 01:16:21 [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
today at 01:16:21 [s6-init] ensuring user provided files have correct perms...exited 0.
today at 01:16:21 [fix-attrs.d] applying ownership & permissions fixes...
today at 01:16:21 [fix-attrs.d] done.
today at 01:16:21 [cont-init.d] executing container initialization scripts...
today at 01:16:21 [cont-init.d] 01-envfile: executing... 
today at 01:16:21 [cont-init.d] 01-envfile: exited 0.
today at 01:16:21 [cont-init.d] 02-tamper-check: executing... 
today at 01:16:21 [cont-init.d] 02-tamper-check: exited 0.
today at 01:16:21 [cont-init.d] 10-adduser: executing... 
today at 01:16:21
today at 01:16:21 -------------------------------------
today at 01:16:21          _         ()
today at 01:16:21         | |  ___   _    __
today at 01:16:21         | | / __| | |  /  \
today at 01:16:21         | | \__ \ | | | () |
today at 01:16:21         |_| |___/ |_|  \__/
today at 01:16:21
today at 01:16:21
today at 01:16:21 Brought to you by linuxserver.io
today at 01:16:21 -------------------------------------
today at 01:16:21
today at 01:16:21 To support LSIO projects visit:
today at 01:16:21 https://www.linuxserver.io/donate/
today at 01:16:21 -------------------------------------
today at 01:16:21 GID/UID
today at 01:16:21 -------------------------------------
today at 01:16:21
today at 01:16:21 User uid:    1000
today at 01:16:21 User gid:    997
today at 01:16:21 -------------------------------------
today at 01:16:21
today at 01:16:21 [cont-init.d] 10-adduser: exited 0.
today at 01:16:21 [cont-init.d] 30-config: executing... 
today at 01:16:22 [cont-init.d] 30-config: exited 0.
today at 01:16:22 [cont-init.d] 40-initialise-db: executing... 
today at 01:16:22 [cont-init.d] 40-initialise-db: exited 0.
today at 01:16:22 [cont-init.d] 90-custom-folders: executing... 
today at 01:16:22 [cont-init.d] 90-custom-folders: exited 0.
today at 01:16:22 [cont-init.d] 99-custom-files: executing... 
today at 01:16:22 [custom-init] no custom files found exiting...
today at 01:16:22 [cont-init.d] 99-custom-files: exited 0.
today at 01:16:22 [cont-init.d] done.
today at 01:16:22 [services.d] starting services
today at 01:16:22 [services.d] done.
today at 01:16:22 220207 01:16:22 mysqld_safe Logging to '/config/databases/LeantimeDB.err'.
today at 01:16:22 220207 01:16:22 mysqld_safe Starting mariadbd daemon with databases from /config/databases

Tag releases to match the leantime version

Can you guys version this with tags to match version of leantime? This would be great for updating and keeping track of which version you're on. I prefer not to use latest. It also allows you to keep improving here in this repo without screwing people up, rather than waiting for a versioning on the other end -- such as incorporating the new env configs. Also, you can have docker hub to auto build on pushed tags.

Webpage not rendering correctly behind revers proxy

Hi,

I recently set up the Leantime docker container on my docker host. I have a weird issue where if I connect locally via HTTP to the Leantime web portal, everything renders correctly. But if I connect externally through my Nginx Reverse Proxy Manager container, the web page renders completely incorrectly. This is the same whether I connect through the proxy on the local network or over the internet.

Here is a how everything is configured:
Firewall (192.168.0.1) No VLANs, port 80 and 443 point to the NGINX reverse proxy manager
Docker host (192.168.0.70) running both nginx revp manager and leantime containers
External dns entry pointing to Leantime container. Verified as working as the Leantime page loads, albeit incorrectly.
Leantime container running on port 82 on host, redirecting to 80 in container

Here is the config taken from portainer:

LEAN_DB_HOST | mysql_leantime
LEAN_DB_USER | admin
LEAN_DB_PASSWORD |
LEAN_DB_DATABASE | leantime
PATH | /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PHPIZE_DEPS | autoconf dpkg-dev dpkg file g++ gcc libc-dev make pkgconf re2c
PHP_INI_DIR | /usr/local/etc/php
PHP_EXTRA_CONFIGURE_ARGS | --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --disable-cgi
PHP_CFLAGS | -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
PHP_CPPFLAGS | -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
PHP_LDFLAGS | -Wl,-O1 -pie
GPG_KEYS | 1729F83938DA44E27BA0F4D3DBDB397470D12172 B1B44D8F021E4E2D6021E995DC9FF8D3EE5AF27F
PHP_VERSION | 7.2.34
PHP_URL | https://www.php.net/distributions/php-7.2.34.tar.xz
PHP_ASC_URL | https://www.php.net/distributions/php-7.2.34.tar.xz.asc
PHP_SHA256 | 409e11bc6a2c18707dfc44bc61c820ddfd81e17481470f3405ee7822d8379903

I will attach some screenshots now
Connecting to the internal hostname from a laptop on the same subnet
image
image

Connecting from the exact same device, browser and network using the external DNS name
image

image

Thanks in advance for any help. If you need additional info let me know :)

Cannot update files using docker image

I have not tried installing from source, so I do not know if this is an issue with the source or the Docker image. However, when installing following the instructions, I cannot upload a new logo or user profile. I also could not find anyway to setup emails without connecting to the running instance and manually editing the configuration file.I run NGINX as a reverse proxy for SSL termination, hence the random port for the leantime container.

Version: 2.0.11

Script:

echo "Starting MySQL"

sudo docker run -d -p 3306:3306 --network leantime-net \
-e MYSQL_ROOT_PASSWORD=SNIP \
-e MYSQL_DATABASE=leantime \
-e MYSQL_USER=admin \
-e MYSQL_PASSWORD=SNIP \
-v /var/data:/var/lib/mysql \
--name mysql_leantime mysql:5.7 --character-set-server=utf8 --collation-server=utf8_unicode_ci

echo "Starting Leantime...."


sudo docker run -d -p 7803:80 --network leantime-net \
-e DB_HOST=mysql_leantime \
-e MYSQL_USER=admin \
-e MYSQL_PASSWORD=SNIP \
-e MYSQL_DATABASE=leantime \
--name leantime leantime/leantime:latest

Latest Docker image Broken

Hi,

The latest docker image (linux/amd64)is not working, when I do docker-compose and try to access the install page I get the following error.

Warning: include_once(../config/settings.php): failed to open stream: No such file or directory in /var/www/html/public/index.php on line 6

Warning: include_once(): Failed opening '../config/settings.php' for inclusion (include_path='.:/usr/local/lib/php') in /var/www/html/public/index.php on line 6

Warning: include_once(../config/configuration.php): failed to open stream: No such file or directory in /var/www/html/public/index.php on line 8

Warning: include_once(): Failed opening '../config/configuration.php' for inclusion (include_path='.:/usr/local/lib/php') in /var/www/html/public/index.php on line 8

Fatal error: Uncaught Error: Class 'leantime\core\config' not found in /var/www/html/public/index.php:10 Stack trace: #0 {main} thrown in /var/www/html/public/index.php on line 10

Images 2.1 and 2.1.1 are working fine.

500 error after login

With the latest version, I get a 500 error after fresh install and login. With version 2.1.4 it works like a charm.

I filled out the /install-Form and tried to login. I got a blank page, so I checked the "docker-compose up"-log:

leantime | 127.0.0.1 -  31/Jan/2021:18:20:23 +0000 "GET /index.php" 200
leantime | 127.0.0.1 -  31/Jan/2021:18:20:23 +0000 "GET /css/style.custom.php" 200
leantime | 127.0.0.1 -  31/Jan/2021:18:20:27 +0000 "GET /index.php" 200
leantime | 127.0.0.1 -  31/Jan/2021:18:20:27 +0000 "GET /css/style.custom.php" 200
leantime | 127.0.0.1 -  31/Jan/2021:18:20:39 +0000 "POST /index.php" 200
leantime | 127.0.0.1 -  31/Jan/2021:18:20:40 +0000 "GET /css/style.custom.php" 200
leantime | 127.0.0.1 -  31/Jan/2021:18:20:46 +0000 "GET /index.php" 200
leantime | 127.0.0.1 -  31/Jan/2021:18:20:46 +0000 "GET /css/style.custom.php" 200
leantime | 127.0.0.1 -  31/Jan/2021:18:20:47 +0000 "POST /index.php" 200
leantime | 127.0.0.1 -  31/Jan/2021:18:20:48 +0000 "GET /css/style.custom.php" 200
leantime | 127.0.0.1 -  31/Jan/2021:18:20:50 +0000 "GET /index.php" 200
leantime | 127.0.0.1 -  31/Jan/2021:18:20:51 +0000 "GET /css/style.custom.php" 200
leantime | 127.0.0.1 -  31/Jan/2021:18:20:56 +0000 "POST /index.php" 302
leantime | 127.0.0.1 -  31/Jan/2021:18:20:56 +0000 "GET /index.php" 500

Here is my docker-compose.yml (note that I changed the default docker-compose.yml for my needs, e.g. traefik).

version: '3.3'

services:
   db:
     image: mysql:5.7
     container_name: mysql_leantime
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     networks:
       - internal
     environment:
         MYSQL_ROOT_PASSWORD: '321.qwerty'
         MYSQL_DATABASE: 'leantime'
         MYSQL_USER: 'admin'
         MYSQL_PASSWORD: '321.qwerty'
     command: --character-set-server=utf8 --collation-server=utf8_unicode_ci
     labels:
       - "traefik.enable=false"
   web:
     image: leantime/leantime:latest
     container_name: leantime
     environment:
         LEAN_DB_HOST: 'mysql_leantime'
         LEAN_DB_USER: 'admin'
         LEAN_DB_PASSWORD: '321.qwerty'
         LEAN_DB_DATABASE: 'leantime'
         LEAN_APP_URL: 'https://{mydomain}'
     networks:
       - traefik_web
       - internal
     labels:
       - "traefik.enable=true"
       - "traefik.docker.network=traefik_web"
       - "traefik.http.routers.leantime.rule=Host(`{mydomain}`)"
       - "traefik.http.routers.leantime.entrypoints=web"
       - "traefik.http.routers.leantime-secure.entrypoints=websecure"
       - "traefik.http.routers.leantime-secure.rule=Host(`{mydomain}`)"
       - "traefik.http.routers.leantime-secure.tls=true"
       - "traefik.http.routers.leantime-secure.tls.certresolver=myresolver"
     depends_on:
       - db
volumes:
   db_data: {}
networks:
   traefik_web:
     external: true
   internal:
     external: false

Delete the release archive

Need a quick rm Leantime-V2.1.tar.gz after line 28 of the Dockerfile.

Hope to have time to make a PR, but putting the issue in anyway.

Also would be good to have the version in an ARG; probably helps with tagging, too.

Error 500 with new install

Hi,
I'm fully unable toi install Leantime with Dockerc-compose.
After starting containers, I obtain error 500 and this log :

Creating configuration file! 2024-04-02 19:19:15,396 CRIT Supervisor is running as root. Privileges were not dropped because no user is specified in the config file. If you intend to run as root, you can set user=root in the config file to avoid this message. 2024-04-02 19:19:15,398 INFO supervisord started with pid 10 2024-04-02 19:19:16,399 INFO spawned: 'php-fpm' with pid 11 2024-04-02 19:19:16,401 INFO spawned: 'httpd' with pid 12 [02-Apr-2024 19:19:16] NOTICE: fpm is running, pid 11 [02-Apr-2024 19:19:16] NOTICE: ready to handle connections 2024-04-02 19:19:17,421 INFO success: php-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2024-04-02 19:19:17,421 INFO success: httpd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) NOTICE: PHP message: PHP Warning: file_put_contents(/var/www/html/cache/installation/c6/92/c692273deb2772da307ffe37041fef77bf4baa97): Failed to open stream: No such file or directory in /var/www/html/vendor/illuminate/filesystem/Filesystem.php on line 190 NOTICE: PHP message: PHP Warning: file_put_contents(/var/www/html/cache/installation/5b/ac/5bac1d3aee24b76ccad2a413c6a76d4780014219): Failed to open stream: No such file or directory in /var/www/html/vendor/illuminate/filesystem/Filesystem.php on line 190 NOTICE: PHP message: PHP Warning: file_put_contents(/var/www/html/cache/views/abcad8e5a22bd29aaabbc2b51e223bacc196be9c.php): Failed to open stream: Permission denied in /var/www/html/vendor/illuminate/filesystem/Filesystem.php on line 190 NOTICE: PHP message: Illuminate\Contracts\Filesystem\FileNotFoundException: File does not exist at path /var/www/html/cache/views/abcad8e5a22bd29aaabbc2b51e223bacc196be9c.php. in /var/www/html/vendor/illuminate/filesystem/Filesystem.php:113 � Stack trace: #0 /var/www/html/vendor/illuminate/view/Engines/PhpEngine.php(58): Illuminate\Filesystem\Filesystem->getRequire('/var/www/html/c...', Array) #1 /var/www/html/vendor/illuminate/view/Engines/CompilerEngine.php(70): Illuminate\View\Engines\PhpEngine->evaluatePath('/var/www/html/c...', Array) #2 /var/www/html/vendor/illuminate/view/View.php(195): Illuminate\View\Engines\CompilerEngine->get('/var/www/html/a...', Array) #3 /var/www/html/vendor/illuminate/view/View.php(178): Illuminate\View\View->getContents() #4 /var/www/html/vendor/illuminate/view/View.php(147): Illuminate\View\View->renderContents() #5 /var/www/html/app/Core/Template.php(509): Illuminate\View\View->render() #6 /var/www/html/app/Domain/Install/Controllers/Index.php(41): Leantime\Core\Template->display('install.new', 'global::layouts...') #7 /var/www/html/app/Core/Controller.php(82): Leantime\Domain\Install\Controllers\Index->get(Array) #8 /var/www/html/app/Core/Controller.php(49): Leantime\Core\Controller->executeActions('GET', Array) #9 [internal function]: Leantime\Core\Controller->__construct(Object(Leantime\Core\IncomingRequest), Object(Leantime\Core\Template), Object(Leantime\Core\Language)) #10 /var/www/html/vendor/illuminate/container/Container.php(929): ReflectionClass->newInstanceArgs(Array) #11 /var/www/html/vendor/illuminate/container/Container.php(770): Illuminate\Container\Container->build('Leantime\\Domain...') #12 /var/www/html/vendor/illuminate/container/Container.php(706): Illuminate\Container\Container->resolve('Leantime\\Domain...', Array) #13 /var/www/html/app/Core/Frontcontroller.php(130): Illuminate\Container\Container->make('Leantime\\Domain...') #14 /var/www/html/app/Core/Frontcontroller.php(75): Leantime\Core\Frontcontroller::executeAction('install', Array) #15 /var/www/html/app/Core/HttpKernel.php(63): Leantime\Core\Frontcontroller::dispatch() #16 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(141): Leantime\Core\HttpKernel->Leantime\Core\{closure}(Object(Leantime\Core\IncomingRequest)) #17 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Leantime\Core\IncomingRequest)) #18 /var/www/html/app/Core/HttpKernel.php(63): Illuminate\Pipeline\Pipeline->then(Object(Closure)) #19 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(141): Leantime\Core\HttpKernel->Leantime\Core\{closure}(Object(Leantime\Core\IncomingRequest)) #20 /var/www/html/app/Core/Middleware/CurrentProject.php(25): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Leantime\Core\IncomingRequest)) #21 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(180): Leantime\Core\Middleware\CurrentProject->handle(Object(Leantime\Core\IncomingRequest), Object(Closure)) #22 /var/www/html/app/Core/Middleware/Localization.php(48): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Leantime\Core\IncomingRequest)) #23 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(180): Leantime\Core\Middleware\Localization->handle(Object(Leantime\Core\IncomingRequest), Object(Closure)) #24 /var/www/html/app/Core/Middleware/Auth.php(74): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Leantime\Core\IncomingRequest)) #25 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(180): Leantime\Core\Middleware\Auth->handle(Object(Leantime\Core\IncomingRequest), Object(Closure)) #26 /var/www/html/app/Core/Middleware/Updated.php(41): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Leantime\Core\IncomingRequest)) #27 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(180): Leantime\Core\Middleware\Updated->handle(Object(Leantime\Core\IncomingRequest), Object(Closure)) #28 /var/www/html/app/Core/Middleware/Installed.php(31): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Leantime\Core\IncomingRequest)) #29 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(180): Leantime\Core\Middleware\Installed->handle(Object(Leantime\Core\IncomingRequest), Object(Closure)) #30 /var/www/html/app/Core/Middleware/InitialHeaders.php(22): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Leantime\Core\IncomingRequest)) #31 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(180): Leantime\Core\Middleware\InitialHeaders->handle(Object(Leantime\Core\IncomingRequest), Object(Closure)) #32 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Leantime\Core\IncomingRequest)) #33 /var/www/html/app/Core/HttpKernel.php(64): Illuminate\Pipeline\Pipeline->then(Object(Closure)) #34 /var/www/html/app/Core/Bootloader.php(303): Leantime\Core\HttpKernel->handle(Object(Leantime\Core\IncomingRequest)) #35 /var/www/html/app/Core/Bootloader.php(173): Leantime\Core\Bootloader->handleRequest() #36 /var/www/html/public/index.php(18): Leantime\Core\Bootloader->boot() #37 {main} Next Illuminate\View\ViewException: File does not exist at path /var/www/html/cache/views/abcad8e5a22bd29aaabbc2b51e223bacc196be9c.php. (View: /var/www/html/app/Views/Templates/layouts/entry.blade.php) in /var/www/html/vendor/illuminate/filesystem/Filesystem.php:113 � Stack trace: #0 /var/www/html/vendor/illuminate/view/Engines/PhpEngine.php(60): Illuminate\View\Engines\CompilerEngine->handleViewException(Object(Illuminate\Contracts\Filesystem\FileNotFoundException), 0) #1 /var/www/html/vendor/illuminate/view/Engines/CompilerEngine.php(70): Illuminate\View\Engines\PhpEngine->evaluatePath('/var/www/html/c...', Array) #2 /var/www/html/vendor/illuminate/view/View.php(195): Illuminate\View\Engines\CompilerEngine->get('/var/www/html/a...', Array) #3 /var/www/html/vendor/illuminate/view/View.php(178): Illuminate\View\View->getContents() #4 /var/www/html/vendor/illuminate/view/View.php(147): Illuminate\View\View->renderContents() #5 /var/www/html/app/Core/Template.php(509): Illuminate\View\View->render() #6 /var/www/html/app/Domain/Install/Controllers/Index.php(41): Leantime\Core\Template->display('install.new', 'global::layouts...') #7 /var/www/html/app/Core/Controller.php(82): Leantime\Domain\Install\Controllers\Index->get(Array) #8 /var/www/html/app/Core/Controller.php(49): Leantime\Core\Controller->executeActions('GET', Array) #9 [internal function]: Leantime\Core\Controller->__construct(Object(Leantime\Core\IncomingRequest), Object(Leantime\Core\Template), Object(Leantime\Core\Language)) #10 /var/www/html/vendor/illuminate/container/Container.php(929): ReflectionClass->newInstanceArgs(Array) #11 /var/www/html/vendor/illuminate/container/Container.php(770): Illuminate\Container\Container->build('Leantime\\Domain...') #12 /var/www/html/vendor/illuminate/container/Container.php(706): Illuminate\Container\Container->resolve('Leantime\\Domain...', Array) #13 /var/www/html/app/Core/Frontcontroller.php(130): Illuminate\Container\Container->make('Leantime\\Domain...') #14 /var/www/html/app/Core/Frontcontroller.php(75): Leantime\Core\Frontcontroller::executeAction('install', Array) #15 /var/www/html/app/Core/HttpKernel.php(63): Leantime\Core\Frontcontroller::dispatch() #16 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(141): Leantime\Core\HttpKernel->Leantime\Core\{closure}(Object(Leantime\Core\IncomingRequest)) #17 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Leantime\Core\IncomingRequest)) #18 /var/www/html/app/Core/HttpKernel.php(63): Illuminate\Pipeline\Pipeline->then(Object(Closure)) #19 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(141): Leantime\Core\HttpKernel->Leantime\Core\{closure}(Object(Leantime\Core\IncomingRequest)) #20 /var/www/html/app/Core/Middleware/CurrentProject.php(25): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Leantime\Core\IncomingRequest)) #21 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(180): Leantime\Core\Middleware\Current... NOTICE: PHP message: PHP Warning: file_put_contents(/var/www/html/cache/views/edf299eb4370dce66f71099b13d581c6da5749e0.php): Failed to open stream: Permission denied in /var/www/html/vendor/illuminate/filesystem/Filesystem.php on line 190 127.0.0.1 - 02/Apr/2024:19:19:42 +0000 "GET /index.php" 500 NOTICE: PHP message: PHP Fatal error: Uncaught Illuminate\Contracts\Filesystem\FileNotFoundException: File does not exist at path /var/www/html/cache/views/edf299eb4370dce66f71099b13d581c6da5749e0.php. in /var/www/html/vendor/illuminate/filesystem/Filesystem.php:113 � Stack trace: #0 /var/www/html/vendor/illuminate/view/Engines/PhpEngine.php(58): Illuminate\Filesystem\Filesystem->getRequire('/var/www/html/c...', Array) #1 /var/www/html/vendor/illuminate/view/Engines/CompilerEngine.php(70): Illuminate\View\Engines\PhpEngine->evaluatePath('/var/www/html/c...', Array) #2 /var/www/html/vendor/illuminate/view/View.php(195): Illuminate\View\Engines\CompilerEngine->get('/var/www/html/a...', Array) #3 /var/www/html/vendor/illuminate/view/View.php(178): Illuminate\View\View->getContents() #4 /var/www/html/vendor/illuminate/view/View.php(147): Illuminate\View\View->renderContents() #5 /var/www/html/app/Core/Template.php(509): Illuminate\View\View->render() #6 /var/www/html/app/Core/HttpKernel.php(77): Leantime\Core\Template->display('errors.error500', 'global::layouts...') #7 /var/www/html/app/Core/Bootloader.php(303): Leantime\Core\HttpKernel->handle(Object(Leantime\Core\IncomingRequest)) #8 /var/www/html/app/Core/Bootloader.php(173): Leantime\Core\Bootloader->handleRequest() #9 /var/www/html/public/index.php(18): Leantime\Core\Bootloader->boot() #10 {main} Next Illuminate\View\ViewException: File does not exist at path /var/www/html/cache/views/edf299eb4370dce66f71099b13d581c6da5749e0.php. (View: /var/www/html/app/Views/Templates/layouts/error.blade.php) in /var/www/html/vendor/illuminate/filesystem/Filesystem.php:113 � Stack trace: #0 /var/www/html/vendor/illuminate/view/Engines/PhpEngine.php(60): Illuminate\View\Engines\CompilerEngine->handleViewException(Object(Illuminate\Contracts\Filesystem\FileNotFoundException), 0) #1 /var/www/html/vendor/illuminate/view/Engines/CompilerEngine.php(70): Illuminate\View\Engines\PhpEngine->evaluatePath('/var/www/html/c...', Array) #2 /var/www/html/vendor/illuminate/view/View.php(195): Illuminate\View\Engines\CompilerEngine->get('/var/www/html/a...', Array) #3 /var/www/html/vendor/illuminate/view/View.php(178): Illuminate\View\View->getContents() #4 /var/www/html/vendor/illuminate/view/View.php(147): Illuminate\View\View->renderContents() #5 /var/www/html/app/Core/Template.php(509): Illuminate\View\View->render() #6 /var/www/html/app/Core/HttpKernel.php(77): Leantime\Core\Template->display('errors.error500', 'global::layouts...') #7 /var/www/html/app/Core/Bootloader.php(303): Leantime\Core\HttpKernel->handle(Object(Leantime\Core\IncomingRequest)) #8 /var/www/html/app/Core/Bootloader.php(173): Leantime\Core\Bootloader->handleRequest() #9 /var/www/html/public/index.php(18): Leantime\Core\Bootloader->boot() #10 {main} thrown in /var/www/html/vendor/illuminate/filesystem/Filesystem.php on line 113

Please could you help me ?

404 Error when administrating/changing project

Going to View All Projects as Administrator lists all available projects. Clicking on one of the projects in the table view results in a 404 error.
URL in the overview is: https://lean.domain.tld/projects/changeCurrentProject/6/
Accessing it via https://lean.domain.tld/projects/showProject/6/ works

Container behind Nginx Proxy (HTTP)

Hello,

I'm testing leantime with a docker-compose, and I have an issue with my proxy.

It's a simple Nginx proxy without https yet, as it's a local domain.

Here is my docker-compose:

leantime_db:
    image: linuxserver/mariadb
    volumes:
      - ./leantime:/config
    restart: always
    environment:
        MYSQL_ROOT_PASSWORD: '321.qwerty'
        MYSQL_DATABASE: 'leantime'
        MYSQL_USER: 'admin'
        MYSQL_PASSWORD: '321.qwerty'
    ports:
      - "3306:3306"

  leantime_web:
    image: local-leantime
    environment:
      LEAN_DB_HOST: 'leantime_db'
      LEAN_DB_USER: 'admin'
      LEAN_DB_PASSWORD: '321.qwerty'
      LEAN_DB_DATABASE: 'leantime'
    ports:
      - "9000:9000"
      - "8125:80"
      - "8126:443"
    depends_on:
      - leantime_db

I changed the database image (mysql doesn't run on ARM7 arch) and built the leantime image myself as it's running on a Raspberry Pi 4.

Here is my Nginx reverse-proxy conf:

server {
    listen 80;
    server_name work.home;
    access_log /var/log/nginx/work-http.log;
    location /.well-known {
        alias /var/www/html/work.home/.well-known;
    }
    location / {
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        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_pass http://192.168.1.101:8125;
    }
}

It's the same template I use for all other services, and it's working great. However I think it's in conflict with Apache inside Leantime.

When I access http://192.168.1.101:8125/install, the installation page pops up.
When I access http://work.home/install, I'm redirected (301) to https.

I tried the LEAN_APP_URL settings but it's not working. Does anyone happen to have the same issue ?

Always need to connect

Hello

I facing with strange error. I've installed leantime (2.1.4) with docker-compose. I've configured my accounts, projects, clients without problems. But after a certain time (more than 1 hour) i must reconnect for every actions.

So, i've look in logs files (in my leantime docker container) and i've seen this :

/var/www/html/resources/logs/error.log
...
[04-Jan-2021 06:58:52 America/Los_Angeles] PHP Warning:  ini_set(): Headers already sent. You cannot change the session module's ini settings at this time in /var/www/html/src/core/class.session.php on line 41
[04-Jan-2021 06:58:52 America/Los_Angeles] PHP Warning:  session_name(): Cannot change session name when headers already sent in /var/www/html/src/core/class.session.php on line 71
[04-Jan-2021 06:58:52 America/Los_Angeles] PHP Warning:  session_id(): Cannot change session id when headers already sent in /var/www/html/src/core/class.session.php on line 72
[04-Jan-2021 06:58:52 America/Los_Angeles] PHP Warning:  session_start(): Cannot start session when headers already sent in /var/www/html/src/core/class.session.php on line 73
[04-Jan-2021 06:58:52 America/Los_Angeles] PHP Warning:  Cannot modify header information - headers already sent by (output started at php://input:1) in /var/www/html/src/core/class.session.php on line 74
[04-Jan-2021 06:58:52 America/Los_Angeles] PHP Warning:  Cannot modify header information - headers already sent by (output started at php://input:1) in /var/www/html/src/core/class.login.php on line 299
[04-Jan-2021 06:58:52 America/Los_Angeles] PHP Warning:  Cannot modify header information - headers already sent by (output started at php://input:1) in /var/www/html/src/core/class.login.php on line 299
[04-Jan-2021 06:58:52 America/Los_Angeles] PHP Warning:  Cannot modify header information - headers already sent by (output started at php://input:1) in /var/www/html/src/core/class.application.php on line 100
[04-Jan-2021 06:58:52 America/Los_Angeles] PHP Warning:  Cannot modify header information - headers already sent by (output started at php://input:1) in /var/www/html/src/core/class.application.php on line 101
[04-Jan-2021 06:58:52 America/Los_Angeles] PHP Warning:  Cannot modify header information - headers already sent by (output started at php://input:1) in /var/www/html/src/core/class.application.php on line 102
[04-Jan-2021 06:58:52 America/Los_Angeles] PHP Warning:  Cannot modify header information - headers already sent by (output started at php://input:1) in /var/www/html/src/core/class.login.php on line 299
...

And, in my docker container logs (docker logs -f [CONTAINER ID]) i've this :

docker leantime logs
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "sh: chattr: not found"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "sh: chattr: not found"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "sh: chattr: not found"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "sh: chattr: not found"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "sh: ufw: not found"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "sh: iptables: not found"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "sh: sudo: not found"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "sh: can't create /proc/sys/kernel/nmi_watchdog: Read-only file system"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "sh: can't create /etc/sysctl.conf: Permission denied"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "userdel: not found"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "userdel: not found"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "sh: chattr: not found"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "sh: chattr: not found"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:22] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "cat: can't open '/tmp/.X11-unix/01': No such file or directory"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "cat: can't open '/tmp/.X11-unix/11': No such file or directory"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "cat: can't open '/tmp/.X11-unix/22': No such file or directory"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "cat: can't open '/tmp/.pg_stat.0': No such file or directory"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "cat: can't open '/tmp/.pg_stat.1': No such file or directory"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "cat: can't open '/home/www-data/data/./oka.pid': No such file or directory"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "ps"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: ": unrecognized option: "
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "w"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "BusyBox v1.31.1 ()"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: " multi-call binary."
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "Usage: "
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "ps"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: " "
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "[-o COL1,COL2=HEADER]"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "Show list of processes"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "	-o COL1,COL2=HEADER	Select columns for display"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "ps"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: ": unrecognized option: "
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "w"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "BusyBox v1.31.1 () multi-call binary."
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "Usage: ps [-o COL1,COL2=HEADER]"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "Show list of processes"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "	-o COL1,COL2=HEADER	Select columns for display"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "kill: invalid number 'USER'"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "grep: bad regex 'kworker -c\': Trailing backslash"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "kill: invalid number 'USER'"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "kill: invalid number 'www-data'"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "netstat: showing only processes with your user ID"
[04-Jan-2021 14:39:23] WARNING: [pool www] child 45 said into stderr: "sh: systemctl: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "killall: log_rot: no process killed"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: chattr: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "rm: can't remove '/opt/atlassian/confluence/bin/1.sh': No such file or directory"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "rm: can't remove '/opt/atlassian/confluence/bin/1.sh.1': No such file or directory"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "rm: can't remove '/opt/atlassian/confluence/bin/1.sh.2': No such file or directory"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "rm: can't remove '/opt/atlassian/confluence/bin/1.sh.3': No such file or directory"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "rm: can't remove '/opt/atlassian/confluence/bin/3.sh': No such file or directory"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "rm: can't remove '/opt/atlassian/confluence/bin/3.sh.1': No such file or directory"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "rm: can't remove '/opt/atlassian/confluence/bin/3.sh.2': No such file or directory"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "rm: can't remove '/opt/atlassian/confluence/bin/3.sh.3': No such file or directory"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "rm: can't remove '/var/tmp/lib': No such file or directory"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "rm: can't remove '/var/tmp/.lib': No such file or directory"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: chattr: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "chmod: /tmp/lok: No such file or directory"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: docker: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: setenforce: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: can't create /etc/selinux/config: nonexistent directory"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: service: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: systemctl: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: service: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "sh: systemctl: not found"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "md5sum: can't open '/tmp/kinsing': No such file or directory"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "/tmp/kinsing is not 648effa354b3cbaad87b45f48d59c616, actual "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "chmod: /tmp/kinsing: No such file or directory"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current"
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "             "
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: "                    Dload  Upload   Total   Spent    Left  Speed"
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--""
[04-Jan-2021 14:39:24] WARNING: [pool www] child 45 said into stderr: ":--     0"
 63 13.9M   63 9052k    0     0  12.5M      0  0:00:01 --:--:--  0:00:01 12.5M"
100 13.9M  100 13.9M  "WARNING: [pool www] child 45 said into stderr: "
[04-Jan-2021 14:39:25] WARNING: [pool www] child 45 said into stderr: "  0     0  16"
[04-Jan-2021 14:39:25] WARNING: [pool www] child 45 said into stderr: ".6M      0 --:--:-- --:--:-- --:--:-- 16.6M"
[04-Jan-2021 14:39:25] WARNING: [pool www] child 45 said into stderr: "/tmp/kinsing is 648effa354b3cbaad87b45f48d59c616"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "sh: write error: Broken pipe"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"
[04-Jan-2021 14:39:26] WARNING: [pool www] child 45 said into stderr: "crontab: must be suid to work properly"

Do you think is a config error ?

This is my configs files for the docker-compose images

app.conf
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
ServerName 0.0.0.0

<VirtualHost *:80>
  DocumentRoot "/var/www/html/public"

  ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/public/$1
  <Directory "/var/www/html/public">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
    DirectoryIndex index.php
  </Directory>
</VirtualHost>
custom.ini
memory_limit = 1G
max_execution_time = 60
supervisord.conf
[supervisord]
nodaemon=true
logfile=/dev/null
logfile_maxbytes=0
pidfile=/run/supervisord.pid

[program:php-fpm]
command=php-fpm -F
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
autorestart=false
startretries=0

[program:httpd]
command=httpd -D "FOREGROUND"
numprocs=1
autostart=true
autorestart=true
docker-compose.yml
version: '3.3'

services:
   db:
     image: mysql:5.7
     container_name: mysql_leantime
     volumes:
       - data:/var/lib/mysql
     restart: always
     environment:
         MYSQL_ROOT_PASSWORD: 'secret'
         MYSQL_DATABASE: 'leantime'
         MYSQL_USER: 'admin'
         MYSQL_PASSWORD: 'secret'
     command: --character-set-server=utf8 --collation-server=utf8_unicode_ci
   web:
     image: leantime/leantime:latest
     container_name: leantime
     environment:
         LEAN_DB_HOST: 'mysql_leantime'
         LEAN_DB_USER: 'admin'
         LEAN_DB_PASSWORD: 'secret'
         LEAN_DB_DATABASE: 'leantime'
         LEAN_APP_URL: 'https://domain.fr'
     ports:
       - "9000:9000"
       - "8080:80"
     depends_on:
       - db

volumes:
  data:

Leantime is behind a reverse proxy on my server. This is my nginx conf :

/etc/nginx/sites-enabled/default
server {
  listen 80 default;
  server_name mydomain.fr;
  return 301 https://$server_name$request_uri;
}
server {
  listen 443 ssl default_server;

  ssl_certificate           /etc/letsencrypt/live/mydomain.fr/cert.pem;
  ssl_certificate_key       /etc/letsencrypt/live/mydomain.fr/privkey.pem;

  ssl on;

  access_log            /var/log/nginx/leantime.access.log;
  error_log            /var/log/nginx/leantime.error.log;


  if ($args ~ "(print=1\?print=1)") {
      return 301 $scheme://mydomain.fr$request_uri?print=1;
  }

  location / {
      add_header           Front-End-Https    on;
      add_header  Cache-Control "public, must-revalidate";
      add_header Strict-Transport-Security "max-age=2592000; includeSubdomains";
      proxy_pass  http://127.0.0.1:8080;
      proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
      proxy_set_header        Host            $host;
      proxy_set_header        X-Real-IP       $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

Configurable SMTP settings?

This isn't really an issue, more a question since I'm having trouble finding anything regarding email configuration. I'm curious if there's any way to configure email settings so I can ensure notifications are sent?

[Suggestion] PHP Sessions - custom.ini

Hi,

I am testing your docker image internally and I came across an issue with sessions.

I'll start with the solution I found to my problem:

I added this to custom.ini in the ./config subfolder
session.auto_start = 0

I also made sure to add this to /usr/local/etc/php/conf.d/custom.ini inside my docker image before restarting it (since I already had a running image).

Problem
If I remained logged in on a device, which then went to sleep, or internet connection, upon reconnection I was automatically logged out of Leantime. And then every time I tried to log back in, I was redirected to the login page. I cleared the cookies from my browser, and tried logging in using other browsers (Edge, Firefox, Chromium), but I had the same problem. I also deleted the files in the /sessions/ directory. Before I found the above solution, the only way to resolve it was to restart the docker images.

Errors from the log

This is what helped me identify the problem:

/var/www/html/logs/error.log

[18-Apr-2024 07:53:38 UTC] PHP Warning:  ini_set(): Session ini settings cannot be changed after headers have already been sent in /var/www/html/app/Core/Session.php on line 62
[18-Apr-2024 07:53:38 UTC] PHP Warning:  ini_set(): Session ini settings cannot be changed after headers have already been sent in /var/www/html/app/Core/Session.php on line 63
[18-Apr-2024 07:53:38 UTC] PHP Warning:  session_name(): Session name cannot be changed after headers have already been sent in /var/www/html/app/Core/Session.php on line 84
[18-Apr-2024 07:53:38 UTC] PHP Warning:  session_id(): Session ID cannot be changed after headers have already been sent in /var/www/html/app/Core/Session.php on line 85
[18-Apr-2024 07:53:38 UTC] PHP Warning:  session_start(): Session cannot be started after headers have already been sent in /var/www/html/app/Core/Session.php on line 86

/install says database exists after fresh install

Installed leantime docker via docker-compose and head over to mydomain.com/install

I get a message says databse exists and coannot finish setup

I purged each conmtainer and image leantime and mysql and did a reinstall but the messatge is the same, anyway.

Are there standard crediterials to login as admin now so that the /install step is abandoned?

config

version: '3.3'

services:
   db:
     image: mysql:5.7
     container_name: mysql_leantime
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
         MYSQL_ROOT_PASSWORD: '321.qwerty'
         MYSQL_DATABASE: 'leantime'
         MYSQL_USER: 'admin'
         MYSQL_PASSWORD: '321.qwerty'
     ports:
       - "3307:3306"
     command: --character-set-server=utf8 --collation-server=utf8_unicode_ci
   web:
     image: leantime/leantime:latest
     container_name: leantime
     environment:
         LEAN_DB_HOST: 'mysql_leantime'
         LEAN_DB_USER: 'admin'
         LEAN_DB_PASSWORD: '321.qwerty'
         LEAN_DB_DATABASE: 'leantime'
         LEAN_APP_URL: 'https://m.drupal-tv.de'
     ports:
       - "9000:9000"
       - "8090:80"
     depends_on:
       - db
volumes:
    db_data: {}

Pretty standard but added appurl

Any Ideas what I am doing wrong?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.