Coolify deployed WordPress in Visual Studio Code bearbeiten
em Netcup-VPS erfolgreich per SFTP in VS Code bearbeiten konnte – Eine vollständige Schritt-für-Schritt-Dokumentation Der Zugriff auf die WordPress-Dateien eines Coolify-Deployments ist nicht so einfach wie bei klassischem Webhosting. WordPress läuft in einem Docker-Container, die Dateien liegen in einem Volume, und normale Benutzer haben keinen Zugriff.Zusätzlich verursacht Windows manchmal Probleme mit SSH-Tools wie ssh-keygen. In
em Netcup-VPS erfolgreich per SFTP in VS Code bearbeiten konnte – Eine vollständige Schritt-für-Schritt-Dokumentation
Der Zugriff auf die WordPress-Dateien eines Coolify-Deployments ist nicht so einfach wie bei klassischem Webhosting. WordPress läuft in einem Docker-Container, die Dateien liegen in einem Volume, und normale Benutzer haben keinen Zugriff.
Zusätzlich verursacht Windows manchmal Probleme mit SSH-Tools wie ssh-keygen.
In diesem Artikel dokumentiere ich komplett und im Detail, wie ich es geschafft habe, auf die WordPress-Dateien in Coolify per SFTP in Visual Studio Code zuzugreifen – inklusive aller Stolpersteine, Fehlermeldungen und Lösungen.
1. Ausgangssituation
Ich hatte:
- Einen Netcup VPS
- Eine WordPress-Installation, bereitgestellt über Coolify
- Zugriff per SSH über den Benutzer deploy
- Visual Studio Code unter Windows
- Den Wunsch, meine WordPress-Dateien direkt in VS Code zu bearbeiten
Das Problem:
Coolify legt WordPress in Docker-Volumes ab – nicht im normalen Dateisystem. SFTP-Plugins sehen die Dateien deshalb nicht.
2. Ermitteln, wo WordPress wirklich liegt
Zuerst musste ich herausfinden, wo Coolify WordPress tatsächlich speichert.
Dafür habe ich mich per SSH auf den Server verbunden und folgende Befehle ausgeführt:
docker ps
Dort habe ich den WordPress-Container identifiziert. Danach:
docker inspect <container-id> --format '{{json .Mounts}}'
Die Ausgabe zeigte unter anderem:
"Type": "volume",
"Name": "d80kgw4s8ccs0ssssow40s8g_wordpress-files",
"Source": "/var/lib/docker/volumes/d80kgw4s8ccs0ssssow40s8g_wordpress-files/_data",
"Destination": "/var/www/html"
Das bedeutet:
- WordPress liegt in einem Docker-Volume
- Der echte Pfad auf dem Host lautet:
/var/lib/docker/volumes/d80kgw4s8ccs0ssssow40s8g_wordpress-files/_data
3. Problem: Der Benutzer „deploy“ sieht keine Dateien
Wenn ich mich per deploy verbunden habe und versuchte:
ls /var/lib/docker/volumes/d80kgw4s8ccs0ssssow40s8g_wordpress-files/_data
bekam ich:
„Permission denied“
oder
gar keine Dateien sichtbar
Der Grund:
-
/var/lib/dockergehört root - normale User dürfen die Ordner nicht einmal betreten
- Docker-Volumes gehören ebenfalls root und sind nicht für User sichtbar
Ich musste dem Benutzer deploy gezielt Zugang zu genau diesem Volume geben – ohne Sicherheit oder Docker-Eigentümer durcheinanderzubringen.
4. Lösung: ACL-Rechte für den WordPress-Ordner vergeben
Standardrechte (chmod/chown) wären unsauber und gefährlich.
Die korrekte Lösung ist:
✔ Zugriff nur per ACL erlauben
✔ Elternverzeichnisse nur zum „Durchschreiten“ freigeben
✔ Volume selbst lesbar und beschreibbar machen
✔ Automatische Berechtigungsvererbung für neue Dateien
Dazu habe ich zuerst ACLs installiert:
sudo apt install acl
Dann:
WPPATH="/var/lib/docker/volumes/d80kgw4s8ccs0ssssow40s8g_wordpress-files/_data"
sudo setfacl -m u:deploy:--x /var/lib/docker
sudo setfacl -m u:deploy:--x /var/lib/docker/volumes
sudo setfacl -m u:deploy:--x /var/lib/docker/volumes/d80kgw4s8ccs0ssssow40s8g_wordpress-files
sudo setfacl -R -m u:deploy:rwX "$WPPATH"
sudo setfacl -R -d -m u:deploy:rwX "$WPPATH"
Jetzt konnte deploy auf die Dateien zugreifen – zumindest über SSH.
5. WordPress-Pfad in das Home-Verzeichnis mounten
Damit SFTP-Tools und VS Code besser mit dem Volume umgehen können, habe ich das Volume an eine viel besser erreichbare Stelle eingebunden:
sudo mkdir -p /home/deploy/wp
sudo mount --bind "$WPPATH" /home/deploy/wp
Dann dauerhaft gemacht über /etc/fstab:
echo "$WPPATH /home/deploy/wp none bind 0 0" | sudo tee -a /etc/fstab
Ab jetzt befanden sich alle WordPress-Dateien unter:
/home/deploy/wp
Das ist für SFTP perfekt!
6. Problem: Unter Windows funktionieren ssh, ssh-keygen, ssh-copy-id nicht
Obwohl Windows anzeigte, dass der OpenSSH-Client installiert war, bekam ich Fehlermeldungen wie:
“ssh-keygen: command not found”
“ssh: command not found”
Auch der direkte Pfad funktionierte nicht:
C:\Windows\System32\OpenSSH\ssh-keygen.exe fehlt oder ist nicht verknüpft
Das passiert häufig unter Windows 10/11.
7. Lösung: Git Bash installieren
Git Bash beinhaltet eigene, voll funktionsfähige Versionen von:
- ssh
- ssh-keygen
- ssh-copy-id
- scp
Ich habe Git installiert und dann Git Bash geöffnet.
8. SSH-Schlüssel erfolgreich erzeugen
In Git Bash:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
ssh-keygen -t ed25519 -C "deploy@152.53.106.224" -f ~/.ssh/id_deploy_netcup
Dadurch wurden erzeugt:
~/.ssh/id_deploy_netcup
~/.ssh/id_deploy_netcup.pub
9. Public Key auf den VPS hochladen
Weiter in Git Bash:
cat ~/.ssh/id_deploy_netcup.pub | ssh deploy@152.53.106.224 \
'mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys'
Beim ersten Mal kam:
Are you sure you want to continue connecting (yes/no)?
→ yes
Dann musste ich ein einziges Mal das Passwort eingeben.
10. Testen, ob SSH mit Key funktioniert
ssh -i ~/.ssh/id_deploy_netcup deploy@152.53.106.224
Jetzt:
- keine Passwortabfrage mehr
- direkter SSH-Login
Damit ist alles für SFTP bereit.
11. Problem: Welches VS-Code-Plugin?
Das Plugin ftp-simple war:
- veraltet
- schlecht bewertet
- instabil
Ich habe mich deshalb für das moderne, gepflegte Plugin entschieden:
✔ SFTP (Natizyskunk)
(Die beste Wahl für SSH-basiertes Arbeiten)
12. SFTP-Konfiguration in VS Code
Ich habe in VS Code:
- irgendeinen lokalen Ordner geöffnet
-
Strg + Shift + Pgedrückt - SFTP: Config ausgeführt
Dadurch wurde erstellt:
.vscode/sftp.json
In diese Datei kam:
{
"name": "Netcup WordPress",
"protocol": "sftp",
"host": "152.53.106.224",
"port": 22,
"username": "deploy",
"privateKeyPath": "C:\\Users\\<DEINUSER>\\.ssh\\id_deploy_netcup",
"remotePath": "/home/deploy/wp",
"uploadOnSave": true,
"syncMode": "update",
"ignore": [
".vscode",
".git",
"node_modules",
"wp-content/cache",
"wp-content/uploads/backups"
]
}
Wichtig:
- Der Pfad zum privaten Schlüssel muss unter Windows escaped sein
- Der Remote-Pfad ist der gemountete Volume-Pfad
/home/deploy/wp
13. WordPress-Dateien herunterladen und bearbeiten
Dank der Konfiguration konnte ich:
Projekt herunterladen:
SFTP: Download Project
Dateien automatisch hochladen:
uploadOnSave: true
Dateien eins zu eins synchronisieren:
SFTP: Sync Local -> Remote
SFTP: Sync Remote -> Local
Jetzt fühlte es sich an, als würde WordPress lokal auf meinem PC liegen – nur eben direkt mit dem Server verknüpft.
Fazit
So habe ich es geschafft, meine WordPress-Installation aus Coolify über SFTP in VS Code zu bearbeiten, indem ich:
- das Docker-Volume identifiziert habe
- gezielt ACL-Rechte für den Benutzer
deployeingerichtet habe - das Volume ins Home-Verzeichnis gemountet habe
- Git Bash genutzt habe, um funktionsfähige SSH-Tools zu bekommen
- ein Schlüsselpaar erstellt und auf dem Server hinterlegt habe
- das VS-Code-Plugin (SFTP – Natizyskunk) verwendet habe
- eine funktionierende
sftp.jsonkonfiguriert habe
Mit dieser Lösung kann ich meine WordPress-Dateien so einfach bearbeiten wie auf einem normalen Webspace – mit allen Vorteilen von Docker und Coolify
Frequently asked questions
Clear answers about our architecture and construction process, timelines, collaboration, and project requirements.
How does the project process start?
Every project begins with a consultation to understand goals, budget, and scope, followed by a clear proposal and phased plan.
Do you handle design and construction?
Yes, we manage the full process — architectural design, technical planning, and construction execution.
Can you work with international clients?
We regularly collaborate with global partners and remote clients using structured communication and shared documentation.
How are materials selected?
We provide curated options and technical guidance so materials are approved based on performance, aesthetics, and cost.
What is the typical timeline?
Timelines vary by scale and complexity, but each project follows a defined schedule with milestone tracking.
Do you provide on-site supervision?
Yes, professional supervision ensures correct execution, verified materials, and consistent build quality.
Ready to build your project?
Let’s turn your ideas into a precise, functional, and award-level space with expert guidance from day one.
Start your project