π³ MdExplorer in Docker
Una singola immagine Docker (~1 GB) che fa girare MdExplorer su macOS, Linux e Windows senza installazione nativa, senza dipendenze .NET, senza configurazioni di sistema. Apri il browser e lo usi come una web app locale.
ghcr.io/salaroglio/mdexplorerlatest · 0.1.1-preview127.0.0.1:5000π Avvio rapido β macOS macOS
Prerequisito: Docker Desktop per Mac installato e in esecuzione.
Apri il Terminale ed esegui questi comandi:
# Crea la cartella e scarica i due file di setup
mkdir mdexplorer && cd mdexplorer
curl -O https://www.mdexplorer.net/docker/docker-compose.yml
curl -O https://www.mdexplorer.net/docker/start.sh
chmod +x start.sh
# Avvia (apre automaticamente il browser quando MDE Γ¨ pronto)
./start.sh
Al primo avvio Docker scarica l'immagine (~1 GB) e il container
impiega pochi secondi per inizializzare il database. Lo script
aspetta che MdExplorer risponda e poi apre Safari/Chrome su
http://127.0.0.1:5000/client2/index.html.
mdexplorer/workspace/ sul tuo Mac. Puoi
editarli sia da MdExplorer (nel browser) sia con VS Code,
BBEdit o qualsiasi altro editor β il FileSystemWatcher rileva i
cambiamenti esterni.
Comandi utili
# Fermare il container (mantiene i dati)
docker compose down
# Riavviare
./start.sh
# Aggiornare alla versione piΓΉ recente
docker compose pull && docker compose up -d
# Vedere i log in tempo reale
docker compose logs -f
π§ Avvio rapido β Linux Linux
Procedura identica a macOS. Lo script start.sh
rileva automaticamente l'OS e usa xdg-open per il
browser.
mkdir mdexplorer && cd mdexplorer
curl -O https://www.mdexplorer.net/docker/docker-compose.yml
curl -O https://www.mdexplorer.net/docker/start.sh
chmod +x start.sh
./start.sh
πͺ Avvio rapido β Windows Windows
Prerequisito: Docker Desktop per Windows con backend WSL2.
Apri PowerShell ed esegui:
# Crea la cartella e scarica i file di setup
mkdir mdexplorer; cd mdexplorer
Invoke-WebRequest -Uri https://mdexplorer.net/docker/docker-compose.yml -OutFile docker-compose.yml
Invoke-WebRequest -Uri https://mdexplorer.net/docker/start.ps1 -OutFile start.ps1
# Avvia
.\start.ps1
Lo script scrive automaticamente un file .env con il
percorso assoluto della cartella workspace (su
Windows Γ¨ necessario per la funzione "Apri in VS Code";
PowerShell non propaga $PWD ai processi figli come
fa bash su Unix).
π οΈ Cosa Γ¨ incluso nell'immagine
- MdExplorer Service (backend .NET 8 + frontend Angular)
- Pandoc β export Word / HTML / EPUB
- Graphviz + PlantUML jar β rendering diagrammi UML
- OpenJDK 17 (per PlantUML)
- Git + OpenSSH β operazioni repository
- SQLite β storage embedded
π Sicurezza & rete
Il container Γ¨ raggiungibile solo dal browser sulla
stessa macchina: il binding host Γ¨
127.0.0.1:5000:5000, Docker non pubblica la porta
su nessuna interfaccia di rete. Stesso comportamento della
versione desktop di MdExplorer.
5000:5000
senza prima aggiungere autenticazione: MdExplorer non ha un sistema
di login (Γ¨ pensato come app personale single-user). Esporlo sulla
LAN aziendale significa esporre tutti i tuoi documenti.
π€ Open in VS Code β come funziona
Quando clicchi "Apri in editor" in MdExplorer dentro al container, il backend non puΓ² lanciare VS Code (Γ¨ isolato). Invece:
- Il backend traduce il path container (
/workspace/foo.md) nel path host (/Users/tu/mdexplorer/workspace/foo.md). - Restituisce un URL
vscode://file//Users/tu/.../foo.md. - Il browser lo passa al sistema operativo.
- macOS / Windows / Linux lanciano VS Code nativo sul file giusto.
Funziona anche con IntelliJ IDEA se selezionato come IDE preferito.
π Troubleshooting
"Cannot connect to the Docker daemon"
Docker Desktop non Γ¨ in esecuzione. Avvialo e riprova.
Il browser si apre ma vedo "Connection refused"
Il container Γ¨ ancora in inizializzazione. Aspetta qualche secondo e ricarica. Se persiste:
docker compose logs --tail 50
Modifico un file dall'host ma MdExplorer non lo vede Windows
Su Windows + WSL2, gli eventi inotify dei filesystem Windows non sempre si propagano nei container Linux. Workaround: tieni i progetti in una cartella WSL2 nativa, oppure aspetta che un altro evento triggerΓ la lettura.
Voglio cancellare tutto e ricominciare
docker compose down
rm -rf workspace data # ATTENZIONE: cancella anche i tuoi .md
rm .env # solo su Windows
./start.sh
π¦ Dettagli tecnici
- Image registry: GitHub Container Registry
- Architetture supportate:
linux/amd64(build multi-arch per Apple Silicon arriverΓ a breve) - Sorgenti Dockerfile: github.com/salaroglio/MdExplorer/tree/master/docker
- Issue tracker: GitHub Issues
π³ MdExplorer on Docker
A single Docker image (~1 GB) that runs MdExplorer on macOS, Linux and Windows with no native install, no .NET dependencies, no system tweaks. Open your browser and use it as a local web app.
ghcr.io/salaroglio/mdexplorerlatest · 0.1.1-preview127.0.0.1:5000π Quickstart β macOS macOS
Prerequisite: Docker Desktop for Mac installed and running.
Open Terminal and run:
# Create folder and download the two setup files
mkdir mdexplorer && cd mdexplorer
curl -O https://www.mdexplorer.net/docker/docker-compose.yml
curl -O https://www.mdexplorer.net/docker/start.sh
chmod +x start.sh
# Start (opens the browser automatically when MDE is ready)
./start.sh
On first run Docker pulls the image (~1 GB) and the
container takes a few seconds to initialise its database. The
script waits until MdExplorer responds, then opens
Safari/Chrome on
http://127.0.0.1:5000/client2/index.html.
mdexplorer/workspace/ on your Mac. You can
edit them either from MdExplorer (in the browser) or from
VS Code, BBEdit, or any other editor β the
FileSystemWatcher will pick up external changes.
Useful commands
# Stop the container (data is preserved)
docker compose down
# Start again
./start.sh
# Update to the latest version
docker compose pull && docker compose up -d
# Tail the logs
docker compose logs -f
π§ Quickstart β Linux Linux
Same procedure as macOS. The start.sh script
detects the OS and uses xdg-open for the browser.
mkdir mdexplorer && cd mdexplorer
curl -O https://www.mdexplorer.net/docker/docker-compose.yml
curl -O https://www.mdexplorer.net/docker/start.sh
chmod +x start.sh
./start.sh
πͺ Quickstart β Windows Windows
Prerequisite: Docker Desktop for Windows with the WSL2 backend.
Open PowerShell and run:
# Create folder and download setup files
mkdir mdexplorer; cd mdexplorer
Invoke-WebRequest -Uri https://mdexplorer.net/docker/docker-compose.yml -OutFile docker-compose.yml
Invoke-WebRequest -Uri https://mdexplorer.net/docker/start.ps1 -OutFile start.ps1
# Start
.\start.ps1
The script writes a .env file with the absolute
path to the workspace folder (needed on Windows
for the "Open in VS Code" feature β PowerShell does not
propagate $PWD to child processes like bash does
on Unix).
π οΈ What's inside the image
- MdExplorer Service (.NET 8 backend + Angular frontend)
- Pandoc β Word / HTML / EPUB export
- Graphviz + PlantUML jar β UML diagram rendering
- OpenJDK 17 (for PlantUML)
- Git + OpenSSH β repository operations
- SQLite β embedded storage
π Security & networking
The container is only reachable from the browser on
the same machine: the host binding is
127.0.0.1:5000:5000, Docker does not publish the
port on any network interface. Same posture as the desktop
version of MdExplorer.
5000:5000 without first adding authentication:
MdExplorer has no login system (it's designed as a personal
single-user app). Exposing it on the corporate LAN means
exposing all of your documents.
π€ "Open in VS Code" β how it works
When you click "Open in editor" inside the containerised MdExplorer, the backend can't launch VS Code (it's isolated). Instead:
- Backend translates the container path (
/workspace/foo.md) into the host path (/Users/you/mdexplorer/workspace/foo.md). - Returns a
vscode://file//Users/you/.../foo.mdURL. - The browser hands it off to the OS.
- macOS / Windows / Linux launches native VS Code on the right file.
Works with IntelliJ IDEA too if you select it as the project's preferred IDE.
π Troubleshooting
"Cannot connect to the Docker daemon"
Docker Desktop isn't running. Start it and retry.
Browser opens but I get "Connection refused"
The container is still starting up. Wait a few seconds and refresh. If it persists:
docker compose logs --tail 50
I edit a file from the host but MdExplorer doesn't notice Windows
On Windows + WSL2, inotify events from Windows filesystems don't always propagate into Linux containers. Workaround: keep your projects in a WSL2-native folder, or wait for another event to trigger a re-read.
I want to wipe everything and start over
docker compose down
rm -rf workspace data # WARNING: this also deletes your .md files
rm .env # Windows only
./start.sh
π¦ Technical details
- Image registry: GitHub Container Registry
- Supported architectures:
linux/amd64(multi-arch build for Apple Silicon coming soon) - Dockerfile sources: github.com/salaroglio/MdExplorer/tree/master/docker
- Issue tracker: GitHub Issues