[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: shiny-server in debian



Hi Nilesh et al.,

(Sorry Nilesh for the duplicate emails, I sent some to you alone accidentally).

Good news, I finally figured it out. It's an issue with the updated
version of node-sockjs-client (1.6.0). The 1.5.2 version that upstream
uses seems to work.

So to summarize, after installing these are the changes made to get
shiny-server working:

sudo apt install node-sockjs-client
sudo mkdir /usr/lib/shiny-server/node_modules
sudo ln -s /usr/share/nodejs/sockjs-client/ /usr/lib/shiny-server/node_modules/
sudo ln -s /usr/share/nodejs/shiny-server-client/
/usr/lib/shiny-server/node_modules/
sudo cp /usr/lib/shiny-server/node_modules/sockjs-client/dist/sockjs.min.js
/usr/lib/shiny-server/node_modules/sockjs-client/dist/sockjs.min.js.backup
sudo curl https://raw.githubusercontent.com/jcheng5/sockjs-client/main/dist/sockjs.min.js
-o /usr/lib/shiny-server/node_modules/sockjs-client/dist/sockjs.min.js

However, note that one of my apps did not work properly until I
updated the R package shiny in R (to 1.7.1) which is newer than the
current debian package (1.5), so we should likely update r-cran-shiny
when shiny-server gets uploaded.

And to use the examples:

sudo mkdir /srv/shiny-server
sudo ln -s -r /usr/lib/shiny-server/samples/* /srv/shiny-server

And to enable logging:

The shiny-server.service file is missing the instruction to log.
Compare the line [1] in our version vs. [2] in version included in the
upstream repo. When [1] is replaced with [3] and the file
/var/log/shiny-server.log is created, logging works properly. Probably
we can replace shiny-server.service with the upstream version
(https://github.com/rstudio/shiny-server/blob/master/config/systemd/shiny-server.service).

[1] ExecStart=/usr/bin/shiny-server
[2] ExecStart=/usr/bin/env bash -c 'exec
/opt/shiny-server/bin/shiny-server >> /var/log/shiny-server.log 2>&1'

[3] ExecStart=/usr/bin/env bash -c 'exec
/usr/lib/shiny-server/bin/shiny-server >> /var/log/shiny-server.log
2>&1'

Then, as far as I can see, it's all working!


A number of node-sockjs-client's dependencies were updated between
1.5.2 and current 1.6.0 so the underlying issue may be an out of date
dependency, or some other change that upstream shiny-server has not
yet adjusted to. Is there a workaround for this, e.g. to ship the
1.5.2 sockjs.js and sockjs.min.js files along with shiny-server as a
patch, until upstream adopts 1.6.0?

Best,
Eric

On Wed, Mar 30, 2022 at 5:14 AM Nilesh Patra <nilesh@debian.org> wrote:
>
> Hi Eric,
>
> On Sun, Mar 27, 2022 at 06:18:49PM +0530, Nilesh Patra wrote:
> > > > 3. update outdated node-shiny-server-client to latest upstream
> > >
> > > Seems a wise thing to do.
> >
> > I have done so.
> >
> > @Eric, if you can try with the newer versions of these packages to check if your
> > second app looks better, that'd be much appreciated.
> > If it is, then rest stuff should be relatively easy to fix.
>
> Did you get a chance to test it with updated versions of the packages?
> I was planning to proceed to finalise this package according to the feedback.
>
> Let me know.
>
> Regards,
> Nilesh



-- 
Eric Brown MD MSc FRCPC
For encryption, OpenPGP public key available on request.


Reply to: