Docker solid-server on Synology How-to

I made a how-to create a docker solid-server on Synology NAS

It covers the following scope :

  • root free domain with freenom
  • wildcard Let’s encrypt certificate with sslforfree
  • build docker image (docker-hub or own build)
  • run docker with remanent data and use of a config.json file
  • use of Synology reverse proxy

Could you help me to improve it’s usability.
Hope it can help

6 Likes

Hello all, first post, be gentle ! The link above is what I need - I am not sure how to get SoliProject Docker working.
Does anyone have a working link? I am going to search for other Docker posts.

https://www.bourgeoa.ga/solid-wiki/index.php?title=Solid_server_with_docker_on_a_Synology_Nas

SolidProject Docker works fine on my Synology NAS DS920+. F.Y.I.
Nowadays, running CSS docker on NAS is quite intuitive and friendly.

Sorry my links are dead.
I do not have a copy.
I can give more information if you like.

Could you give some details
What are your parameters. Do you have your own domain and certificates. I’m running xpenology

I always have a 401 unauthorized
Thanks for any help

Hi bourgeoa.

This experience is performed at home, so the network is LAN not internet.
There is no domain name or certificates for doing this.
The following is the settings for solidproject docker execution on NAS.

And everything seems so fine.

Checked. CSS docker works perfectly on LAN.

Oh. Ignore that message. It doesn’t matter.
We should log in CSS through a Solid app, not connect it directly.

Well using your server address does work but you cannot really work with that.
You are able to create a pod eventually login with a local webapp.

But the login do not work correctly because you do not have a secure connection to be able to write on your pod or use http://localhost. If you look at the log CSS is complaining.
(I can run CSS on my laptop on http://localhost)
With the server http://localhost do not work.

I don’t know how to make the reverse nginx proxy resolve that problem.

Hi bourgeoa.

My experience above just shows how to run CSS container on NAS properly.
Accroding your description, it seems a CSS-App interaction problem.
The problem you encountered has nothing to do with NAS or container.

I’ve a self-build docker image of CSSv2.0.1 and run it as a container on AKS.
I also run a webserver on EC2 VM for providing a solid app (mashlib).
There two tricky things to make them work togather correctly.

First. Once solid app is logically separated from CSS. The webserver must be HTTPS enabled. That means a valid SSL certificate is required.

Second. Providing CSS services on internet, the parameter [–baseUrl, -b] is necessary to the server command. The exmaple is [http://your-domain-name:$PORT/].

Hope these experiences are helpful to you.

The problem you encountered has nothing to do with NAS or container.

I do not understand.

I build CSS with -b https://bourgeoa.ga:3000
I have open port 3000 on my router and docker 3000:3000

I suppose I need to setup nginx for the certificates in some way. I tried :

Have you more ideas how to set nginx ? in the CSS container ?

May I abandon the docker way and try to run CSS directly in /volume1/…/css with SSL ?

Hi bourgeoa.

I’ve upgraded the AKS containers from CSSv2.0.1 to CSSv.3.0.0 successfully yesterday.
Everything goes fine as usual. However, my environment is quite simple compare with yours.
Threre are only two containers (K8S PODs actually) on the CSS side.
One is CSS with private IP and the other is nginx as reverse proxy with public IP.

I build CSS with -b https://bourgeoa.ga:3000
I have open port 3000 on my router and docker 3000:3000

I assume that “router” is the machine your CSS container resided. So the “router” has an accessible IP address (usually a private IP) to your reverse proxy.
If my assumption is correct, your reverse proxy should setted as “https://bourgeoa.ga:3000/ → http://[router-IP]:3000”. (Note: HTTP for router, not HTTPS)

Since CSS is a server already, I just run it as what it is (file.json configuration). The reverse proxy and CSS are on the same LAN, so they communicate with each other directly (by IP, not domain-name).

Some solid apps have compatibility issues with CSS. Make sure that your solid app is compatible with CSS.