Eine kleine Anleitung wie man SFTPGo mit Portainer auf einem Ubuntu-Server installiert. Bei dieser Anleitung wird ein Laufwerk von einem Windows-Server, mit dem Ubuntu-Server verbunden, um die Daten auf diesem Laufwerk zu speichern.
# Mit dem Ubuntu-Server über SSH verbinden (z.b. über PowerShell)
ssh user@ip-adresse
# Ordner erstellen, der später mit dem Freigabe-Ordner vom Windows-Server gebindet wird
sudo mkdir -p /mnt/win_server_filesharing
# Freigabe-Ordner vom Windows-Server mounten
# [USER] durch den richtigen User ersetzen
# [vers=3.0] das ist die SMB version, schauen ob die SMBv3 unterstützt wird, alternativ auf SMBv2 wechseln
# [uid] das ist die User-ID, die muss angepasst werden, mit dem Befehl "id" ausgeben
# [gid] das ist die Group-ID, die muss angepasst werden, mit dem Befehl "id" ausgeben
sudo mount -t cifs //10.10.10.10/SFTP_Go_data /mnt/win_server_filesharing -o credentials=/home/$USER/.smbcredentials,uid=1000,gid=1000,iocharset=utf8,vers=3.0
# Schauen ob im Ordner was zu sehen ist
ls -l /mnt/win_server_filesharing
# Die Datei "/etc/fstab" damit der Mount nach dem Neustart wieder initialistert wird
sudo nano /etc/fstab
# in die "/etc/fstab" ganz unten eintragen (Speicheren mit Strg+O, dann Enter und schließen mit Strg+X)
//10.10.10.10/SFTP_Go_data /mnt/win_server_filesharing cifs credentials=/home/inge/.smbcredentials,uid=1000,gid=1000,iocharset=utf8,vers=3.0,noserverino 0 0
### Vorbereitung für Docker ###
# Hauptverzeichnis für SFTPGo erstellen
mkdir -p /home/[USER]/docker/sftpgo/config
mkdir -p /home/[USER]/docker/sftpgo/hostkeys
mkdir -p /home/[USER]/docker/sftpgo/backups
mkdir -p /home/[USER]/docker/sftpgo/db
# Rechte für die Ordner setzen (Falls nötig)
sudo chown -R 1000:1000 /home/[USER]/docker/sftpgo/config
sudo chown -R 1000:1000 /home/[USER]/docker/sftpgo/hostkeys
sudo chown -R 1000:1000 /home/[USER]/docker/sftpgo/backups
sudo chown -R 1000:1000 /home/[USER]/docker/sftpgo/backups
# in den Portainer-Ordner wechseln
cd /home/[USER]/docker/sftpgo/config
# die sftpgo.json Datei erstellen
nano sftpgo.json
# folgendes in die sftpgo.json einfügen (speichern mit Strg+O, Enter und schließen mit Strg+X)
{
"httpd": {
"bindings": [
{
"languages": ["de"]
}
]
}
}
# Jetzt zu Portainer wechseln und ein Stack erstellen und das hier einfügen
version: '3.8'
services:
sftpgo:
image: drakkan/sftpgo:2.7.x-plugins
container_name: SFTPGo
user: "1000:1000" # Optional: Passe dies an deine 'id' an, falls Rechteprobleme auftreten
ports:
- "8813:8080" # Web-Interface
- "9422:2022" # SFTP Zugriff
environment:
SFTPGO_WEBDAVD__BINDINGS__0__PORT: 5007
SFTPGO_DATA_PROVIDER__DRIVER: mysql
SFTPGO_DATA_PROVIDER__NAME: sftpgo
SFTPGO_DATA_PROVIDER__HOST: mysql
SFTPGO_DATA_PROVIDER__PORT: 3306
SFTPGO_DATA_PROVIDER__USERNAME: admin
SFTPGO_DATA_PROVIDER__PASSWORD: admin-PW
SFTPGO_COMMON__DEFENDER__ENABLED: "true"
SFTPGO_COMMON__DEFENDER__BAN_TIME: 15
SFTPGO_COMMON__DEFENDER__BAN_TIME_INCREMENT: 100
SFTPGO_COMMON__DEFENDER__THRESHOLD: 5
SFTPGO_COMMON__DEFENDER__OBSERVATION_TIME: 15
volumes:
# DIE DATEN: Hier wird die Windows-Festplatte eingebunden
- /mnt/win_server_filesharing:/srv/sftpgo:rw
# KONFIGURATION: Diese liegen lokal auf deinem Ubuntu Server
- /home/[USER]/docker/sftpgo/config:/var/lib/sftpgo:rw
- /home/[USER]/docker/sftpgo/hostkeys:/var/lib/sftpgo/hostkeys:rw
- /home/[USER]/docker/sftpgo/backups:/srv/sftpgo/backups:rw
- /home/[USER]/docker/sftpgo/config/sftpgo.json:/etc/sftpgo/sftpgo.json:ro
# Hinweis: Die Datei sftpgo.json wird beim ersten Start automatisch erstellt,
# wenn du den Mount unten weglässt oder die Datei vorher leer anlegst.
depends_on:
- mysql
restart: unless-stopped
mysql:
image: mariadb:11.4-noble
#user: "1000:1000"
container_name: SFTPGo-DB
environment:
TZ: Europe/Zurich
MYSQL_DATABASE: sftpgo
MYSQL_USER: admin
MYSQL_PASSWORD: admin-PW
MYSQL_ROOT_PASSWORD: "mysql_rootpass"
volumes:
- ./db:/var/lib/mysql:rw
restart: unless-stopped
# Wenn alles funktioniert hat, dann SFTPGo im Browser öffnen
Code-Sprache: PHP (php)