Install xibo 1.81 on a Synology NAS

Hello together,

i tried to install xibo 1.81 with the instruction but the installation failed.
i copied the complete folder of xibo 1.81 in my web folder on Synology DS216j and the i wrote in the browser
http:// localhost/
But nothing do :frowning:

Can anyone say how i musst go on with the synology nas 216j

what musst i write in the browser after i copy the folder in my web folder of synology nas.

Docker i dont know.

best regards

markus

Hi everyone

I have the same problem.
It is very convenient and cheap, to have a Synology NAS server.
I run the latest update DSM 6.1 15047. (DS411+II)

Synology already has a Docker package, and are of course installed.
I have downloaded xibosignage/xibo-cms image from the docker registration database.install with root privilege

Here is gets tricky, is it here I add the folder and mount path where Xibo CMS is installed?
Is there someone who whants to go from Zero to Hero by helping us Synlogy Docker analfabets, on a guide with how to. I’ll promise to learn Docker, how to use later.
Hope that anyone will answer this thread.
Thanks in advanced.

I am actively working on this for small rollouts.

I think the docker version within DSM 6/6.1 is limited to containers 2.0 and lower. Xibo Docker requires v2.1 containers. According to what I have found due to limitations on DMS and the backend, an updated Docker will probably not show up natively until DMS 7 or 7.1.

I tried to compile Docker on DSM 6, that was a pain. Then I tried it with Debian Chroot installed. I got much farther faster, but still ran into an error that I can’t really find too much on so far. I think the main problem being that there is not a /proc/config.gz or equivalent file within Dedian Chroot or that I can find on DSM 6. I can post more about that later if you would like.

Hello and thanks for your replays!!
When you have news let it post here please.

And when you have a manual how i can install xibo 1.81 alternativ…let me know it please
Best regards
Markus

Well I am stuck on getting /lib/modules populated correctly which is needed for docker to start correctly. I did create a folder corresponding to the kernel version in DSM6, and then attempted to run depmod. It did generate some of the missing data, but not all of the needed data.

So I then got the idea of cross-compiling the kernel, and modules so I could copy the missing data over. But It bombs out on some Synoloogy xmr and usb module that it can’t find. I unfortunately have never compiled a kernel, except for a Pi, but certianly not for a Synology’s customized kernel build. If anyone has any ideas I am open.

I did also try to compile zeromq via chroot, it was mostly successful. Some error on install that I couldn’t find anything about, but I forced it. I just don’t know how to test it, as it is stuck within chroot. I would need to install a webserver and everything to make it useful I think.

We only use 2.1 for Windows compatibility. There’s nothing in that file that isn’t supported in 2.0.

Assuming the DSM interface allows you to start and link containers, and pass variables in, then you should be able to run there.

The running with Docker without Docker Compose section of the manual would be a handy reference:

http://xibo.org.uk/manual-tempel/en/install_docker_without_compose.html

Just spent the last 4 hours trying to get docker 1.8.1 to work on DSM 6.1 to no avail. Any beginners walkthrough would be greatly appreciated. :slight_smile:

I don’t have access to a Synology platform I’m afraid. Perhaps someone with one can help you.

I feel you on this one. Do you care to share what approach you tried?

I am a little confused. :open_mouth: When I tried to use the docker files that I found on the website I thought I had the right ones. I feel like things pertaining to Docker on the site are confusing. I think by nature until one understands Docker and the various parts, one will remain feeling around in the dark.

I had no idea that Xibo Docker Windows and Linux containers where different. When I tried to use the Docker container I found on Xibo’s website on my Synology NAS it would not load. I found that changing the version of the (because I can’t remember what it called at the moment) config file from version 2.1 to 2.0, that the third container would not load. So that is when I concluded that 2.1, and seeing how it matches everything I found so far on the website, was a must. And according to the Docker site version 1.12+ of Docker will run 2.1 config files. So off I went trying to get what I thought was a compatible Docker version working. :stuck_out_tongue_closed_eyes:

I will try to load the Native Docker App on the Synology again and try to follow the link you gave Alex.

I am wondering though… The site says

If you have your own docker environment you may want to run without the automation provided by docker-compose. If this is the case you will be responsible for pulling the docker containers, starting them and manually installing Xibo.

Where exactly do you pull those from?? I would suggest some sort of additional info there.
Would it be from here?

Ok I made some progress on this and I am making a walk through. I have the 3 containers up and running that are needed. I believe they are linked correctly. The two Xibo ones and mysql. I have not yet been able to get connected to the cms, but I think that part is just a matter of some network configurations that will need to be done.

It also looks like what I told mysql to use as a password does not match what the xibo-cms container thinks I should be using. How do I change that?

ERROR 1045 (28000): Access denied for user ‘cms’@‘172.17.0.4’ (using password: YES)
stdout
05:47:15

You need to make sure you pass the same MYSQL password details to both the web and db containers. If it were a normal install, config.env would take care of that, but in your case you’ll need to manually specify those.

Your MySQL database may have been created without the cms user/database so it’s best to completely destroy that between attempts, removing any shared data it has stored.

I tried that several times, I think I got a bit farther. Now I get:
ERROR 1130 (HY000): Host '172.17.0.4' is not allowed to connect to this MySQL server

So to the DB container, you’ll need to pass at least the following environment variables:

         MYSQL_DATABASE=cms
         MYSQL_USER=cms
         MYSQL_RANDOM_ROOT_PASSWORD=yes
         MYSQL_PASSWORD=yourpassword

To the web container, you’ll need to pass at least:

         MYSQL_PASSWORD=yourpassword
         XMR_HOST=cms-xmr

The XMR container doesn’t need any environment particularly.

It’s critical that you remove any persistent data and fully destroy the containers between attempts otherwise nothing will change.

If it’s still not working, please can you provide exact details of the variables you’re passing to each container, the volumes and ports you have mapped, the links between containers, and anything else that might be important. You can see in the docker-compose file we provide the exact details of what is required in that respect for each container to function.

What about
MYSQL_ROOT_HOST 172.17.0.1 so that the other containers can access the db container?

The link you setup between the containers is what permits the correct containers to talk to one another. We don’t set that variable anywhere.

OK.

Thank you for the help. So far I changed the environment variables how you suggested and blew out everything. Tried again and still the same. I will post all that you requested in the AM for me.

Thanks again Alex.

Hi, I have started something! I think I would rather stay with the old version so 1.7.7.
But a question I still have: Is there no one here who can help me here:
https://community.xibo.org.uk/t/html-code-embedded/9637
I really just want to know how and where to insert something?

@Kusselin
No worries on just wanting to stick to 1.7.7. But I think at some point you might want/need to upgrade. And since I as well as a few other people would like to see about getting the Docker version of Xibo functional on DSM6 units, I will continue on with building a walk through.

Hopefully someone else can assist you on your embedded code post.


@Alex

Here is my configuration. So I am not seeing a database created in the path /volume1/xibo-docker/web/cms/datbase that is on the unit. I would think that would get created when the cms-db container is fired up. chmod is 777. Not sure where exactly to look.

cms-web:
Advanced Settings:
Enable auto-restart

Volume:
/volume1/xibo-docker/web/cms/library - /shared/cms/library
/volume1/xibo-docker/web/cms/custom - /shared/cms/custom
/volume1/xibo-docker/web/cms/web/theme/custom - /shared/cms/web/theme/custom
/volume1/xibo-docker/web/backup - /shared/backup
/volume1/xibo-docker/web/cms/web/userscripts - /shared/cms/web/userscripts

Port Settings:
Local Port: 8888 - Container Port:80 TCP

Links:
Container Name: cms-xmr - Alias: 50001
Container Name: cms-db - Alias: mysql

Environment:
Variable: MYSQL_PASSWORD - Value: PASSWORD
Variable: MYSQL_USER - Value: cms
Variable: ServerName - Value: ABC.DOMAIN.COM
Variable: XMR_HOST - Value: cms-xmr

xibo-xmr:
Advanced Settings:
Enable auto-restart

Volume:
N/A

Port Settings:
Local Port: Auto - Container Port:50001 TCP
Local Port: 9505 - Container Port:9505 TCP

Links:
N/A

Environment:
N/A

cms-db:
Advanced Settings:
Enable auto-restart

Volume:
/volume1/xibo-docker/web/cms/datbase - /shared/database

Port Settings:
Local Port: Auto - Container Port:3306 TCP

Links:
N/A

Environment:
MYSQL_RANDOM_ROOT_PASSWORD - YES
MYSQL_DATABASE - cms
MYSQL_USER - cms

Log From cms-db after deleting the database folder and then recreating it and then starting cms-db

2017-04-20T04:06:32.163862Z 0 [Warning] Changed limits: max_open_files: 4096 (requested 5000)
stdout
04:06:32
2017-04-20T04:06:32.164003Z 0 [Warning] Changed limits: table_open_cache: 1967 (requested 2000)
stdout
04:06:32
2017-04-20T04:06:32.376675Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
stdout
04:06:32
2017-04-20T04:06:32.379185Z 0 [Note] mysqld (mysqld 5.7.18) starting as process 1 ...
stdout
04:06:32
2017-04-20T04:06:32.387068Z 0 [Note] InnoDB: PUNCH HOLE support available
stdout
04:06:32
2017-04-20T04:06:32.387208Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
stdout
04:06:32
2017-04-20T04:06:32.387243Z 0 [Note] InnoDB: Uses event mutexes
stdout
04:06:32
2017-04-20T04:06:32.387281Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
stdout
04:06:32
2017-04-20T04:06:32.387310Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3
stdout
04:06:32
2017-04-20T04:06:32.387339Z 0 [Note] InnoDB: Using Linux native AIO
stdout
04:06:32
2017-04-20T04:06:32.387945Z 0 [Note] InnoDB: Number of pools: 1
stdout
04:06:32
2017-04-20T04:06:32.388236Z 0 [Note] InnoDB: Using CPU crc32 instructions
stdout
04:06:32
2017-04-20T04:06:32.391063Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
stdout
04:06:32
2017-04-20T04:06:32.413191Z 0 [Note] InnoDB: Completed initialization of buffer pool
stdout
04:06:32
2017-04-20T04:06:32.416546Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
stdout
04:06:32
2017-04-20T04:06:32.516104Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
stdout
04:06:32
2017-04-20T04:06:32.710406Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
stdout
04:06:32
2017-04-20T04:06:32.710780Z 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
stdout
04:06:32
2017-04-20T04:06:32.859173Z 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
stdout
04:06:32
2017-04-20T04:06:32.861180Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
stdout
04:06:32
2017-04-20T04:06:32.861262Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
stdout
04:06:32
2017-04-20T04:06:32.862067Z 0 [Note] InnoDB: Waiting for purge to start
stdout
04:06:32
2017-04-20T04:06:32.912390Z 0 [Note] InnoDB: 5.7.18 started; log sequence number 12132574
stdout
04:06:32
2017-04-20T04:06:32.913231Z 0 [Note] Plugin 'FEDERATED' is disabled.
stdout
04:06:32
2017-04-20T04:06:32.913671Z 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
stdout
04:06:32
2017-04-20T04:06:32.916877Z 0 [Note] InnoDB: Buffer pool(s) load completed at 170420  4:06:32
stdout
04:06:32
2017-04-20T04:06:32.942588Z 0 [Note] Found ca.pem, server-cert.pem and server-key.pem in data directory. Trying to enable SSL support using them.
stdout
04:06:32
2017-04-20T04:06:32.943483Z 0 [Warning] CA certificate ca.pem is self signed.
stdout
04:06:32
2017-04-20T04:06:32.947868Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
stdout
04:06:32
2017-04-20T04:06:32.947955Z 0 [Note] IPv6 is available.
stdout
04:06:32
2017-04-20T04:06:32.948018Z 0 [Note]   - '::' resolves to '::';
stdout
04:06:32
2017-04-20T04:06:32.948076Z 0 [Note] Server socket created on IP: '::'.
stdout
04:06:32
2017-04-20T04:06:32.993903Z 0 [Warning] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode.
stdout
04:06:32
2017-04-20T04:06:32.994104Z 0 [Warning] 'user' entry 'mysql.sys@localhost' ignored in --skip-name-resolve mode.
stdout
04:06:32
2017-04-20T04:06:32.994220Z 0 [Warning] 'db' entry 'sys mysql.sys@localhost' ignored in --skip-name-resolve mode.
stdout
04:06:32
2017-04-20T04:06:32.994457Z 0 [Warning] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.
stdout
04:06:33
2017-04-20T04:06:33.065147Z 0 [Warning] 'tables_priv' entry 'sys_config mysql.sys@localhost' ignored in --skip-name-resolve mode.
stdout
04:06:33
2017-04-20T04:06:33.126646Z 0 [Note] Event Scheduler: Loaded 0 events
stdout
04:06:33
2017-04-20T04:06:33.127042Z 0 [Note] mysqld: ready for connections.
stdout
04:06:33
Version: '5.7.18'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server (GPL)
stdout
04:06:33
2017-04-20T04:06:33.127093Z 0 [Note] Executing 'SELECT * FROM INFORMATION_SCHEMA.TABLES;' to get a list of tables using the deprecated partition engine. You may use the startup option '--disable-partition-engine-check' to skip this check. 
stdout
04:06:33
2017-04-20T04:06:33.127153Z 0 [Note] Beginning of list of non-natively partitioned tables
stdout
04:06:33
2017-04-20T04:06:33.171669Z 0 [Note] End of list of non-natively partitioned tables
stdout

According to the Docker documentation, shouldn’t the random password be in there somewhere?

cms-web log:
Waiting for MySQL to start - max 300 seconds
stdout
04:14:44
MySQL started
stdout
04:14:45
ERROR 1130 (HY000): Host ‘172.17.0.4’ is not allowed to connect to this MySQL server
stdout
04:14:45
New install
stdout
04:14:45
Provisioning Database
stdout
04:14:45
ERROR 1130 (HY000): Host ‘172.17.0.4’ is not allowed to connect to this MySQL server
stdout
04:14:45
ERROR 1130 (HY000): Host ‘172.17.0.4’ is not allowed to connect to this MySQL server
stdout
04:14:45
ERROR 1130 (HY000): Host ‘172.17.0.4’ is not allowed to connect to this MySQL server
stdout
04:14:45
Configuring Database Settings
stdout
04:14:45
ERROR 1130 (HY000): Host ‘172.17.0.4’ is not allowed to connect to this MySQL server
stdout
04:14:45
ERROR 1130 (HY000): Host ‘172.17.0.4’ is not allowed to connect to this MySQL server
stdout
04:14:45
ERROR 1130 (HY000): Host ‘172.17.0.4’ is not allowed to connect to this MySQL server
stdout
04:14:45
ERROR 1130 (HY000): Host ‘172.17.0.4’ is not allowed to connect to this MySQL server
stdout
04:14:45
ERROR 1130 (HY000): Host ‘172.17.0.4’ is not allowed to connect to this MySQL server
stdout
04:14:45
ERROR 1130 (HY000): Host ‘172.17.0.4’ is not allowed to connect to this MySQL server
stdout
04:14:45
Setting up Maintenance
stdout
04:14:45
ERROR 1130 (HY000): Host ‘172.17.0.4’ is not allowed to connect to this MySQL server
stdout
04:14:45
ERROR 1130 (HY000): Host ‘172.17.0.4’ is not allowed to connect to this MySQL server
stdout
04:14:45
Configuring Backups
stdout
04:14:46
Configuring Maintenance
stdout
04:14:46
Running maintenance
stdout

I tried to set MYSQL_ROOT_HOST to the ip of cms-web, but that didn’t work either.

So first up there are some issues with this.

cms-web:
Advanced Settings:
Enable auto-restart

Volume:
/volume1/xibo-docker/web/cms/library - /shared/cms/library
/volume1/xibo-docker/web/cms/custom - /shared/cms/custom
/volume1/xibo-docker/web/cms/web/theme/custom - /shared/cms/web/theme/custom
/volume1/xibo-docker/web/backup - /shared/backup
/volume1/xibo-docker/web/cms/web/userscripts - /shared/cms/web/userscripts

Volumes inside the container are not in /shared. The correct locations are in the docker-compose file:

So for example:
/volume1/xibo-docker/web/cms/library - /var/www/cms/library

would be correct.

Port Settings:
Local Port: 8888 - Container Port:80 TCP

Links:
Container Name: cms-xmr - Alias: 50001
Container Name: cms-db - Alias: mysql

Environment:
Variable: MYSQL_PASSWORD - Value: PASSWORD
Variable: MYSQL_USER - Value: cms
Variable: ServerName - Value: ABC.DOMAIN.COM
Variable: XMR_HOST - Value: cms-xmr

xibo-xmr:
Advanced Settings:
Enable auto-restart

Volume:
N/A

Port Settings:
Local Port: Auto - Container Port:50001 TCP
Local Port: 9505 - Container Port:9505 TCP

You don’t need the first definition there. Port 50001 is for internal use only and shouldn’t be exposed.

Links:
N/A

Environment:
N/A

cms-db:
Advanced Settings:
Enable auto-restart

Volume:
/volume1/xibo-docker/web/cms/datbase - /shared/database

Same issue here as the web container. The proper volume path is /var/lib/mysql

Port Settings:
Local Port: Auto - Container Port:3306 TCP

Again, the MySQL container should not be being exposed, so there’s no need for this mapping.

Links:
N/A

Environment:
MYSQL_RANDOM_ROOT_PASSWORD - YES
MYSQL_DATABASE - cms
MYSQL_USER - cms

Pretty sure that the MYSQL_RANDOM_ROOT_PASSWORD value should be yes not YES You also need to pass in the same MYSQL_PASSWORD variable you gave the web container.

@alex,

Thank you for the feedback! I will try those edits.

As a a note, I setup the directories as shown here. Did I mis-read that?

Port Settings concerning the Local Ports with Auto settings, are settings automatically generated by the Synology Docker App. Not sure why, Once, I have everything running I will try to remove those and see what happens.

I now see data in teh database directory, but still I see errors pertaining to the cms@xxx.xxx.xxx.xxx user.