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:








7 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. Hi.
    after like 4 hours of pain a found out the solution that is missing here in the manual.
    1. If the config.php is having trouble with permissions, log in to the container. Check the container name with docker ps, it shoudl be the default name, so go inside docker exec -it intermesh-groupoffice1 bash
    and then go to /etc/groupoffice and chmod 777 for config.php

    2. SQL
    For reasons unknown, mysql did not connect. I tried to regenereta the password by going to the container docker exec -it godb bash and logging to mysql -u root -p (password groupoffice), then changing password for user groupoffice in db groupoffice but it did not work. So fuck it, just connect to the db as root and with password groupoffice made it :-)

    ReplyDelete
  4. Group-Office is a must-have in such case, thanks for the setup guide!

    ReplyDelete
  5. Here is an updated article about instalation GO in docker https://radekvymazal.cz/en/groupoffice-in-a-docker-at-synology-nas-ds1019/

    ReplyDelete
  6. This is very helpful for a newbie. I just bookmarked this post for future reference. Keep sharing this kind of post. Thanks for sharing. Good read. Thanks for the data. It helps us.

    Fully dedicated hosting

    ReplyDelete
  7. Nice blog with Amazing information .. love to read about this.
    Awaiting for your new post
    We at Fullassignment.com bring to you the most significant Case Study help writing service at the best cost. With long stretches of understanding we are prepared to give assignment help over the globe.You will be guided here with a portion of the information of Marketing assignment which could assist you in deciding writing a Marketing assignment. Nonetheless, we unequivocally prescribe you to benefit Civil Law Case Study Assignment Help from our specialist to find out about marketing and its scope.We also provide /Mathematics Assignment Help from our experts.

    https://fullassignment.com/

    ReplyDelete