Maybe you remember me. Julian, friend of Pauls. We went for lunch at some point in Barcelona and had a BBQ on your balcony i guess. Dont remember exactly. I am working for Herzog & DeMeuron (Design Technologies) now. I am trying to set up a speckle server internally here to play around with it and figure out if its of good use for us here. Seems very cool, especially when its starting to work with Revit. Thank you for making that possible. Its amazing work. But my question is related to the server setup:
<server url> is setup (docker-compose 1.9.7).
apache virtual host setup.
What works on the client side: Registering, Signing up, Streaming and Receiving from Rhino.
What doesnt work on the client side: Streaming Objects from Revit (Stream shown but nothing inside, seems to be expired?). Console shows this:
Still there is no data for my Revit streams and I would like to make the frontend happen without this workaround.It would be amazing if you have an idea for that or any hint that will give me a good direction to fix the problem or talk about it with the IT department.
Here is the response when i start up docker-compose (if thats of any interest):
Ok, sorry to start with such a big message but I would love to get it to work here. Paul already offered a little intro to the frontend and how to work with it as soon as we are up and running. Looking forward to be able to use it.
Hope you get a picture of the problem. If not, or you need some more info, let me know.
Have a nice evening. And lets have some beers in London soon.
Best,
Julian
Hello @julian! welcome around these parts, glad to see you here. The Barcelona balcony actually belongs to Mr. Bob McNeel, so kudos to him and @luis for those good times!
I’ll unpack a few things, step by step:
Chapter 1: SSL (https): if you have nginx proxying the requests to your server (from web → localhost:3000, or whatever port docker was exposing there), then getting it set up is quite a breeze. I always refer to this guide.
Chapter 2: Websockets not working is a common problem, and it’s part of setting up nginx (or your proxy server) to correctly handle this. Had some fun just last week with @mswaidan on this one
The important part for websockets is under the #ws support comment.
Chapter 3: Frontend For the frontend, using app.speckle.etc is actually the easiest way to go now. If you want to deploy it yourself, with docker it’s a bit of a problem, which involves executing a set of commands inside the container itself; this will be lost when upgrading. I keep on meaning to write a proper docker-compose-up script that includes the admin but i keep not finding the time for it.
If you don’t deploy with docker, it’s rather easy… once you’ve cloned the speckle server repo, you:
cd speckle server folder/plugins
git clone speckleadmin.git (use the correct url!)
cd speckle server folder/plugins/speckleadmin/
npm install
npm run build
restart the server, and you’re good to go!
Chapter 4: No data from revit streams - that’s a separate issue; does it work with hestia though? we’ll pick it up from there.
Yeah. Thanks to Bob of course! And Luis. Of course he was involved there as well. The whole McNeel crew. Haha.
Thanks for this complete answer. SSL seems to work. I think I will try to figure this websocket handshake out. Have to do it with apache. Will keep you updated if I can make it work.
Good to know that the frontend thingy can not really work yet. But step by step, that’s the next thing.
Update: In the end I wasn’t able to solve the handshake but the functionality in Revit somehow worked (receiving and sending) and I was able to run some tests. Thank you for your help!
For the record:
I added the following in the apache config:
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule .* "wss://localhost:3000%{REQUEST_URI}" [P]
ProxyPreserveHost On
ProxyRequests On
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/