.NET developer wanting to run a MudBlazor app over Docker on a Synology NAS
2.2K
This is just open source code, which is hosted and explained in the docker-mudblazor Repository in Github.
On the github page, the idea behind is explained in detail. I am a software developer that just wanted to play around, make a mudblazor-app, and get it to work on my Synology DS220+ by running it in a Docker Container.

Via DSM (I have 7.3.2 when documenting) go to the Package Manager, and install Container Manager. (which is needed for running Docker Containers).
If you just want to see if it works on minimal mode, you can try to get it to work via the Register tab and than get version 0.1 of all this. (as that is the only version not depending on storage / database) This is explained in detail here
For newer versions, arrange some shared folders first via File Station that Container Manager can access, like /volume1/docker/hello-docker-mudblazor/docker/. Than create subfolders, named pgdata, mudblazor and http. Then generate a certificate, which is explaned here and copy that to the http-folder.
Then create a project, that maps to /volume1/docker/hello-docker-mudblazor via Container Manager, as explained here
Put this yaml in it and then run it.
networks:
docker-mudblazor:
external: false
services:
docker-mudblazor:
image: ivoraedts/hello-docker-mudblazor:latest
depends_on:
postgres:
condition: service_healthy
restart: true
networks:
- docker-mudblazor
volumes:
# - /volume1/docker/hello-docker-mudblazor/data:/app/data
- ./docker/mudblazor:/app/data
- ./docker/https:/app/https:ro
ports:
# <Host Port>:<Container Port>
- "3080:8080"
- "3081:8081"
environment:
# Connection string for the database (overrides appsettings.json)
ConnectionStrings__MudBlazorDatabase: "Host=postgres:5432; Database=SomeTestDatabase; Username=user-name; Password=strong-password"
S3__ServiceURL: "http://minio:9000"
# Instead of the Synology local IP adress, you can better use the QuickConnect ID or a DDNS hostname
S3__PublicURL: "http://192.168.2.16:9000/"
# Other configurable parameters can go here
ASPNETCORE_ENVIRONMENT: Production
postgres:
image: postgres:latest
healthcheck:
test: ["CMD-SHELL", "pg_isready -d SomeTestDatabase"]
interval: 10s
retries: 5
start_period: 10s
timeout: 10s
container_name: docker-mudblazor.postgres
#command: postgres -c max_connections=100
volumes:
# This fix applies to version 18 and later. before it could mount to /var/lib/postgresql/data
# This fix applies to version 18 and later: mount to /var/lib/postgresql/docker works, but does not persist
- ./docker/pgdata:/var/lib/postgresql
networks:
- docker-mudblazor
environment:
POSTGRES_USER: user-name
POSTGRES_PASSWORD: strong-password
ports:
# <Host Port>:<Container Port>
- "1234:5432"
minio:
image: minio/minio:latest
container_name: docker-mudblazor.minio
networks:
- docker-mudblazor
volumes:
- ./docker/minio/data:/data
ports:
# MinIO API
- "9000:9000"
# MinIO Web Console
- "9001:9001"
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
command: minio server /data --console-address ":9001"
minio-init:
image: minio/mc:latest
container_name: docker-mudblazor.minio-init
depends_on:
- minio
entrypoint: >
/bin/sh -c "
/usr/bin/mc alias set myminio http://minio:9000 minioadmin minioadmin;
/usr/bin/mc mb myminio/calendar-events --ignore-existing;
/usr/bin/mc anonymous set public myminio/calendar-events;
exit 0;
"
networks:
- docker-mudblazor
adminer:
image: adminer:latest
container_name: docker-mudblazor.adminer
networks:
- docker-mudblazor
ports:
# <Host Port>:<Container Port>
- "8080:8080"
Content type
Image
Digest
sha256:fefb44bcb…
Size
112.5 MB
Last updated
4 months ago
docker pull ivoraedts/hello-docker-mudblazor