Monday, May 14, 2018

Install Group-Office on a Synology NAS with Docker


This is a walkthrough on how to install Group-Office on a Synology NAS with docker. Make sure you've installed Docker via the Synology package center.
  1. Launch Docker
  2. Go to the “Registry” tab and search for “mariadb”. Double click to download the latest:

  3. Search for “groupoffice” and install the latest “intermesh/groupoffice”:

  4. Go to the image tab and double click “maridb” to create a container called “godb”.
  5. Click on “Advanced Settings” and set in the “Environment” tab:
    MYSQL_USER=groupoffice
    MYSQL_PASSWORD=groupoffice
    MYSQL_DATABASE=groupoffice
    MYSQL_ROOT_PASSWORD=groupoffice

  6. Create a folder for the “/var/lib/mysql” volume in the “Volumes” tab.

  7. Click “Apply” to create the container.
  8. Now double click the “intermesh/groupoffice” container and go to the “Advanced Settings”.
  9. In the “Links” tab create a link to “godb” and call it “db”:
  10. Go to the "Volume" tab and mount a folder on "/var/lib/groupoffice":

  11. Review the “Environment” tab. Set apache server name and email:

  12. Check the port settings and launch your browser to the host and port. You should see the Group-Office installation screen. If you get the message "Please create a writable config.,ini" file then either /var/lib/groupoffice is not writable or the database connection can't be established. Please review those if you get that message.
  13. Finally you must add a scheduled task for GroupOffice. Go to Control Panel -> Task Scheduler on the Synology UI and choose Create -> Scheduled Task:






    Configure this command:

    /usr/local/bin/docker exec --user www-data intermesh-groupoffice1 php /usr/local/share/groupoffice/cron.php
  14. You're up and running!

Install SSL certificate

You probably need to install an SSL certificate too. This can be done easily. I've generated a Let's encrypt certificate at Control Panel -> Security:


  1. Right click on the certificate and choose "Export certificate". 
  2. Extract those files in a folder on the synology NAS called "docker/certs".
  3. The add a file called "apache.conf" and put this in:

    SSLCertificateKeyFile /etc/ssl/groupoffice/privkey.pem
    SSLCertificateFile /etc/ssl/groupoffice/cert.pem
    SSLCertificateChainFile /etc/ssl/groupoffice/chain.pem
  4. The folder on Docker should look like this:
  5. Edit the Docker container settings of groupoffice and mount this folder at "/etc/ssl/groupoffice"
  6. Check the SSL port settings and start the container. You should now have SSL!

Install license files

If you purchased additional modules from Intermesh you can install the licenses by mounting them in the Volume tab:








5 comments:

  1. Hey, thank you for providing a docker image! That's really helpful. Although I have a problem following this introduction as it ends too early. When I'm installing it, the installer tells me I have to create a config.ini file in /etc/groupoffice/config.ini. But I'm not quite sure how to access the docker filesystem and create this file. Furthermore, when I open the Terminal in the docker panel in DSM, the groupoffice-container shuts down immediately.

    Thanks!

    ReplyDelete
  2. Hi,

    It should not ask you to create a config.ini file as it is already prepared. If it asks you this then either the /var/lib/groupoffice folder is not writable or it can't connect to the database. Please check the settings carefully. I also noticed the terminal shutting down immediately./ I have no idea why this happens as I'm using a pretty standard php image.

    ReplyDelete
  3. Thanks for sharing these useful information! This is really interesting information for me.

    ReplyDelete
  4. Hello!
    This is a good article because there are many tips and also many advices that will be very useful for me.
    Thanks!
    http://www.navette-paris-aeroport.com

    ReplyDelete
  5. Hello!
    This is a good article because there are many tips and also many advices that will be very useful for me.
    http://www.credimed.com

    ReplyDelete