Giter Site home page Giter Site logo

docker-freescout's Introduction

👋

I'm Dave, residing in the far west of Canada. In the 2000s I got fed up with my life working with computers and sold everything I owned, bought a bicycle, and rode it around the world. Eventually along the way I ran out of money, got married, and ended up moving back to Canada. You guessed it, I'm back in IT doing "good" for organizations around the world.

I'm using Github to share some of the work in use for clients, sanitized for public consumption. I like lightweight, highly configurable solutions that can meet more than a single use case.

I'm helping a limited number of teams and organizations. If you would like to have my help with your team and/or product, feel free to contact me.

If my open source projects are useful for your product/company you can also sponsor my work on them.

My website https://www.tiredofit.ca has more details.

docker-freescout's People

Contributors

blendsdk avatar coolibre avatar detrepo avatar janwillemvd avatar jonathanvansina avatar kometchtech avatar rosequaartz avatar rustymunkey avatar silviot avatar sofabeat avatar stephancasas avatar tillmon avatar tiredofit 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-freescout's Issues

Portainer Best Practice

Hi freescout community

I'm trying to setup freescout for us and for our clients. I would like to run multiple Dockers on one server so I have decided to work with portainer. Unfortunately, I couldn't work out the installation.

Is there any tutorial on how to make it work?
Could someone look at it? If it helps we can get in touch and organize a zoom meeting.

Many thanks
Siavash

Syntax error in 30-freescout

Summary

Steps to reproduce

  • Updated to 1.15.8
  • Restarted container

What is the expected correct behavior?

  • Container should start

Relevant logs and/or screenshots

The following is in docker logs:

/var/run/s6/etc/cont-init.d/30-freescout: line 269: syntax error near unexpected token `fi'
/var/run/s6/etc/cont-init.d/30-freescout: line 269: `fi'

Environment

  • Image version / tag: 1.15.8
  • Host OS: Ubuntu 20
Any logs | docker-compose.yml

Possible fixes

Possibly the fi is left from a previous conditional?

update of freescout fails

Using the in app update link at /system/status I get a dialogue with the following:

Error occured. Please try again or try another update method

Installation using recommended containers for nginx-proxy and letsencrypt as per docs.

Recommend to persist user storage

Freescout stores user profile pictures in /www/html/storage/app/public/users/.

In case this path is not mounted and the container is recreated, the pictures are lost.

To prevent this the /www/html/storage/app should be mounted as a persistent volume. The documentation does not currently mention this. /www/html is mentioned as an optional mount only if you need self-updating.

I'm not very familiar with Freescout, but I'm afraid it might store more vital information there too.

Pulling installs PHP 8

I pulled the latest update, which seems to install PHP 8 and break FreeScout. Dependencies require PHP 7.

Can not upgrade past 1.13.3 without LDAP errors

Summary

I can not update past 1.13.3 without getting "ldap_get_entries()" error.

Steps to reproduce

  • Have LDAP module installed on 1.13.3
  • Attempt to upgrade image to 1.14.0 or above
  • If already logged in existing session will continue to work, if you log out and log back in you get a "ldap_get_entries()" error

What is the expected correct behavior?

To let me log in.

Relevant logs and/or screenshots

Type error: ldap_get_entries(): Argument #2 ($result) must be of type resource, bool given
/data/Modules/Ldap/Overrides/Adldap/Connections/Ldap.php#119
Symfony\Component\Debug\Exception\FatalThrowableError
#0 /data/Modules/Ldap/Overrides/Adldap/Connections/Ldap.php(119): ldap_get_entries(Resource id #9, false)
#1 /data/Modules/Ldap/vendor/adldap2/adldap2/src/Query/Processor.php(52): Adldap\Connections\Ldap->getEntries(false)
#2 /data/Modules/Ldap/Overrides/Adldap/Query/Builder.php(340): Adldap\Query\Processor->process(false)
#3 /data/Modules/Ldap/Overrides/Adldap/Query/Builder.php(230): Adldap\Query\Builder->query('(&(objectclass=...')
#4 /data/Modules/Ldap/Overrides/Adldap/Query/Builder.php(464): Adldap\Query\Builder->get()
#5 /data/Modules/Ldap/vendor/adldap2/adldap2-laravel/src/Resolvers/UserResolver.php(81): Adldap\Query\Builder->first()
#6 /www/html/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(221): Adldap\Laravel\Resolvers\UserResolver->byCredentials(Array)
#7 /data/Modules/Ldap/Overrides/Adldap/Laravel/Auth/DatabaseUserProvider.php(101): Illuminate\Support\Facades\Facade::__callStatic('byCredentials', Array)
#8 /www/html/overrides/Illuminate/Auth/SessionGuard.php(352): Adldap\Laravel\Auth\DatabaseUserProvider->retrieveByCredentials(Array)
#9 /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php(77): Illuminate\Auth\SessionGuard->attempt(Array, false)
#10 /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php(42): App\Http\Controllers\Auth\LoginController->attemptLogin(Object(Illuminate\Http\Request))
#11 [internal function]: App\Http\Controllers\Auth\LoginController->login(Object(Illuminate\Http\Request))
#12 /www/html/overrides/Illuminate/Routing/Controller.php(54): call_user_func_array(Array, Array)
#13 /www/html/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction('login', Array)
#14 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(212): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\Auth\LoginController), 'login')
#15 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(169): Illuminate\Routing\Route->runController()
#16 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(658): Illuminate\Routing\Route->run()
#17 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#18 /www/html/app/Http/Middleware/RedirectIfAuthenticated.php(25): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#19 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): App\Http\Middleware\RedirectIfAuthenticated->handle(Object(Illuminate\Http\Request), Object(Closure))
#20 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#21 /data/Modules/Ldap/Overrides/Adldap/Laravel/Middleware/WindowsAuthenticate.php(64): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#22 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Adldap\Laravel\Middleware\WindowsAuthenticate->handle(Object(Illuminate\Http\Request), Object(Closure))
#23 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#24 /www/html/app/Http/Middleware/CustomHandle.php(22): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#25 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): App\Http\Middleware\CustomHandle->handle(Object(Illuminate\Http\Request), Object(Closure))
#26 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#27 /www/html/app/Http/Middleware/LogoutIfDeleted.php(28): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#28 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): App\Http\Middleware\LogoutIfDeleted->handle(Object(Illuminate\Http\Request), Object(Closure))
#29 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#30 /www/html/app/Http/Middleware/Localize.php(30): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#31 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): App\Http\Middleware\Localize->handle(Object(Illuminate\Http\Request), Object(Closure))
#32 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#33 /www/html/app/Http/Middleware/HttpsRedirect.php(41): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#34 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): App\Http\Middleware\HttpsRedirect->handle(Object(Illuminate\Http\Request), Object(Closure))
#35 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#36 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#37 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#38 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#39 /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(67): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#40 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#41 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#42 /www/html/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#43 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#44 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#45 /www/html/app/Http/Middleware/TokenAuth.php(31): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#46 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): App\Http\Middleware\TokenAuth->handle(Object(Illuminate\Http\Request), Object(Closure))
#47 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#48 /www/html/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(63): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#49 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#50 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#51 /www/html/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#52 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#53 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#54 /www/html/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(59): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#55 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#56 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#57 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#58 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(660): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#59 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(635): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#60 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(601): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#61 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(590): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#62 /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#63 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#64 /www/html/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(65): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#65 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Barryvdh\Debugbar\Middleware\InjectDebugbar->handle(Object(Illuminate\Http\Request), Object(Closure))
#66 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#67 /www/html/app/Http/Middleware/TerminateHandler.php(12): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#68 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): App\Http\Middleware\TerminateHandler->handle(Object(Illuminate\Http\Request), Object(Closure))
#69 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#70 /www/html/app/Http/Middleware/ResponseHeaders.php(11): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#71 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): App\Http\Middleware\ResponseHeaders->handle(Object(Illuminate\Http\Request), Object(Closure))
#72 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#73 /www/html/vendor/fideloper/proxy/src/TrustProxies.php(56): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#74 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Fideloper\Proxy\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#75 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#76 /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(30): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#77 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#78 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#79 /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(30): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#80 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#81 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#82 /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#83 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#84 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#85 /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(46): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#86 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#87 /www/html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#88 /www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#89 /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(151): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#90 /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#91 /www/html/public/index.php(64): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#92 {main}

Environment

Host Details
OS Information linux x86_64
Total CPU 4
Total memory 8.2 GB
Engine Details
Version 19.03.4
Volume Plugins local
Network Plugins bridge, host, ipvlan, macvlan, null, overlay

Possible fixes

I saw you upgraded php to 8 on the 1.14.0 release. Also saw some chatter on the Freescout issues about LDAP breaking on some php version changes around this time as well. I assume dropping back down to 7.3 would temporarily fix this?

I understand Freescout claims to support php versions >7.1 so if this is something I need to create an issue with over there let me know.

Also great work appreciate you maintaining this image. Thanks

Error: imap_fetchheader(): Bad message number

Summary

Some days ago I started to recibe notifications from a misconfigured marketing campaign misconfigured into one of the inboxes handled by Freescout.
Around 105K emails notifications received during couple of days in non-stop manner.
Freescout started to spit errors. About 400-500 errors, not so many taking in care the mail overflow.

Now the mailbox is stuck, not fetching any message.
Looking at the log records I can find every ~5minutes :

--
date | Error fetching email | Error: imap_fetchheader(): Bad message number; File: /www/html/vendor/webklex/laravel-imap/src/IMAP/Query/Query.php (189) | affected-mailbox

Guess this is related to the amount of emails pending to be read that makes the function to fail

Note: I am using the freescout docker image:1.12.3

UNRAID - Starting PHP-FPM stuck in loop when restarting

Summary

If I stop the docker and restart the docker, it won't start. It will be stuck in an infinite loop with Starting php-fpm. I use the docker in Unraid. If I force the docker to update, it will finally start.

I tried with the latest, latest 7.4 and latest 7.3. I have this bug everywhere.

Steps to reproduce

Stop the docker, wait for it to be stop and then, restart it.

What is the expected correct behavior?

It should start.

Relevant logs and/or screenshots

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] 00-functions: applying...
[fix-attrs.d] 00-functions: exited 0.
[fix-attrs.d] 01-s6: applying...
[fix-attrs.d] 01-s6: exited 0.
[fix-attrs.d] 02-zabbix: applying...
[fix-attrs.d] 02-zabbix: exited 0.
[fix-attrs.d] 03-logrotate: applying...
[fix-attrs.d] 03-logrotate: exited 0.
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 00-startup: executing...
2021-11-10-10:03:36 �[100m[NOTICE]�[49m ** [container-init] Detected Container that has been restarted - Cleaning '/tmp/state' files
[cont-init.d] 00-startup: exited 0.
[cont-init.d] 01-timezone: executing...
[cont-init.d] 01-timezone: exited 0.
[cont-init.d] 02-permissions: executing...
[cont-init.d] 02-permissions: exited 0.
[cont-init.d] 03-monitoring: executing...
2021-11-10-10:03:36 �[100m[NOTICE]�[49m ** [monitoring] Container configured for monitoring with 'zabbix modern'
[cont-init.d] 03-monitoring: exited 0.
[cont-init.d] 04-scheduling: executing...
2021-11-10-10:03:36 �[100m[NOTICE]�[49m ** [scheduling] Container configured for scheduled tasks with 'cron'
[cont-init.d] 04-scheduling: exited 0.
[cont-init.d] 05-logging: executing...
2021-11-10-10:03:36 �[100m[NOTICE]�[49m ** [logging] Disabling Log Shipping Functionality
[cont-init.d] 05-logging: exited 0.
[cont-init.d] 06-messaging: executing...
2021-11-10-10:03:36 �[100m[NOTICE]�[49m ** [messaging] Container configured to route mail via SMTP to 'postfix-relay'
[cont-init.d] 06-messaging: exited 0.
[cont-init.d] 10-nginx: executing...
2021-11-10-10:03:36 �[100m[NOTICE]�[49m ** [nginx] Disable Nginx FastCGI HTTPS Termination Support
[cont-init.d] 10-nginx: exited 0.
[cont-init.d] 11-nginx-config-reload: executing...
[cont-init.d] 11-nginx-config-reload: exited 0.
[cont-init.d] 20-php-fpm: executing...
2021-11-10-10:03:37 �[100m[NOTICE]�[49m ** [php-fpm] PHP-FPM Preparing to start with the following plugins enabled: apcu bcmath bz2 ctype curl dom exif fileinfo gd gnupg iconv imap intl ldap mbstring mysqli mysqlnd opcache openssl pdo pdo_mysql pgsql phar session simplexml tokenizer xml xmlreader xmlwriter zip
[cont-init.d] 20-php-fpm: exited 0.
[cont-init.d] 30-freescout: executing...
2021-11-10-10:03:37 �[42m[INFO]�[49m ** [freescout] Auto Configuring based on Environment Variables
2021-11-10-10:03:38 �[44m[WARN]�[49m ** [freescout] Installing Modules into container
2021-11-10-10:03:38 �[44m[WARN]�[49m ** [freescout] Running any Database Migrations
2021-11-10-10:03:39 �[42m[INFO]�[49m ** [freescout] Initialization Complete. Please visit https://xxxxxxxxxxxxx and login with your credentials..
[cont-init.d] 30-freescout: exited 0.
[cont-init.d] 99-container: executing...
[cont-init.d] 99-container: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
2021-11-10-10:03:39 �[42m[STARTING]�[49m ** [nginx] [1] Starting nginx 1.21.3
2021-11-10-10:03:39 �[42m[STARTING]�[49m ** [monitoring] [1] Starting Zabbix Agent (modern) 5.4.5
2021-11-10-10:03:39 �[42m[STARTING]�[49m ** [php-fpm] [1] Starting php-fpm 8.0.12
2021-11-10-10:03:39 �[42m[STARTING]�[49m ** [scheduling] [1] Starting cron
2021-11-10-10:03:40 �[42m[STARTING]�[49m ** [php-fpm] [2] Starting php-fpm 8.0.12
2021-11-10-10:03:40 �[42m[STARTING]�[49m ** [php-fpm] [2] Starting php-fpm 8.0.12
2021-11-10-10:03:41 �[42m[STARTING]�[49m ** [php-fpm] [3] Starting php-fpm 8.0.12
2021-11-10-10:03:42 �[42m[STARTING]�[49m ** [php-fpm] [4] Starting php-fpm 8.0.12
2021-11-10-10:03:43 �[42m[STARTING]�[49m ** [php-fpm] [5] Starting php-fpm 8.0.12
2021-11-10-10:03:44 �[42m[STARTING]�[49m ** [php-fpm] [6] Starting php-fpm 8.0.12
2021-11-10-10:03:45 �[42m[STARTING]�[49m ** [php-fpm] [7] Starting php-fpm 8.0.12
2021-11-10-10:03:46 �[42m[STARTING]�[49m ** [php-fpm] [8] Starting php-fpm 8.0.12
2021-11-10-10:03:47 �[42m[STARTING]�[49m ** [php-fpm] [9] Starting php-fpm 8.0.12
2021-11-10-10:03:48 �[42m[STARTING]�[49m ** [php-fpm] [10] Starting php-fpm 8.0.12
2021-11-10-10:03:49 �[42m[STARTING]�[49m ** [php-fpm] [11] Starting php-fpm 8.0.12
2021-11-10-10:03:50 �[42m[STARTING]�[49m ** [php-fpm] [12] Starting php-fpm 8.0.12
2021-11-10-10:03:51 �[42m[STARTING]�[49m ** [php-fpm] [13] Starting php-fpm 8.0.12
2021-11-10-10:03:52 �[42m[STARTING]�[49m ** [php-fpm] [14] Starting php-fpm 8.0.12
2021-11-10-10:03:53 �[42m[STARTING]�[49m ** [php-fpm] [15] Starting php-fpm 8.0.12
2021-11-10-10:03:54 �[42m[STARTING]�[49m ** [php-fpm] [16] Starting php-fpm 8.0.12
2021-11-10-10:03:55 �[42m[STARTING]�[49m ** [php-fpm] [17] Starting php-fpm 8.0.12
2021-11-10-10:03:56 �[42m[STARTING]�[49m ** [php-fpm] [18] Starting php-fpm 8.0.12
2021-11-10-10:03:57 �[42m[STARTING]�[49m ** [php-fpm] [19] Starting php-fpm 8.0.12
2021-11-10-10:03:58 �[42m[STARTING]�[49m ** [php-fpm] [20] Starting php-fpm 8.0.12
2021-11-10-10:03:59 �[42m[STARTING]�[49m ** [php-fpm] [21] Starting php-fpm 8.0.12
2021-11-10-10:04:00 �[42m[STARTING]�[49m ** [php-fpm] [22] Starting php-fpm 8.0.12
2021-11-10-10:04:01 �[42m[STARTING]�[49m ** [php-fpm] [23] Starting php-fpm 8.0.12
2021-11-10-10:04:01 �[42m[STARTING]�[49m ** [php-fpm] [23] Starting php-fpm 8.0.12
2021-11-10-10:04:02 �[42m[STARTING]�[49m ** [php-fpm] [24] Starting php-fpm 8.0.12
2021-11-10-10:04:03 �[42m[STARTING]�[49m ** [php-fpm] [25] Starting php-fpm 8.0.12
2021-11-10-10:04:03 �[42m[STARTING]�[49m ** [php-fpm] [25] Starting php-fpm 8.0.12
2021-11-10-10:04:04 �[42m[STARTING]�[49m ** [php-fpm] [26] Starting php-fpm 8.0.12
2021-11-10-10:04:05 �[42m[STARTING]�[49m ** [php-fpm] [27] Starting php-fpm 8.0.12
2021-11-10-10:04:05 �[42m[STARTING]�[49m ** [php-fpm] [27] Starting php-fpm 8.0.12
2021-11-10-10:04:06 �[42m[STARTING]�[49m ** [php-fpm] [28] Starting php-fpm 8.0.12
2021-11-10-10:04:07 �[42m[STARTING]�[49m ** [php-fpm] [29] Starting php-fpm 8.0.12
2021-11-10-10:04:07 �[42m[STARTING]�[49m ** [php-fpm] [29] Starting php-fpm 8.0.12
2021-11-10-10:04:08 �[42m[STARTING]�[49m ** [php-fpm] [30] Starting php-fpm 8.0.12
2021-11-10-10:04:09 �[42m[STARTING]�[49m ** [php-fpm] [31] Starting php-fpm 8.0.12
2021-11-10-10:04:09 �[42m[STARTING]�[49m ** [php-fpm] [31] Starting php-fpm 8.0.12
2021-11-10-10:04:10 �[42m[STARTING]�[49m ** [php-fpm] [32] Starting php-fpm 8.0.12
2021-11-10-10:04:11 �[42m[STARTING]�[49m ** [php-fpm] [33] Starting php-fpm 8.0.12
2021-11-10-10:04:11 �[42m[STARTING]�[49m ** [php-fpm] [33] Starting php-fpm 8.0.12
2021-11-10-10:04:12 �[42m[STARTING]�[49m ** [php-fpm] [34] Starting php-fpm 8.0.12
2021-11-10-10:04:13 �[42m[STARTING]�[49m ** [php-fpm] [35] Starting php-fpm 8.0.12

Environment

  • Image version / tag: latest, latest7.4, latest7.3
  • Host OS: Unraid OS

SMTP Configuration issue

Summary

I saw the other smtp issue in the Issues list in this repo, but that didn't help resolve.

The documentation references to have a clear understanding of the Alpine Linux image at URL: https://github.com/tiredofit/docker-alpine/#smtp-options

This URL also references at out-dated link -

Old link: http://msmtp.sourceforge.net/doc/msmtp.html
Correct link: https://marlam.de/msmtp/msmtp.html

I've spent a few hours trying to set various environment variables in attempts to get the Alpine Linux MSMTP to connect to my mail server (hosted on the same server as Docker), but it fails to send through.

Steps to reproduce

  1. Use no-proxy yaml file
  2. Add any variety of the environment variables referenced to in the documentation (for Dockerfile)
  3. Start up containers
  4. Check /etc/msmtprc
  5. The values never get changed
  6. The postfix-relay host is unknown (Adding to the yaml file with extra_hosts does not help ths)

What is the expected correct behavior?

Correct behavior is one of the following:

  1. Send mail without any authentication (I configured the smtp server to accept from 172 addresses)
  2. Send mail with LOGIN authentication and TLS (no check certificate)

Relevant logs and/or screenshots

Environment

  • Image version / tag: Version 2 latest
  • Host OS: Linux CentOS 7
docker-compose.yml [gregg@xxxxxx docker-freescout]$ cat docker-compose.yml version: '2'

services:
freescout-app:
image: tiredofit/freescout
container_name: freescout-app
ports:
- 10080:80
links:
- freescout-db
volumes:
### If you want to perform customizations to the source and have access to it, then uncomment this line - This includes modules
# - /data/plabsorg/freescout-app/data:/www/html
### Or, if you just want to use Stock Freescout and hold onto persistent files like cache and session use this, one or the other.
- /data/xxxxxx/freescout-app/data:/data
### If you want to just keep the original source and add additional modules uncomment this line
#- ./modules:/www/html/Modules
- /data/xxxxxx/freescout-app/logs:/www/logs

environment:
- ZABBIX_HOSTNAME=freescout-app

- DB_HOST=freescout-db
- DB_NAME=freescout
- DB_USER=freescout
- DB_PASS=freescout

- SITE_URL=http://www.xxxxxx.org:10080
- [email protected]
- ADMIN_PASS=password
- ENABLE_SSL_PROXY=FALSE
- DISPLAY_ERRORS=TRUE
- TIMEZONE=America/Los_Angeles
restart: always
extra_hosts:
  - "postfix-relay:172.17.0.1"

freescout-db:
image: tiredofit/mariadb
container_name: freescout-db
volumes:
- /data/xxxxxx/freescout-db/db:/var/lib/mysql
environment:
- ROOT_PASS=password
- DB_NAME=freescout
- DB_USER=freescout
- DB_PASS=freescout

  - ZABBIX_HOSTNAME=freescout-db
restart: always
extra_hosts:
  - "smtp-relay:127.0.0.1"

freescout-db-backup:
container_name: freescout-db-backup
image: tiredofit/db-backup
links:
- freescout-db
volumes:
- /data/xxxxxx/freescout-db-backup/dbbackup:/backup
environment:
- ZABBIX_HOSTNAME=freescout-db-backup
- DB_HOST=freescout-db
- DB_TYPE=mariadb
- DB_NAME=freescout
- DB_USER=freescout
- DB_PASS=freescout
- DB_DUMP_FREQ=1440
- DB_DUMP_BEGIN=0000
- DB_CLEANUP_TIME=8640
- COMPRESSION=BZ
- MD5=TRUE
restart: always
extra_hosts:
- "smtp-relay:127.0.0.1"

freescout screenshot 2021-05-22_02-05-17

Possible fixes

Trying from a docker exec session using sendmail still not working... Still troubleshooting...

PHP Fatal error: Allowed memory size of 134217728 bytes exhausted

Should increase memory limit of the php-fpm pool.

[28-Nov-2020 01:18:18] WARNING: [pool www] child 1534 said into stderr: "NOTICE: PHP message: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 98566192 bytes) in /www/html/vendor/symfony/console/Output/BufferedOutput.php on line 39"

Redirecting to login

Hi all,

I am trying to start the freescout for the first time and when I type the APP_URL on browser I get too many redirections.

I tried to curl direct from inside of freescout-app (exec bash) and I get the same redirection:

bash-5.0# curl localhost/login
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="refresh" content="0;url=https://freescout.mydomain.com/login" />

        <title>Redirecting to https://freescout.mydomain.com/login</title>
    </head>
    <body>
        Redirecting to <a href="https://freescout.mydomain.com/login">https://freescout.mydomain.com/login</a>.
    </body>
</html>bash-5.0#

on nginx logs:

- - - [18/Nov/2020:04:51:01 +0200]  "GET /login HTTP/1.1" 302 280 "-" "curl/7.69.1"
- - - [18/Nov/2020:05:08:39 +0200]  "GET / HTTP/1.1" 302 420 "-" "curl/7.68.0"
- - - [18/Nov/2020:05:08:43 +0200]  "GET /login HTTP/1.1" 302 420 "-" "curl/7.68.0"
- - - [18/Nov/2020:05:29:12 +0200]  "GET / HTTP/1.1" 302 420 "-" "curl/7.68.0"
- - - [18/Nov/2020:05:29:56 +0200]  "GET / HTTP/1.1" 302 420 "-" "curl/7.69.1"
- - - [18/Nov/2020:05:39:19 +0200]  "GET / HTTP/1.1" 302 420 "-" "curl/7.68.0"
- - - [18/Nov/2020:05:40:14 +0200]  "GET /login HTTP/1.1" 302 420 "-" "curl/7.69.1"```

any ideas?

Thanks!

Lost credentials for mailbox and modules

I deployed freescout using a variation of the docker-compose-no-proxy yml file. I configured a mailbox and enabled the LDAP module. When version 1.6.8 came out, I did the following to update to the new version:

docker-compose pull
docker-compose up -d

After the containers started, freescout was at the latest version (1.6.8) however, the passwords stored for the mailboxes were lost and the Ldap module shows as activated but it doesn't show in the settings.

When I deactivated the LDAP module and reactivated it, the module showed in the settings but its stored BIND password was missing.

Is cron configured for fetching of emails?

Can't see anything that looks like it in the dockerfile?

from /system/status
Make sure that you have the following line in your crontab:

* * * * * php /www/html/artisan schedule:run >> /dev/null 2>&1

Can there be a version without all of the extras like Zabbix?

Just looking for a vanilla Freescout image with PHP Artisan still properly included in the container so that its easy to preform maintainance operations such as resetting the admin account because the current environment variables aren't working.

Send Test mail

Summary

Test send mail fails unless configuration has been saved

Steps to reproduce

1.Go to Manage -> Mail settings
2. Set fields
- Mail From: [email protected]
- Send Method: SMTP
- SMTP Server: mtaserver.yourdomain
- Port: 25
- Encryption: None
- Send Test To: destination@anydomain
3. Press "Send Test" button

What is the expected correct behavior?

Try to send email using indicated "Send Method" (no need no save config for a test)

It tries previously configured method

Relevant logs and/or screenshots

WARNING: [pool www] child 2476 said into stderr: "sendmail: could not send mail (account default from /etc/msmtprc)"

Environment

  • Image version / tag: tiredofit/freescout:1.15.16
  • Host OS:
Any logs | docker-compose.yml

Possible fixes

E-Mail Fetching After Upgrade

I have a Docker Container running FreeScout v 1.7.3 (So FreeScout v 1.5.2). I've been trying to upgrade the container for a while, and whenever I do, the container stops downloading/importing new emails. The Fetch E-Mail Command runs, but it doesn't detect any new emails. though it doesn't error and no emails show up in the help desks. I can't find any answers in the log either. (I'm using snapshots on a VM so I can always revert to my working version and it starts picking up the emails again.

Any ideas on where to look to find out why it's not picking up the emails after an upgrade?

Tags enabled mail box give whoops

When I updated the docker to Freescout version 1.4.11 i could activate the tags module. After is was activated my mailbox didden't work and gave "whoops, an error occurred". I don't know if this is an error in the docker container or of freescout it self?

How to use db-backup?

Hi @tiredofit ,

first of all thanks for the great repository! I'm running FreeScout now for several days without any issues so far. I really love it!

Can you please explain what is the environment variable DB_CLEANUP_TIME meant for?

I would also like to know how use that backup in case of an emergency. I mean it's great to have a backup but it's not much worth if you don't know how to import it. Is there any documentation available?

Best,
Sven

About setting subdirectories in URLs

I know I should probably check with the official side, but let me check here first.

We want to provide access in the form of routing to subdirectories (https://example.com/freescout/), not subdomains.

However, since the display collapses even when using SITE_URL=https://example.com/freescout/, am I correct in assuming that it cannot be made to work completely as is?

54 199 9 234-2021 01 15-16_13_34

Also, does this need to be tweaked in the nginx config file?

App fails to use existing database. Terminates abnormally.

Summary

1.15.8 seems to ignore the existing database and proceeds to start from scratch. Locking compose to 1.15.7 works as expected.

Steps to reproduce

$ docker-compose pull
$ docker-compose up

when image set to :latest when latest is 1.15.8

What is the expected correct behavior?

Normal migration and startup.

Relevant logs and/or screenshots

freescout-app          | [cont-init.d] 30-freescout: executing...
freescout-app          | 2021-07-21-16:06:48 [WARN] ** [freescout] Potential New Installation / Standalone Installation Detected - Copying Freescout Sourcecode
freescout-app          | 2021-07-21-16:06:48 [WARN] ** [freescout] Detected /data directory. Persistently saving settings/sessions/cache/uploads/modules
freescout-app          | 2021-07-21-16:06:49 [INFO] ** [freescout] Skipping Auto configuration and using in place .env
freescout-app          | 2021-07-21-16:06:49 [WARN] ** [freescout] Detected empty Database - Setting up - Please wait..

Environment

  freescout-app:
    image: tiredofit/freescout:latest
    container_name: freescout-app
    links:
      - freescout-db
    volumes:
      - ./data:/data
      - ./logs:/www/logs
    environment:
      VIRTUAL_HOST: ******************
      VIRTUAL_PORT: 80
      LETSENCRYPT_HOST: *******************
      LETSENCRYPT_EMAIL: ******************
      ZABBIX_HOSTNAME: freescout-app

      DB_HOST: freescout-db
      DB_NAME: freescout
      DB_USER: freescout
      DB_PASS: freescout

      SITE_URL: 'https://************'
      ADMIN_EMAIL: ***************
      ADMIN_PASS: ***********
      ENABLE_SSL_PROXY: 'FALSE'
      DISPLAY_ERRORS: 'FALSE'
      TIMEZONE: America/Toronto
      ENABLE_AUTO_UPDATE: 'TRUE'
    networks:
      - 'net'
    restart: unless-stopped

  • Image version / tag: 1.15.8
  • Host OS: Ubuntu 20.04.2 LTS

There is also some issue with one of the initialization scripts. It complains about an errant fi and the app process stops.

Can't fetch emails over IMAP

[2019-07-31 14:29:10] Mailbox: Tech Support
[2019-07-31 14:29:10] Error: imap_open(): Couldn't open stream {imap.gmail.com:993/imap/ssl}. Certificate failure for imap.gmail.com: self signed certificate: /OU=No SNI provided; please fix your client./CN=invalid2.invalid; File: /www/html/vendor/webklex/laravel-imap/src/IMAP/Client.php (230)
[2019-07-31 14:29:10] Fetching finished

Installation using recommended nginx-proxy and ssl containers, using a modified version of the docker-compose.yml to start everything up.

version: '2'

services:

  freescout-app:
    image: tiredofit/freescout
    container_name: freescout-app
    links:
      - freescout-db
    volumes:
      - ./logs/:/www/logs
    environment:
      - VIRTUAL_HOST=freescout.domain.com.au
      - VIRTUAL_NETWORK=nginx-proxy
      - VIRTUAL_PORT=80
      - LETSENCRYPT_HOST=freescout.domain.com.au
      - [email protected]

      - ZABBIX_HOSTNAME=freescout-app

      - DB_HOST=freescout-db
      - DB_NAME=freescout
      - DB_USER=freescout
      - DB_PASS=freescout

      - SITE_URL=https://freescout.domain.com.au
      - [email protected]
#      - ADMIN_PASS=freescout
      - ENABLE_SSL_PROXY=TRUE
      - DISPLAY_ERRORS=FALSE
      - TIMEZONE=Australia/Melbourne
    env_file:
      - .env
    networks:
      - proxy-tier
    restart: always

  freescout-db:
    image: tiredofit/mariadb
    container_name: freescout-db
    volumes:
      - ./db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_DATABASE=freescout
      - MYSQL_USER=freescout
      - MYSQL_PASSWORD=freescout

      - ZABBIX_HOSTNAME=freescout-db
    env_file:
      - .env
    networks:
      - proxy-tier
    restart: always

  freescout-db-backup:
    image: tiredofit/db-backup
    container_name: freescout-db-backup
    links:
     - freescout-db
    volumes:
      - ./dbbackup:/backup
    environment:
      - ZABBIX_HOSTNAME=freescout-db-backup
      - DB_HOST=freescout-db
      - DB_TYPE=mariadb
      - DB_NAME=freescout
      - DB_USER=freescout
      - DB_PASS=freescout
      - DB_DUMP_FREQ=1440
      - DB_DUMP_BEGIN=0000
      - DB_CLEANUP_TIME=8640
      - COMPRESSION=BZ
      - MD5=TRUE
    env_file:
      - .env
    networks:
      - proxy-tier
    restart: always

networks:
  proxy-tier:
    external:
      name: nginx-proxy_default

Initial setup proceeds, even without database

Summary

When setting up freescout for the first time, no error is detected if the database does not exist

Steps to reproduce

  • Set up a working MySQL server, with no existing database
  • Pass the arguments to freescout container:
    DB_HOST: remote-host
    DB_USER: root
    DB_PASS: root's secret
    DB_NAME: anything_thatdoesnt_exist
  • Track freescout correctly seeing the database engine is alive, and performing initial setup
  • Webpage will give SQL errors when logging in

Next, stop freescout, create the database, restart freescout and everything just works

What is the expected correct behavior?

Freescout should attempt to create the database, or fail completely

Relevant logs and/or screenshots

Sorry, didnt catch any, was very surprised this happened 🍡

Environment

  • Image version / tag: latest
  • Host OS: Ubuntu 20.04.3 LTS
  • Kubernetes v1.19.12, database running in a different namespace
Any logs | docker-compose.yml deployment yaml: ```

apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "6"
creationTimestamp: "2021-10-26T10:06:12Z"
generation: 6
name: freescout
namespace: desk
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: freescout
strategy:
rollingUpdate:
maxSurge: 0
maxUnavailable: 100%
type: RollingUpdate
template:
metadata:
labels:
app: freescout
spec:
containers:
- env:
- name: DB_HOST
value: testdb.db
- name: DB_NAME
value: freescout
- name: DB_USER
value: root
- name: DB_PASS
value: SuchASecret
- name: DISPLAY_ERRORS
value: "true"
- name: SITE_URL
value: http://my.url
- name: DB_PORT
value: "6446"
- name: ADMIN_EMAIL
value: [email protected]
- name: ADMIN_PASS
value: SuchASecret
image: tiredofit/freescout
imagePullPolicy: Always
name: freescout
resources:
limits:
cpu: 500m
memory: 512M
requests:
cpu: 500m
memory: 512M
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /data
name: freescout-94234348-eebe-4b0b-bcd2-9e867cc4e373
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: freescout-94234348-eebe-4b0b-bcd2-9e867cc4e373
persistentVolumeClaim:
claimName: freescout-94234348-eebe-4b0b-bcd2-9e867cc4e373

</details>

<!-- Include anything additional -->
    
### Possible fixes
<!-- If you can, provide details to the root cause that might be responsible for the problem. -->

Profile pictures not working

I was able to make them work creating this symlink inside the container:

ln -s /www/html/storage/app/public/ /www/html/public/storage

but probably there is a better solution.

Problems configuring smtp

I tried different Methods to configure the smtp.

First I used the SMTP-Method in Freescout but there I always get a timeout.

Then I tried the built-in smtp configuration of the alpine container. Sending mails within the console works but not on freescout either. It is saying something about emtpy response.

Is there something wrong in freescout. Does anybody has an idea how to debug any further?

Issue with 1.15.1

Summary

I run freescout on kubernetes, today i upgraded my cluster, so freescout and mariadb was restarted.
After it came up, i can login, I can see the different emails but if i click on any email i get "something went wrong"
When setting version tag to 1.14.4 it all works again. but would be nice to be able to use latest

Relevant logs and/or screenshots

In the console of mariadb there are no errors, but in freescout it says

PHP Startup: Unable to load dynamic library 'gnupg.so' (tried: /usr/lib/php8/modules/gnupg.so (Error loading shared library libgpgme.so.11: No such file or directory (needed by /usr/lib/php8/modules/gnupg.so)), /usr/lib/php8/modules/gnupg.so.so (Error loading shared library /usr/lib/php8/modules/gnupg.so.so: No such file or directory)) in Unknown on line 0
Cannot load Zend OPcache - it was already loaded

and

PHP Warning:  PHP Startup: Unable to load dynamic library 'gnupg.so' (tried: /usr/lib/php8/modules/gnupg.so (Error loading shared library libgpgme.so.11: No such file or directory (needed by /usr/lib/php8/modules/gnupg.so)), /usr/lib/php8/modules/gnupg.so.so (Error loading shared library /usr/lib/php8/modules/gnupg.so.so: No such file or directory)) in Unknown on line 0

not sure if one of those is the reason, so I tried setting APP_DEBUG=true in hopes that would give me an error I could understand, but I just get presented with below, and it makes no sense to me
image

  • Image version / tag: latest ( 1.15.1 at that time )

I originally made the issue at freescout by mistake. But they where nice enough to tell, that there might be missing gnupg PHP extension ?

Only require ADMIN_ variables on first setup of DB

Summary

Some people want to remove the ADMIN_PASSWORD (and maybe other ADMIN_ variables) from their docker-compose.yml, after first setup. Either because they changed it anyways, so it's not relevant anymore or because they don't like passwords flying around in config files. Now if you do this and later restart your server or the freescout-app container it fails to start.

Steps to reproduce

  1. Set ADMIN_PASSWORD etc
  2. Setup freescout
  3. Remove ADMIN_PASSWORD from docker-compose.yml
  4. Restart freescout-app or your whole docker-compose deploy or your whole server
  5. Now freescout-app fails silently and you have to got into the logs to find out it's missing ADMIN_PASSWORD which is not even relevant anymore

What is the expected correct behavior?

Either accept that the ADMIN_PASSWORD is missing and just ignore it when the DB is already set up and/or make the container fail to start, so that it's clear to the user, that something went wrong in the freescout-app container and they should look into the logs.

Relevant logs and/or screenshots

Output I found in the logs of the container running but silently failed because of the missing ADMIN_PASSWORD:

freescout-app          | [ERROR] ** [freescout] No 'Admin Password' Entered! - Set '$ADMIN_PASS'

Environment

  • Image version / tag: 1.14.1
  • Host OS: Ubuntu 18.04.5 LTS

Possible fixes

As I already said in expected behavior:

  • Ignore the missing ADMIN_ vars if db was set up already and make the container start up fail if they are missing on DB creation

or

  • Let the container startup at least really fail, so that it's clear to the user something went wrong inside the container

MariaDB container not starting on mac

It keeps failing on Mac with following error:

freescout-db     | ** [mariadb] Starting MariaDB 10.3.9
freescout-db     | 2019-02-26 13:59:55 0 [Note] /usr/bin/mysqld (mysqld 10.3.9-MariaDB) starting as process 1726 ...
freescout-db     | 2019-02-26 13:59:55 0 [Note] InnoDB: Using Linux native AIO
freescout-db     | 2019-02-26 13:59:55 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
freescout-db     | 2019-02-26 13:59:55 0 [Note] InnoDB: Uses event mutexes
freescout-db     | 2019-02-26 13:59:55 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
freescout-db     | 2019-02-26 13:59:55 0 [Note] InnoDB: Number of pools: 1
freescout-db     | 2019-02-26 13:59:55 0 [Note] InnoDB: Using SSE2 crc32 instructions
freescout-db     | 2019-02-26 13:59:55 0 [Note] InnoDB: Initializing buffer pool, total size = 256M, instances = 1, chunk size = 128M
freescout-db     | 2019-02-26 13:59:55 0 [Note] InnoDB: Completed initialization of buffer pool
freescout-db     | 2019-02-26 13:59:55 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
freescout-db     | 2019-02-26 13:59:55 0 [ERROR] InnoDB: The Auto-extending innodb_system data file './ibdata1' is of a different size 0 pages than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages!
freescout-db     | 2019-02-26 13:59:55 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
freescout-db     | 2019-02-26 13:59:56 0 [Note] InnoDB: Starting shutdown...
freescout-db     | 2019-02-26 13:59:56 0 [ERROR] Plugin 'InnoDB' init function returned error.
freescout-db     | 2019-02-26 13:59:56 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
freescout-db     | 2019-02-26 13:59:56 0 [ERROR] Could not open mysql.plugin table. Some plugins may be not loaded
freescout-db     | 2019-02-26 13:59:56 0 [ERROR] Unknown/unsupported storage engine: InnoDB
freescout-db     | 2019-02-26 13:59:56 0 [ERROR] Aborting

PHP-fpm starting loop

In the :latest tag of the Docker image (1.8.0) Freescout can't start.

It's stuck in a start loop of php-fpm. Tested it with the example docker-compose file without proxy. Output of docker-compose up
Using the 1.7.12 tag works fine.

freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 
freescout-app          | [INFO] ** [php-fpm] Starting php-fpm 

And keeps going.

[freescout] MySQL/MariaDB Server 'freescout-db' is not accessible, retrying..

Summary

We're currently trying to install Freescout on a test server before putting it in production, and we have the following error :
[freescout] MySQL/MariaDB Server 'freescout-db' is not accessible, retrying..
The database is running fine

Steps to reproduce

  • Deploy using the docker-compose.yml
  • Start the stack

What is the expected correct behavior?

The DB should be found

Relevant logs and/or screenshots

[freescout] MySQL/MariaDB Server 'freescout-db' is not accessible, retrying..

docker-compose.yml
version: '3.3' services: freescout-app: image: tiredofit/freescout:latest labels: traefik.http.routers.freescout.middlewares: freescout-https-redirect traefik.http.routers.freescout.rule: Host() traefik.http.services.freescout.loadbalancer.server.port: '80' traefik.http.middlewares.freescout-https-redirect.redirectscheme.scheme: https traefik.http.routers.freescouts.entrypoints: https traefik.http.routers.freescout.entrypoints: http traefik.http.routers.freescouts.service: freescout-app traefik.http.routers.freescouts.tls.certresolver: http traefik.http.routers.freescouts.rule: Host() traefik.http.routers.freescouts.tls: 'true' traefik.docker.network: traefik_default traefik.enable: 'true' environment: ADMIN_EMAIL: ****** ADMIN_PASS: ****** DB_HOST: freescout-db DB_NAME: freescout DB_PASS: ****** DB_PORT: '33062' DB_USER: ****** DISPLAY_ERRORS: 'FALSE' ENABLE_SSL_PROXY: 'FALSE' SITE_URL: ****** TIMEZONE: Europe/Paris ports: - 30129:80 volumes: - /home/******/freescout/data:/data - /home/******/freescout/logs:/www/logs networks: - freescout - traefik_default logging: driver: json-file freescout-db: image: tiredofit/mariadb:latest environment: DB_NAME: freescout DB_PASS: ****** DB_USER: ****** ROOT_PASS: ****** ports: - 33062:3306 volumes: - /home/******/freescout/db:/var/lib/mysql networks: - freescout logging: driver: json-file freescout-db-backup: image: tiredofit/db-backup:latest environment: COMPRESSION: BZ DB_CLEANUP_TIME: '8640' DB_DUMP_BEGIN: '0000' DB_DUMP_FREQ: '1440' DB_HOST: freescout-db DB_NAME: ****** DB_PASS: ****** DB_TYPE: mariadb DB_USER: ****** MD5: 'TRUE' networks: - freescout logging: driver: json-file networks: freescout: driver: overlay traefik_default: external: true

Environment

  • Image version / tag: latest
  • Host OS: Ubuntu 18.04.5 LTS
Any logs | docker-compose.yml

Possible fixes

ngnix conf wrong attachment localtion

In /etc/ngnix/conf.d/default.conf is the wrong location

This is what is should

location ^~ /storage/app/attachment/ {
    internal;
    alias /www/html/storage/app/attachment/;
}

Support non-dockerized reverse proxies

We're having trouble getting docker-freescout to run in an environment where the reverse proxy runs out-of-docker.

nginx and certbot are already installed on that host; we don't use them via docker. Hence, we chose to set up the no-proxy configuration and quickly noticed that all the URLs start with http: instead of https:, making login attempts fail [1] due to some scripts not loading.

What we then tried to do was to set ENABLE_SSL_PROXY=TRUE, though that caused our freescout subdomain to get caught in an infinite 302 loop redirecting to itself.

@tiredofit: Is there a way to make your container work in such an environment?


[1] This bug has already been described in freescout-helpdesk/freescout#502.

migrations not running

I was struggling to get imap emails setup and enabled errors to see that the sql table was missing columns i tried going into the container and running

php artisan migrate 

but received these errors:

In AbstractMySQLDriver.php line 115:

  An exception occurred while executing 'SELECT COLUMN_NAME AS Field, COLUMN_TYPE AS Type, IS_NULLABLE AS `Null`, COL
  UMN_KEY AS `Key`, COLUMN_DEFAULT AS `Default`, EXTRA AS Extra, COLUMN_COMMENT AS Comment, CHARACTER_SET_NAME AS Cha
  racterSet, COLLATION_NAME AS Collation FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'freescout' AND TABLE_N
  AME = 'send_logs'':

  SQLSTATE[HY000]: General error: 1036 Table '/tmp/#sql_437_0.MAI' is read only


In PDOConnection.php line 106:

  SQLSTATE[HY000]: General error: 1036 Table '/tmp/#sql_437_0.MAI' is read only


In PDOConnection.php line 104:

  SQLSTATE[HY000]: General error: 1036 Table '/tmp/#sql_437_0.MAI' is read only

storage/logs/ owned by root

after a new pull form the image the folder /data/storage/logs/ is owned by root nd not by ngnix:www-data as it should be.

Email displayed as Base64

I have received a verification email for Sipgate, but it shows up as garbled Base64 in FreeScout:

grafik

The relevant email headers are as follows:

Content-Transfer-Encoding: binary
Content-Type: multipart/mixed; boundary="_----------=_16105471612343704"
Encoding: quoted-printable
MIME-Version: 1.0
Date: Wed, 13 Jan 2021 15:12:41 +0100
Subject: =?UTF-8?Q?Best=C3=A4tigung=20Ihrer=20E=2D?= =?UTF-8?Q?Mail=2DAdresse?=
X-Tmpl: register_panama_pending
To: admin@...
From: sipgate basic <[email protected]>

--_----------=_16105471612343704
Content-Transfer-Encoding: binary
Content-Type: multipart/alternative; boundary="_----------=_16105471612343705"
MIME-Version: 1.0
X-Mailer: MIME::Lite 3.030 (F2.85; A2.13; B3.14; Q3.13)
Date: Wed, 13 Jan 2021 15:12:41 +0100

This is a multi-part message in MIME format.

--_----------=_16105471612343705
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=utf-8
MIME-Version: 1.0
X-Mailer: MIME::Lite 3.030 (F2.85; A2.13; B3.14; Q3.13)
Date: Wed, 13 Jan 2021 15:12:41 +0100

... (plain text version)

--_----------=_16105471612343705
Content-Disposition: inline
Content-Length: 3986
Content-Transfer-Encoding: binary
Content-Type: text/html; charset=utf-8
MIME-Version: 1.0
X-Mailer: MIME::Lite 3.030 (F2.85; A2.13; B3.14; Q3.13)
Date: Wed, 13 Jan 2021 15:12:41 +0100

<p>Bestätigung Ihrer E-Mail-Adresse</p>
... (HTML version)

Clarification requried for proper update/upgrade

I didn't figured out one of my deploys didn't stick into a specific version, using the tiredofit/freescout:latest image tag by mistake.

Needed to upgrade to the latest version and just updated the image tag name and restarted Freescout container.
ENABLE_AUTO_UPDATE = true but database was deleted after restart the container with 1.12.3 tag
Of course data is stored on persistent volumes:

    "Mounts": [
        {
            "Type": "volume",
            "Name": "freescout-data",
            "Source": "/var/lib/docker/volumes/freescout-data/_data",
            "Destination": "/data",
            "Driver": "local",
            "Mode": "rw",
            "RW": true,
            "Propagation": ""
        },
        {
            "Type": "volume",
            "Name": "freescout-logs",
            "Source": "/var/lib/docker/volumes/freescout-logs/_data",
            "Destination": "/www/logs",
            "Driver": "local",
            "Mode": "rw",
            "RW": true,
            "Propagation": ""
        }
    ],
    "Volumes": {
        "/data": {},
        "/www/logs": {}
    },

I put it back to production after few minutes restoring the just-in-case-backup.
Some of the modules installed showed up a message about module's new updates available; I updated all of them.

Didn't found update coverage in the doc. Would be great a bit more of detail about the right procedure of upgrading.

Great application, btw

1.14.3 tagged but not on docker hub

Summary

Version 1.14.3 was tagged 17 days ago, but it wasn't uploaded to docker hub.

Steps to reproduce

  1. Look at tags
  2. Find 1.14.3
  3. Look at docker hub
  4. Find 1.14.1 as latest tagged release

What is the expected correct behavior?

Find the same release tagged in the git repo on docker hub.

Possible fixes

Looks like you manually have to start the CI to upload a release, maybe run those task automatically every time a new tag gets pushed?

Can't get it to work properly

I've cloned the docker-freescout project and sat SITE_URL to '127.0.0.1' and then run the no-proxy yml file with docker-compose.

When I then try to go on localhost/127.0.0.1 I got the "Sorry, the page you are looking for could not be found." 404 site.

This is with the

./data:/data

volume line in the docker-compose file. If I try with

./data:/www/html

I get a different error when trying to connect. It tells me this:

image

In both cases I can go to 127.0.0.1/tools.php just fine, but index and login.php I can't

What am I doing wrong?

Unable to run on Raspberry Pi

I was pleased to see that since 1.12.4 you have been compiling Docker images for ARM - however, they don't seem to work.

On my Raspberry Pi I'm getting this:

$ docker run tiredofit/freescout
standard_init_linux.go:219: exec user process caused: exec format error

The same thing happens when I specify a version - so far I've tried 1.12.7, 1.12.8, 1.12.9, 1.12.10, 1.12.11, 1.13.0, 1.13.1, 1.13.2 and 1.13.3. After that I got bored and gave up!

This is normally caused by an architecture issue. I'm afraid I have nothing more to go on than that - have you tested it on a Pi / other ARM platform? Mine is a Raspberry Pi 4 so relatively new and certainly powerful enough to run Freescout (it already runs ownCloud and Bookstack).

Any assistance gratefully received.

Empty DB after update

Summary

I pulled the latest mariadb and freescout images. The result ended up with mariadb showing empty. I persist mariadb to db volume.

possibility to add the libxml extension to support the 2FA module

Hi,
would it be possible to add the libxml extension into the image?
We use the 2FA Module which has this extension as a requirement.

The error thrown in the log is as following:
You need to install the libxml extension to use this back end {"userId":123,"email":"[email protected]","exception":"[object] (BaconQrCode\\Exception\\RuntimeException(code: 0): You need to install the libxml extension to use this back end at /data/Modules/TwoFactorAuth/vendor/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php:46)...

Regards, Thomas

Error in building the container

Wiping on Reboot

Everytime the docker restarts is wipes the database, treating it as a first time install. Meaning all data is lost with every reboot

failing to load scripts

Hi! thanks for making a docker image for this.

I'm trying to integrate this into our docker stack ( https://github.com/btcpayserver/btcpayserver-docker), where we use nginx and the lets encrypt companion. I've set up nginx to load this at a subpath of our main domain, and the login page does show up but noneof the scripts and styles load and give the following error in the console:

Loading failed for the <script> with source “https://payjoin.kukks.org/freescout/js/builds/20930ab83e62f6d3f1e94be59e56cb7122231847977.js”.

You can see the issue at https://payjoin.kukks.org/freescout

In Nginx, we're using the following config:

{{ if (eq $serviceName "freescout") }}
	location /freescout/ {
		proxy_set_header Connection "";
		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-Host   $host:443;
		proxy_set_header        X-Forwarded-Server $host;
		proxy_set_header        X-Forwarded-Port   443;
		proxy_set_header        X-Forwarded-Proto  https;
		proxy_pass http://freescout;
	}
{{ end }}

and this is the freescout docker config

  freescout:
    image: tiredofit/freescout
    container_name: freescout
    environment:
      - DB_HOST=freescout-db
      - DB_NAME=freescout
      - DB_USER=freescout
      - DB_PASS=freescout
      - SITE_URL=${BTCPAY_PROTOCOL:-https}://${BTCPAY_HOST}/freescout
      - [email protected]
      - [email protected]
      - ENABLE_SSL_PROXY=TRUE
      - DISPLAY_ERRORS=TRUE
    links:
      - freescout-db
    expose:
      - "80"
    volumes:
      - "freescout_rootdir:/www/html"
      - "freescout_logsdir:/www/logs"

Branch with freescout integration: https://github.com/btcpayserver/btcpayserver-docker/tree/freescout

Freescout on Synology Nas

I'm trying to install freescout on my Synology NAS via Docker as I cant manage to intall it on my mutualised web hosting @ 1&1

When I'm trying to run the Docker image, I'm facing this error : The following scripts in '/etc/cont-init.d' did not pass their completion check

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.