GithubHelp home page GithubHelp logo

intermesh / docker-groupoffice Goto Github PK

View Code? Open in Web Editor NEW
23.0 11.0 13.0 244 KB

Docker image for Group-Office groupware

Home Page: https://www.group-office.com

License: MIT License

Shell 35.23% Smarty 6.39% Dockerfile 58.38%
docker-image groupware crm

docker-groupoffice's Introduction

Group-Office Docker image

Group-Office is an open source groupware system. More information can be found at https://www.group-office.com.

I recommend using this with docker compose.

Using docker compose

Clone this repository and run from inside the directory:

docker compose up -d

Then launch your browser to http://localhost:9000 and the Group-Office installer should appear.

Cron job

You should also configure a cron job on the host machine so that Group Office can run scheduled tasks.

On Linux create a file /etc/cron.d/groupoffice and add (replace /path/to/docker-groupoffice):

* * * * * root cd /path/to/docker-groupoffice && docker compose exec -T groupoffice php /usr/local/share/groupoffice/cron.php

On MacOS I ran on the terminal:

crontab -e

And added:

* * * * * cd /path/to/docker-groupoffice && docker compose exec -T groupoffice php /usr/local/share/groupoffice/cron.php

Upgrading

Navigate in the folder with docker-compose.yml and pull the image:

docker compose pull

Bring the containers down:

docker compose down

Then start them again:

docker compose up -d

Then run http://localhost:9000/install/upgrade.php

SSL Certificates

SSL is enabled by default but it uses a self-signed certificate. You can use a real certificate by mounting /etc/ssl/groupoffice. You can find an example in the docker-compose.yml file.

Put your certificates there and the /etc/apache2/sites-enabled/000-default.conf will include a config file /etc/ssl/groupoffice/apache.conf. You can put the SSL directives in that file. For example:

SSLCertificateKeyFile /etc/ssl/groupoffice/certificate.key
SSLCertificateFile /etc/ssl/groupoffice/certificate.crt
SSLCertificateChainFile /etc/ssl/groupoffice/cabundle.crt

HTTP Proxy

When using a HTTP proxy to forward requests to the Docker container you need to set some headers to tell Group-Office about the real hostname. Read more about this here: https://groupoffice.readthedocs.io/en/latest/install/extras/httpproxy.html

Enable debug mode

You can enable debug mode with this command on the host:

docker compose exec groupoffice sed -i "s/config\['debug'\] = false;/config\['debug'\] = true;/" /etc/groupoffice/config.php

Using docker cli

  1. Create a "data" directory (eg. ~/Projects/docker-groupoffice-6.2/data)
  2. Setup a database container that's on the default network
  3. Run this command:
docker run --name groupoffice -d -p 6380:80 -v ~/Projects/docker-groupoffice/data:/var/lib/groupoffice --link go_db:db intermesh/groupoffice

docker-groupoffice's People

Stargazers

 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  avatar  avatar  avatar

docker-groupoffice's Issues

SourceGuardian Loader - This script is expired

I cloned this repo, ran docker-compose up -d and startet the installation-process in the browser. After entering the admin-data, the installing-screen shows up a second and afterwards I get the exception mentioned above.
When I use the image without "testing", everything works fine, except it seems to be the professional edition.
What can I do?

Uncaught exception: ErrorException in /usr/local/share/groupoffice/go/modules/business/finance/convert/Mt940.php at line 2: Uncaught ErrorException: SourceGuardian Loader - This script is expired. Please contact the author of the script regarding this problem. Error code [09] in /usr/local/share/groupoffice/go/modules/business/finance/convert/Mt940.php:2
Stack trace:
#0 [internal function]: go\core\ErrorHandler::errorHandler(256, 'SourceGuardian ...', '/usr/local/shar...', 2)
#1 /usr/local/share/groupoffice/go/modules/business/finance/convert/Mt940.php(2): sg_load('590A3FEBC7C4FCF...')
#2 /usr/local/share/groupoffice/vendor/composer/ClassLoader.php(444): include('/usr/local/shar...')
#3 /usr/local/share/groupoffice/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile('/usr/local/shar...')
#4 [internal function]: Composer\Autoload\ClassLoader->loadClass('go\modules\busi...')
#5 /usr/local/share/groupoffice/go/core/util/ClassFinder.php(223): class_exists('go\modules\busi...')
#6 /usr/local/share/groupoffice/go/core/util/ClassFinder.php(238): go\core\util\ClassFinder->folderToClassNames(Object(go\core\fs\Folder), 'go\modules\busi...')
#7 /usr/local/share/groupoffice/go/core/util/ClassFinder.php(238): go\core\util\ClassFinder->folderToClassNames(Object(go\core\fs\Folder), 'go\modules\busi...')
#8 /usr/local/share/groupoffice/go/core/util/ClassFinder.php(238): go\core\util\ClassFinder->folderToClassNames(Object(go\core\fs\Folder), 'go\modules\busi...')
#9 /usr/local/share/groupoffice/go/core/util/ClassFinder.php(92): go\core\util\ClassFinder->folderToClassNames(Object(go\core\fs\Folder), 'go\modules')
#10 /usr/local/share/groupoffice/go/core/util/ClassFinder.php(153): go\core\util\ClassFinder->find()
#11 /usr/local/share/groupoffice/go/core/util/ClassFinder.php(113): go\core\util\ClassFinder->findBy(Object(Closure))
#12 /usr/local/share/groupoffice/go/core/Module.php(86): go\core\util\ClassFinder->findByParent('go\core\Module')
#13 /usr/local/share/groupoffice/go/core/Installer.php(191): go\core\Module::findAvailable()
#14 /usr/local/share/groupoffice/go/core/Installer.php(161): go\core\Installer->getAutoInstallModules()
#15 /usr/local/share/groupoffice/install/install.php(84): go\core\Installer->install(Array)
#16 {main}
thrown at 2023-09-13T13:03:24+00:00

Sorry, an error occurred: Undefined array key "otpauthenticator"

I have just rebuilt my docker image using the latest version (my previous groupoffice was 6.6) and it asks me to upgrade the database which i did but then on the login screen after trying to login i get the error:

Sorry, an error occurred: Undefined array key "otpauthenticator"

Do I need to install something?

Syntax error in config.php.tpl

In config.php.tpl (see: https://github.com/Intermesh/docker-groupoffice/blob/master/etc/groupoffice/config.php.tpl#L10) there exists a syntax error. $config['business'] => array ( should read $config['business'] = array (, i.e. = instead of =>.

As the default behaviour of the entrypoint is to copy this file onto /etc/groupoffice/config.php, one can only mitigate this problem by building on top of the intermesh/groupoffice image, instead of providing a custom config.

Not existing property ext-comp-####

Hello,

I've installed group office from hub.docker.com.

Then enable the LDAP Authenticator module and restart apache, finally setup LDAP to SAMBA4 active directory mode, but the "Save" button does not working, does not save the configuration.

I was enable debug in config.php and when I hit "Save" button in Authentication config to add new domain I see this error:

[error][go\core\ErrorHandler:64] Exception in /usr/local/share/groupoffice/go/core/data/Model.php at line 256: Not existing property ext-comp-1992 for go\modules\community\ldapauthenticator\model\Server
[error][go\core\ErrorHandler:67] #0 /usr/local/share/groupoffice/go/core/data/Model.php(235): go\core\data\Model->setValue('ext-comp-1992', true)
[error][go\core\ErrorHandler:67] #1 /usr/local/share/groupoffice/go/core/jmap/EntityController.php(590): go\core\data\Model->setValues(Array)
[error][go\core\ErrorHandler:67] #2 /usr/local/share/groupoffice/go/core/jmap/EntityController.php(538): go\core\jmap\EntityController->create(Array)
[error][go\core\ErrorHandler:67] #3 /usr/local/share/groupoffice/go/core/jmap/EntityController.php(515): go\core\jmap\EntityController->createEntitites(Array, Array)
[error][go\core\ErrorHandler:67] #4 /usr/local/share/groupoffice/go/modules/community/ldapauthenticator/controller/Server.php(41): go\core\jmap\EntityController->defaultSet(Array)
[error][go\core\ErrorHandler:67] #5 [internal function]: go\modules\community\ldapauthenticator\controller\Server->set(Array)
[error][go\core\ErrorHandler:67] #6 /usr/local/share/groupoffice/go/core/jmap/Router.php(207): call_user_func(Array, Array)
[error][go\core\ErrorHandler:67] #7 /usr/local/share/groupoffice/go/core/jmap/Router.php(92): go\core\jmap\Router->callAction('LdapAuthServer/...', Array)
[error][go\core\ErrorHandler:67] #8 /usr/local/share/groupoffice/go/core/jmap/Router.php(68): go\core\jmap\Router->callMethod(Array)
[error][go\core\ErrorHandler:67] #9 /usr/local/share/groupoffice/api/jmap.php(14): go\core\jmap\Router->run()
[error][go\core\ErrorHandler:67] #10 {main}
[end] LdapAuthServer/set, ID: clientCallId-37, time: 4ms, Peak memory usage: 0.96MB

Now, I uninstall the module and install it again, but now throw this error:

SQLSTATE[HY000]: General error: 1005 Can't create table groupoffice.ldapauth_server (errno: 150 "Foreign key constraint is incorrectly formed") on query (0) CREATE TABLE ldapauth_server ( id int(11) NOT NULL, hostname varchar(190) COLLATE utf8mb4_unicode_ci NOT NULL, port int(11) NOT NULL DEFAULT '389', encryption enum('ssl','tls') COLLATE utf8mb4_unicode_ci DEFAULT 'tls', ldapVerifyCertificate BOOLEAN NOT NULL DEFAULT TRUE, followReferrals BOOLEAN NOT NULL DEFAULT TRUE, protocolVersion TINYINT UNSIGNED NOT NULL DEFAULT '3', username VARCHAR(190) NULL DEFAULT NULL, password VARCHAR(512) NULL COLLATE ascii_bin DEFAULT NULL, usernameAttribute varchar(190) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'uid', peopleDN varchar(190) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ou=people,dc=example,dc=com', groupsDN varchar(190) COLLATE utf8mb4_unicode_ci DEFAULT 'ou=groups,dc=example,dc=com', imapHostname varchar(190) COLLATE utf8mb4_unicode_ci DEFAULT NULL, imapPort int(11) NOT NULL DEFAULT '143', imapEncryption enum('tls','ssl') COLLATE utf8mb4_unicode_ci DEFAULT 'tls', imapValidateCertificate tinyint(1) NOT NULL DEFAULT '1', imapUseEmailForUsername BOOLEAN NOT NULL DEFAULT FALSE, loginWithEmail tinyint(1) NOT NULL DEFAULT '0', smtpHostname varchar(190) COLLATE utf8mb4_unicode_ci DEFAULT NULL, smtpPort int(11) NOT NULL DEFAULT '587', smtpUsername varchar(190) COLLATE utf8mb4_unicode_ci DEFAULT NULL, smtpPassword varchar(512) COLLATE ascii_bin DEFAULT NULL, smtpUseUserCredentials tinyint(1) NOT NULL DEFAULT '0', smtpEncryption enum('tls','ssl') COLLATE utf8mb4_unicode_ci DEFAULT NULL, smtpValidateCertificate tinyint(1) NOT NULL DEFAULT '1', syncUsers BOOLEAN NOT NULL DEFAULT FALSE, syncUsersQuery TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, syncGroups BOOLEAN NOT NULL DEFAULT FALSE, syncGroupsQuery TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL ) ENGINE=InnoDB

This is my second shot installing GO and is the same results, the property error now change the number, first shot: ext-comp-2152, second shot: ext-comp-1992

Please help.

Cron not run with docker-compose

I installed the package with docker-compose, but I keep getting this notice:

The main cron job doesn't appear to be running. Please add a cron job: * * * * * www-data php /usr/local/share/groupoffice/cron.php /etc/groupoffice/config.php

Do I need to manually configure the cron in docker-composer.yml?

How to tell Group Office to connect to existing DB container?

If I already have a MariaDB container, how do I set up the docker-compose.yml and update what config files to get it working with that container?

The way the example Dockerfile is written seems to assume that the MariaDB container will only be used for Group Office:

  db:
    image: mariadb:11.1.2
    restart: always    
    env_file:
      - ./db.env
    environment:
      MYSQL_ROOT_PASSWORD: groupoffice
      MARIADB_AUTO_UPGRADE: 1

But I have an existing Mariadb instance that I'd like it to use and for it to use it with with its own user (not the "root" user).

ActiveSync Calendar Sync

Hi,

i'm using the latest Docker Image and everything seems to work properly

but i have one question regarding calendar sync via ActiveSync:

I have multiple calendars created in my account. On my Device (iPhone) i can see all events and appointments, but the calendars
are merged to a object called "Calendar" which contains all the events of my calendars. I guess this is expected by default.

Is there any way to sync the calendars individually, so that i can add events to a specific calendar or hide specific calendars on my phone without removing it from the synced objects in groupoffice?

Thanks in advance,
Christian

Groupoffice does not upgrade

Hello,

I have the 6.4.206 version then I perform the upgrade steps, but the version remains the same after that.

This is my docker yml file, I set variables in environment files, the user and password are different from default:


services:

  db:
    image: mariadb
    hostname: go_db
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    env_file: /share/DockerVolumes/go/groupoffice-db.env
    networks:
      - internal 
    deploy:
      resources:
        limits:
          cpus: '1.0'
          memory: 1024M
      restart_policy:
        condition: on-failure
    volumes:
      - /share/DockerVolumes/go/groupoffice-db/var/lib/mysql:/var/lib/mysql:cached
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped

  db_backup:
    image: mariadb
    hostname: go_db_backup
    env_file: /share/DockerVolumes/go/groupoffice-db-backup.env
    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: 384M
      restart_policy:
        condition: on-failure
    depends_on:
      - db
    volumes:
      - /share/DockerVolumes/go/groupoffice-db/database-dump:/dump
      - /etc/localtime:/etc/localtime:ro
    entrypoint: |
      bash -c 'bash -s <<EOF
      trap "break;exit" SIGHUP SIGINT SIGTERM
      sleep 2m
      while /bin/true; do
        mysqldump -h db --all-databases | gzip -c > /dump/dump_\`date +%d-%m-%Y"_"%H_%M_%S\`.sql.gz
        (ls -t /dump/dump*.sql.gz|head -n $$BACKUP_NUM_KEEP;ls /dump/dump*.sql.gz)|sort|uniq -u|xargs rm -- {}
        sleep $$BACKUP_FREQUENCY
      done
      EOF'
    networks:
    - internal 


  apps:
    image: intermesh/groupoffice:latest
    hostname: groupoffice
    env_file: /share/DockerVolumes/go/groupoffice-apps.env
    networks:
      - internal 
      - go_external 
    deploy:
      resources:
        limits:
          cpus: '2.0'
          memory: 4096M
      restart_policy:
        condition: on-failure
    depends_on:
      - db
      - db_backup
    ports:
      - 192.168.1.3:10112:80
      - 192.168.1.3:10113:443
    volumes:
      - /share/DockerVolumes/go/groupoffice/data:/var/lib/groupoffice:cached
      - /share/DockerVolumes/go/groupoffice/www:/usr/local/share/groupoffice
      - /share/DockerVolumes/go/groupoffice/etc/groupoffice:/etc/groupoffice:cached
      - /share/DockerVolumes/go/groupoffice/certs:/etc/ssl/groupoffice
    restart: unless-stopped

  cron:
    image: intermesh/groupoffice:latest
    hostname: go_cron
    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: 256M
      update_config:
        delay: 15s
      restart_policy:
        condition: on-failure
    depends_on:
      - apps
    volumes:
      - /share/DockerVolumes/go/groupoffice/data:/var/lib/groupoffice
      - /share/DockerVolumes/go/groupoffice/www:/usr/local/share/groupoffice
    user: www-data
    networks:
      - internal 
    entrypoint: |
      bash -c 'bash -s <<EOF
        trap "break;exit" SIGHUP SIGINT SIGTERM
        while [ ! -f /usr/local/share/groupoffice/config.php ]; do
          sleep 1
        done
        while true; do
          php /usr/local/share/groupoffice/cron.php /usr/local/share/groupoffice/config.php
          sleep 1m
        done
      EOF'



networks:
  go_external :
    external: true
  internal :
    driver: bridge
    ipam:
      config:
        - subnet: 192.168.6.0/24```


Thanks

Multi Instance Configuration not Saved to Persistent Storage

I have noticed, that the multi_instance configuration located under /etc/groupoffice/multi_instance is not saved to the persistent goetc volume. This will lead to data loss if the container is restarted or update. As we have multiple instances configured, we can't access the data anymore as the config.php for the corresponding instance is missing.

Hostversion: Ubuntu 20.04
Docker Version: 20.10.7-0ubuntu5~20.04.2
Group Office Version: latest (updated today)

docker-compose.yaml

version: "3.1"
services:
  groupoffice:
    image: intermesh/groupoffice:latest
    restart: always
    ports:
      - "80:80"
      - "443:443"
    links:
      - db
    volumes:
      - "godata:/var/lib/groupoffice:cached"
      - "goetc:/etc/groupoffice:cached"
      - "./etc/ssl/groupoffice:/etc/ssl/groupoffice"

    env_file:
      - ./db.env
  db:
    image: mariadb
    restart: always
    env_file:
      - ./db.env
    environment:
      MYSQL_ROOT_PASSWORD: groupoffice
    volumes:
      - "dbdata:/var/lib/mysql:cached"
volumes:
  godata:
  goetc:
  dbdata:

If i touch a file inside /etc/groupoffice it will be written to the persistent volume

root@652da5f8d058:/var/www/html# touch /etc/groupoffice/test.txt

Result form Local Filesystem

sudo ls -ll /var/lib/docker/volumes/docker-groupoffice_goetc/_data/
total 12
-rw-r--r-- 1 root     root      288 Nov 25 12:10 config.php
-rw-r--r-- 1 root     root      285 Jun 17 13:14 config.php.tpl
drwxr-xr-x 2 www-data www-data 4096 Jun 17 13:19 multi_instance
-rw-r--r-- 1 root     root        0 Nov 25 12:19 test.txt

If i touch a file inside etc/groupoffice/multi_instance it will not be written to the persistent volume

root@652da5f8d058:/var/www/html# touch /etc/groupoffice/multi_instance/test.txt

Result from local File system

sudo ls -ll /var/lib/docker/volumes/docker-groupoffice_goetc/_data/multi_instance/
total 0

What could be the issue, the those configuration are keept in the container? Is it possible to restore the old configurations to regain access to the instances?

Thank you very much for a fast reply.

Studio

As: a docker user
I want: to keep the generated (and manually edited) code
With the aim of: being able to use Group Offfice Studio in between rebuilds


Make sure that studio code is being generated in a writable subdirectory and make sure that this subdirectory is mounted as a volume in order to be retained in between reboots / rebuilds.

Can't contact LDAP server

We're currently trying to migrate our bare-metal installation of Group Office to a docker container. So far, everythings works except LDAP. It's 1:1 the same configuration as in our working non-docker instance, but yet in docker it says "Can't contact LDAP server", which is weird.

#7 {main}root@test-groupoffice:/usr/local/share/groupoffice# php cli.php community/ldapauthenticator/Sync/test --id=2 --username=fenrir --debug=1
109 [2024-04-16 13:30:20][cli: community/ldapauthenticator/Sync/test][log][go\modules\community\ldapauthenticator\model\Server:217] Connect to ldaps://kerberos.example.intern:7636
Connected
109 [2024-04-16 13:30:20][cli: community/ldapauthenticator/Sync/test][log][go\modules\community\ldapauthenticator\cli\controller\Sync:56] Find DN: "ou=SP-Users,dc=example,dc=at", Query: "uid=fenrir"
109 [2024-04-16 13:30:20][cli: community/ldapauthenticator/Sync/test][log][go\core\ErrorHandler:117] ErrorHandler::exceptionHandler() called with ErrorException
109 [2024-04-16 13:30:20][cli: community/ldapauthenticator/Sync/test][error][go\core\ErrorHandler:72] ErrorException in /usr/local/share/groupoffice/go/core/ldap/Record.php at line 98: ldap_search(): Search: Can't contact LDAP server
109 [2024-04-16 13:30:20][cli: community/ldapauthenticator/Sync/test][error][go\core\ErrorHandler:81] #0 [internal function]: go\core\ErrorHandler::errorHandler(2, 'ldap_search(): ...', '/usr/local/shar...', 98, Array)
109 [2024-04-16 13:30:20][cli: community/ldapauthenticator/Sync/test][error][go\core\ErrorHandler:81] #1 /usr/local/share/groupoffice/go/core/ldap/Record.php(98): ldap_search(Resource id #115, 'ou=SP-Users,dc=...', 'uid=fenrir')
109 [2024-04-16 13:30:20][cli: community/ldapauthenticator/Sync/test][error][go\core\ErrorHandler:81] #2 /usr/local/share/groupoffice/go/modules/community/ldapauthenticator/cli/controller/Sync.php(56): go\core\ldap\Record::find(Object(go\core\ldap\Connection), 'ou=SP-Users,dc=...', 'uid=fenrir')
109 [2024-04-16 13:30:20][cli: community/ldapauthenticator/Sync/test][error][go\core\ErrorHandler:81] #3 [internal function]: go\modules\community\ldapauthenticator\cli\controller\Sync->test('2', 'fenrir')
109 [2024-04-16 13:30:20][cli: community/ldapauthenticator/Sync/test][error][go\core\ErrorHandler:81] #4 /usr/local/share/groupoffice/go/core/cli/Router.php(186): call_user_func_array(Array, Array)
109 [2024-04-16 13:30:20][cli: community/ldapauthenticator/Sync/test][error][go\core\ErrorHandler:81] #5 /usr/local/share/groupoffice/go/core/cli/Router.php(127): go\core\cli\Router->callMethod(Object(go\modules\community\ldapauthenticator\cli\controller\Sync), 'test', Array)
109 [2024-04-16 13:30:20][cli: community/ldapauthenticator/Sync/test][error][go\core\ErrorHandler:81] #6 /usr/local/share/groupoffice/cli.php(42): go\core\cli\Router->run()
109 [2024-04-16 13:30:20][cli: community/ldapauthenticator/Sync/test][error][go\core\ErrorHandler:81] #7 {main}
Uncaught exception: ErrorException in /usr/local/share/groupoffice/go/core/ldap/Record.php at line 98: ldap_search(): Search: Can't contact LDAP server at 2024-04-16T13:30:20+00:00

#0 [internal function]: go\core\ErrorHandler::errorHandler(2, 'ldap_search(): ...', '/usr/local/shar...', 98, Array)
#1 /usr/local/share/groupoffice/go/core/ldap/Record.php(98): ldap_search(Resource id #115, 'ou=SP-Users,dc=...', 'uid=fenrir')
#2 /usr/local/share/groupoffice/go/modules/community/ldapauthenticator/cli/controller/Sync.php(56): go\core\ldap\Record::find(Object(go\core\ldap\Connection), 'ou=SP-Users,dc=...', 'uid=fenrir')
#3 [internal function]: go\modules\community\ldapauthenticator\cli\controller\Sync->test('2', 'fenrir')
#4 /usr/local/share/groupoffice/go/core/cli/Router.php(186): call_user_func_array(Array, Array)
#5 /usr/local/share/groupoffice/go/core/cli/Router.php(127): go\core\cli\Router->callMethod(Object(go\modules\community\ldapauthenticator\cli\controller\Sync), 'test', Array)
#6 /usr/local/share/groupoffice/cli.php(42): go\core\cli\Router->run()
#7 {main}


Debug dump: 

Connect to ldaps://kerberos.example.intern:7636
Find DN: "ou=SP-Users,dc=example,dc=at", Query: "uid=fenrir"
ErrorHandler::exceptionHandler() called with ErrorException
ErrorException in /usr/local/share/groupoffice/go/core/ldap/Record.php at line 98: ldap_search(): Search: Can't contact LDAP server
#0 [internal function]: go\core\ErrorHandler::errorHandler(2, 'ldap_search(): ...', '/usr/local/shar...', 98, Array)
#1 /usr/local/share/groupoffice/go/core/ldap/Record.php(98): ldap_search(Resource id #115, 'ou=SP-Users,dc=...', 'uid=fenrir')
#2 /usr/local/share/groupoffice/go/modules/community/ldapauthenticator/cli/controller/Sync.php(56): go\core\ldap\Record::find(Object(go\core\ldap\Connection), 'ou=SP-Users,dc=...', 'uid=fenrir')
#3 [internal function]: go\modules\community\ldapauthenticator\cli\controller\Sync->test('2', 'fenrir')
#4 /usr/local/share/groupoffice/go/core/cli/Router.php(186): call_user_func_array(Array, Array)
#5 /usr/local/share/groupoffice/go/core/cli/Router.php(127): go\core\cli\Router->callMethod(Object(go\modules\community\ldapauthenticator\cli\controller\Sync), 'test', Array)
#6 /usr/local/share/groupoffice/cli.php(42): go\core\cli\Router->run()

By installing ping and telnet inside the docker container, I can ping kerberos.example.intern, and telnet kerberos.example.internet 7363 without any issue. We use Univention LDAP.

Make memory_limit persistent

Hello,

I am trying to change default values for memory_limit in the /usr/local/etc/php/php.ini but they lost after restart the container. I also try creating the /usr/local/etc/php/conf.d/memory-limit.ini file, without success.
memory_limit=1024M

I've create an info.php with the phpinfo() function, but the memory_limit value is always 128M

How can I make this values persistent?

Thanks!

php is missing BCMath extension

Hello,

It is not possible to send e-mails because BCMath module is missing in php ("The BCMath functions must be enabled to use the NTLM authenticator" error).

After module is installed I'm getting another ("Undefined offset: 2" error).

Tag with actual groupoffice version

The image published on Docker hub is tagged with the major and minor version (and latest for 6.7). All releases of groupoffice always also use a patch version.
The Dockerfile also uses this x.y.z version (though fixed to a specific release rather than the actually used version).

Would it be possible to (next to latest and 6.x) to also tag with the actual groupoffice release to make it easier to pin the release in a compose file?

License question

Hi, question about licence...Im home user, enthusiast and I like groupoffice, but without "commercial" modules its not that much usable for me. Do you have any licence option for home self hosters(no commercial use) or would you consider it? Something like license for 10-20 family members for 50-100โ‚ฌ ?

Docker deployment error: Unknown database 'groupoffice'

Could not connect to the database. The database returned this error:
SQLSTATE[HY000] [1049] Unknown database 'groupoffice'

If I use mysql as database I can get to the licence step, but then it errors with:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mysql.core_module' doesn't exist

config.php override does not work

After docker compose up I am changing config.php file content in 'docker-groupoffice_goetc' volume

root@6a684b5d7cd7:/var/www/html# cat /etc/groupoffice/config.php
<?php
$config['db_name'] = "Office";
$config['db_host'] = "db";
$config['db_user'] = "Office";
$config['db_pass'] = "Officenewpassword";
$config['db_port'] = 3306;
$config['file_storage_path'] = "/var/lib/groupoffice";
$config['tmpdir'] = "/tmp/groupoffice";
$config['debug'] = false;
$config['business'] = array (
        'studio' =>
                array (
                        'package' => 'studio',
                )
        );
$config['product_name'] = 'Office';
$config['title'] = "Ofisas";
$config['default_timezone'] = 'Europe/Vilnius';
root@6a684b5d7cd7:/var/www/html# php -l /etc/groupoffice/config.php
No syntax errors detected in /etc/groupoffice/config.php

but these setting does not apply, for example timezone is still 'Europe/Amsterdam' in GUI.

Groupoffice is not compatible with PHP 8.2 but uses it in Dockerfile

Group office seems to install PHP 8.2 in its docker Dockerfile. But Groupoffice uses version 4.4 of Sabre\DAV which is not compatible with PHP 8.2 (This seems to be fixed in sabre\DAV version 4.5).

This causes (at least) the following errors:

When adding the addressbook to a new client (thunderbird in my case) the error responds with a 500 error and internally throws:

[Sun Mar 03 16:07:39 2024] [notice] [pid 25] [client 172.24.0.1:53152] ErrorException in /usr/local/share/groupoffice/vendor/sabre/dav/lib/CardDAV/Xml/Request/AddressBookMultiGetReport.php at line 104: Creation of dynamic property Sabre\\CardDAV\\Xml\\Request\\AddressBookMultiGetReport::$addressDataProperties is deprecated

(Probably) The same error is caused when trying to export the addressbook:

Creation of dynamic property go\modules\community\addressbook\convert\VCard::$tempFile is deprecated

You can find more information here:
sabre-io/dav#1474

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.