Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Docker compose use case: Initiatl configuration keep displaying after docker restart #1883

Open
2 tasks done
dauphinpasdroit opened this issue Jan 30, 2025 · 0 comments
Labels
bug Something isn't working

Comments

@dauphinpasdroit
Copy link

dauphinpasdroit commented Jan 30, 2025

⚠️ This issue respects the following points: ⚠️

  • This is a bug, not a question or a configuration issue.
  • This issue is not already reported on Github (I've searched it).

Bug description

Hey,

I encounter a weird issue running sftpgo on docker with an mysql database.

Each time I recreate the containers docker compose up -d --force-recreate, the app ask me for the initial configuration:

Image

With this docker compose, each time I recreate the docker, it keeps on asking for the initial administrator setup and all the configuration I've made disappeared.

Find below the docker compose file and the logs output from the container.

Steps to reproduce

  1. Get the docker compose file from the description
  2. run docker compose up -d
  3. Check the sftpgo application and do the initial setup configuration.
  4. run docker compose up -d --force-recreate
  5. Check the sftpgo application, and It'll re popup the initial setup configuration.

Expected behavior

The application should keep the data and the configuration I've setup during the initial deployment.

SFTPGo version

v2.6.4-alpine

Data provider

mysql

Installation method

Community Docker image

Configuration

services:
  sftpgo:
    image: "drakkan/sftpgo:v2.6.4-alpine"
    restart: unless-stopped
    expose:
      - "8080"
      - "5007"
      - "2022"
    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: "${SQL_USERNAME}"
      SFTPGO_DATA__PROVIDER__PASSWORD: "${SQL_PASSWORD}"
      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:
      - ./sftpgo_data:/srv/sftpgo

  mysql:
    image: mysql:latest
    restart: always
    environment:
      MYSQL_DATABASE: "sftpgo"
      MYSQL_USER: "${SQL_USERNAME}"
      MYSQL_PASSWORD: "${SQL_PASSWORD}"
      MYSQL_ROOT_PASSWORD: "${SQL_ROOT_PASSWORD}"
    volumes:
      - ./mysql:/var/lib/mysql

  npm:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
      - "2022:2022"

    volumes:
      - ./npm_data:/data
      - ./letsencrypt:/etc/letsencrypt

Relevant log output

{"level":"info","time":"2025-01-30T16:26:04.615","sender":"service","message":"starting SFTPGo 2.6.4-386448e6-2024-11-28T06:10:54Z +metrics +azblob +gcs +s3 +bolt +mysql +pgsql +sqlite -unixcrypt +portable, config dir: ., config file: , log max size: 10 log max backups: 5 log max age: 28 log level: debug, log compress: false, log utc time: false, load data from: \"\", grace time: 0 secs"}
{"level":"info","time":"2025-01-30T16:26:04.615","sender":"config","message":"unable to read env files from \"env.d\": open env.d: no such file or directory"}
{"level":"debug","time":"2025-01-30T16:26:04.622","sender":"config","message":"config file used: '\"/etc/sftpgo/sftpgo.json\"', config loaded: {Common:{IdleTimeout:15 UploadMode:0 Actions:{ExecuteOn:[] ExecuteSync:[] Hook:} SetstatMode:0 RenameMode:0 ResumeMaxSize:0 TempPath: ProxyProtocol:0 ProxyAllowed:[] ProxySkipped:[] StartupHook: PostConnectHook: PostDisconnectHook: DataRetentionHook: MaxTotalConnections:0 MaxPerHostConnections:20 AllowListStatus:0 AllowSelfConnections:0 DefenderConfig:{Enabled:true Driver:memory BanTime:15 BanTimeIncrement:100 Threshold:5 ScoreInvalid:2 ScoreValid:1 ScoreLimitExceeded:3 ScoreNoAuth:0 ObservationTime:15 EntriesSoftLimit:100 EntriesHardLimit:150 LoginDelay:{Success:0 PasswordFailed:1000}} RateLimitersConfig:[{Average:0 Period:1000 Burst:1 Type:2 Protocols:[SSH FTP DAV HTTP] GenerateDefenderEvents:false EntriesSoftLimit:100 EntriesHardLimit:150}] Umask: ServerVersion: Metadata:{Read:0} EventManager:{EnabledCommands:[]} idleTimeoutAsDuration:0 idleLoginTimeout:0 defender:<nil> allowList:<nil> rateLimitersList:<nil> proxyAllowed:[] proxySkipped:[]} ACME:{Email: KeyType:4096 CertsPath:certs CAEndpoint:https://acme-v02.api.letsencrypt.org/directory Domains:[] RenewDays:30 HTTP01Challenge:{Port:80 WebRoot: ProxyHeader:} TLSALPN01Challenge:{Port:0} accountConfigPath: accountKeyPath: lockPath: tempDir:} SFTPD:{Bindings:[{Address: Port:2022 ApplyProxyConfig:true}] MaxAuthTries:0 HostKeys:[] HostCertificates:[] HostKeyAlgorithms:[] KexAlgorithms:[] MinDHGroupExchangeKeySize:2048 Ciphers:[] MACs:[] PublicKeyAlgorithms:[] TrustedUserCAKeys:[] RevokedUserCertsFile: LoginBannerFile: EnabledSSHCommands:[md5sum sha1sum sha256sum cd pwd scp] KeyboardInteractiveAuthentication:true KeyboardInteractiveHook: PasswordAuthentication:true certChecker:<nil> parsedUserCAKeys:[]} FTPD:{Bindings:[{Address: Port:0 ApplyProxyConfig:true TLSMode:0 TLSSessionReuse:0 CertificateFile: CertificateKeyFile: MinTLSVersion:12 ForcePassiveIP: PassiveIPOverrides:[] PassiveHost: ClientAuthType:0 TLSCipherSuites:[] PassiveConnectionsSecurity:0 ActiveConnectionsSecurity:0 IgnoreASCIITransferType:0 Debug:false ciphers:[]}] BannerFile: CertificateFile: CertificateKeyFile: CACertificates:[] CARevocationLists:[] ActiveTransfersPortNon20:true DisableActiveMode:false EnableSite:false HASHSupport:0 CombineSupport:0 PassivePortRange:{Start:50000 End:50100} acmeDomain:} WebDAVD:{Bindings:[{Address: Port:5007 EnableHTTPS:false CertificateFile: CertificateKeyFile: MinTLSVersion:12 ClientAuthType:0 TLSCipherSuites:[] Protocols:[] Prefix: ProxyAllowed:[] ClientIPProxyHeader: ClientIPHeaderDepth:0 DisableWWWAuthHeader:false allowHeadersFrom:[]}] CertificateFile: CertificateKeyFile: CACertificates:[] CARevocationLists:[] Cors:{AllowedOrigins:[] AllowedMethods:[] AllowedHeaders:[] ExposedHeaders:[] AllowCredentials:false Enabled:false MaxAge:0 OptionsPassthrough:false OptionsSuccessStatus:0 AllowPrivateNetwork:false} Cache:{Users:{ExpirationTime:0 MaxSize:50} MimeTypes:{Enabled:true MaxSize:1000 CustomMappings:[]}} acmeDomain:} ProviderConf:{Driver:sqlite Name:sftpgo.db Host: Port:0 Username: Password: SSLMode:0 DisableSNI:false TargetSessionAttrs: RootCert: ClientCert: ClientKey: ConnectionString: SQLTablesPrefix: TrackQuota:2 PoolSize:0 UsersBaseDir:/srv/sftpgo/data Actions:{ExecuteOn:[] ExecuteFor:[] Hook:} ExternalAuthHook: ExternalAuthScope:0 PreLoginHook: PostLoginHook: PostLoginScope:0 CheckPasswordHook: CheckPasswordScope:0 UpdateMode:0 PasswordHashing:{BcryptOptions:{Cost:10} Argon2Options:{Memory:65536 Iterations:1 Parallelism:2} Algo:bcrypt} PasswordValidation:{Admins:{MinEntropy:0} Users:{MinEntropy:0}} PasswordCaching:true DelayedQuotaUpdate:0 CreateDefaultAdmin:false NamingRules:5 IsShared:0 Node:{Host: Port:0 Proto:http} BackupsPath:/srv/sftpgo/backups} HTTPDConfig:{Bindings:[{Address: Port:8080 EnableWebAdmin:true EnableWebClient:true EnableRESTAPI:true EnabledLoginMethods:0 EnableHTTPS:false CertificateFile: CertificateKeyFile: MinTLSVersion:12 ClientAuthType:0 TLSCipherSuites:[] Protocols:[] ProxyAllowed:[] ClientIPProxyHeader: ClientIPHeaderDepth:0 HideLoginURL:0 RenderOpenAPI:true OIDC:{ClientID: ClientSecret: ClientSecretFile: ConfigURL: RedirectBaseURL: UsernameField: RoleField: ImplicitRoles:false Scopes:[openid profile email] CustomFields:[] InsecureSkipSignatureCheck:false Debug:false provider:<nil> verifier:<nil> providerLogoutURL: oauth2Config:<nil>} Security:{Enabled:false AllowedHosts:[] AllowedHostsAreRegex:false HostsProxyHeaders:[] HTTPSRedirect:false HTTPSHost: HTTPSProxyHeaders:[] STSSeconds:0 STSIncludeSubdomains:false STSPreload:false ContentTypeNosniff:false ContentSecurityPolicy: PermissionsPolicy: CrossOriginOpenerPolicy: CacheControl: proxyHeaders:[]} Branding:{WebAdmin:{Name: ShortName: LogoPath: FaviconPath: DisclaimerName: DisclaimerPath: DefaultCSS:[] ExtraCSS:[]} WebClient:{Name: ShortName: LogoPath: FaviconPath: DisclaimerName: DisclaimerPath: DefaultCSS:[] ExtraCSS:[]}} allowHeadersFrom:[]}] TemplatesPath:templates StaticFilesPath:static OpenAPIPath:openapi WebRoot: CertificateFile: CertificateKeyFile: CACertificates:[] CARevocationLists:[] SigningPassphrase: SigningPassphraseFile: TokenValidation:0 MaxUploadFileSize:0 Cors:{AllowedOrigins:[] AllowedMethods:[] AllowedHeaders:[] ExposedHeaders:[] AllowCredentials:false Enabled:false MaxAge:0 OptionsPassthrough:false OptionsSuccessStatus:0 AllowPrivateNetwork:false} Setup:{InstallationCode: InstallationCodeHint:Installation code} HideSupportLink:false acmeDomain:} HTTPConfig:{Timeout:20 RetryWaitMin:2 RetryWaitMax:30 RetryMax:3 CACertificates:[] Certificates:[] SkipTLSVerify:false Headers:[] customTransport:<nil>} CommandConfig:{Timeout:30 Env:[] Commands:[]} KMSConfig:{Secrets:{URL: MasterKeyPath: MasterKeyString: masterKey:}} MFAConfig:{TOTP:[{Name:Default Issuer:SFTPGo Algo:sha1 algo:0}]} TelemetryConfig:{BindPort:0 BindAddress:127.0.0.1 EnableProfiler:false AuthUserFile: CertificateFile: CertificateKeyFile: TLSCipherSuites:[] MinTLSVersion:12 Protocols:[]} PluginsConfig:[] SMTPConfig:{Host: Port:587 From: User: Password: AuthType:0 Encryption:0 Domain: TemplatesPath:templates Debug:0 OAuth2:{Provider:0 Tenant: ClientID: ClientSecret: RefreshToken: mu:<nil> config:<nil> accessToken:<nil>}}}"}
{"level":"info","time":"2025-01-30T16:26:04.623","sender":"kms","message":"secret provider registered for scheme: \"local\", encrypted status: \"Secretbox\""}
{"level":"info","time":"2025-01-30T16:26:04.623","sender":"kms","message":"secret provider registered for scheme: \"builtin\", encrypted status: \"AES-256-GCM\""}
{"level":"debug","time":"2025-01-30T16:26:04.623","sender":"plugins","message":"initialize"}
{"level":"debug","time":"2025-01-30T16:26:04.623","sender":"dataprovider_sqlite","message":"sqlite database handle created, connection string: \"file:sftpgo.db?cache=shared&_foreign_keys=1\""}
{"level":"error","time":"2025-01-30T16:26:04.624","sender":"dataprovider_sqlite","message":"error preparing database query \"SELECT version from schema_version LIMIT 1\": no such table: schema_version"}
{"level":"info","time":"2025-01-30T16:26:04.624","sender":"dataprovider_sqlite","message":"creating initial database schema, version 28"}
{"level":"error","time":"2025-01-30T16:26:04.624","sender":"dataprovider_sqlite","message":"error preparing database query \"SELECT version from schema_version LIMIT 1\": no such table: schema_version"}
{"level":"info","time":"2025-01-30T16:26:04.655","sender":"dataprovider_sqlite","message":"updating database schema version: 28 -> 29"}
{"level":"debug","time":"2025-01-30T16:26:04.671","sender":"dataprovider_sqlite","message":"absolute backup path \"/srv/sftpgo/backups\""}
{"level":"debug","time":"2025-01-30T16:26:04.671","sender":"dataprovider_sqlite","message":"delayed quota update loop started, wait time: 0s"}
{"level":"debug","time":"2025-01-30T16:26:04.671","sender":"dataprovider_sqlite","message":"delayed quota update loop ended, wait time: 0s"}
{"level":"debug","time":"2025-01-30T16:26:04.671","sender":"util","message":"found share data path for name \"templates\": \"/usr/share/sftpgo/templates\""}
{"level":"debug","time":"2025-01-30T16:26:04.671","sender":"smtp","message":"loading templates from \"/usr/share/sftpgo/templates/email\""}
{"level":"debug","time":"2025-01-30T16:26:04.671","sender":"smtp","message":"activating initial config"}
{"level":"debug","time":"2025-01-30T16:26:04.671","sender":"smtp","message":"configuration disabled, email capabilities will not be available"}
{"level":"debug","time":"2025-01-30T16:26:04.671","sender":"eventmanager","message":"loading updated rules"}
{"level":"debug","time":"2025-01-30T16:26:04.671","sender":"eventmanager","message":"recently updated event rules loaded: 0"}
{"level":"debug","time":"2025-01-30T16:26:04.671","sender":"eventmanager","message":"event rules updated, fs events: 0, provider events: 0, schedules: 0, ip blocked events: 0, certificate events: 0, IDP login events: 0"}
{"level":"info","time":"2025-01-30T16:26:04.672","sender":"common","message":"scheduled overquota transfers check, schedule \"@every 1m0s\""}
{"level":"info","time":"2025-01-30T16:26:04.672","sender":"common","message":"scheduled idle connections check, schedule \"@every 3m0s\""}
{"level":"info","time":"2025-01-30T16:26:04.672","sender":"dataprovider_sqlite","message":"using in-memory matching for list type 2, num entries: 0"}
{"level":"info","time":"2025-01-30T16:26:04.672","sender":"common","message":"defender initialized with config {Enabled:true Driver:memory BanTime:15 BanTimeIncrement:100 Threshold:5 ScoreInvalid:2 ScoreValid:1 ScoreLimitExceeded:3 ScoreNoAuth:0 ObservationTime:15 EntriesSoftLimit:100 EntriesHardLimit:150 LoginDelay:{Success:0 PasswordFailed:1000}}"}
{"level":"info","time":"2025-01-30T16:26:04.672","sender":"common","message":"using memory transfer checker"}
{"level":"info","time":"2025-01-30T16:26:04.672","sender":"acme","message":"no domains configured, acme disabled"}
{"level":"info","time":"2025-01-30T16:26:04.672","sender":"service","message":"FTP server not started, disabled in config file"}
{"level":"info","time":"2025-01-30T16:26:04.672","sender":"service","message":"telemetry server not started, disabled in config file"}
{"level":"info","time":"2025-01-30T16:26:04.672","sender":"service","message":"initializing SFTP server with config {Bindings:[{Address: Port:2022 ApplyProxyConfig:true}] MaxAuthTries:0 HostKeys:[] HostCertificates:[] HostKeyAlgorithms:[] KexAlgorithms:[] MinDHGroupExchangeKeySize:2048 Ciphers:[] MACs:[] PublicKeyAlgorithms:[] TrustedUserCAKeys:[] RevokedUserCertsFile: LoginBannerFile: EnabledSSHCommands:[md5sum sha1sum sha256sum cd pwd scp] KeyboardInteractiveAuthentication:true KeyboardInteractiveHook: PasswordAuthentication:true certChecker:<nil> parsedUserCAKeys:[]}"}
{"level":"info","time":"2025-01-30T16:26:04.672","sender":"webdavd","message":"initializing WebDAV server with config {Bindings:[{Address: Port:5007 EnableHTTPS:false CertificateFile: CertificateKeyFile: MinTLSVersion:12 ClientAuthType:0 TLSCipherSuites:[] Protocols:[] Prefix: ProxyAllowed:[] ClientIPProxyHeader: ClientIPHeaderDepth:0 DisableWWWAuthHeader:false allowHeadersFrom:[]}] CertificateFile: CertificateKeyFile: CACertificates:[] CARevocationLists:[] Cors:{AllowedOrigins:[] AllowedMethods:[] AllowedHeaders:[] ExposedHeaders:[] AllowCredentials:false Enabled:false MaxAge:0 OptionsPassthrough:false OptionsSuccessStatus:0 AllowPrivateNetwork:false} Cache:{Users:{ExpirationTime:0 MaxSize:50} MimeTypes:{Enabled:true MaxSize:1000 CustomMappings:[]}} acmeDomain:}"}
{"level":"debug","time":"2025-01-30T16:26:04.675","sender":"sftpd","message":"minimum key size allowed for diffie-ellman-group-exchange: 2048"}
{"level":"info","time":"2025-01-30T16:26:04.675","sender":"sftpd","message":"No host keys configured and \"id_rsa\" does not exist; try to create a new host key"}
{"level":"info","time":"2025-01-30T16:26:04.675","sender":"httpd","message":"initializing HTTP server with config {Bindings:[{Address: Port:8080 EnableWebAdmin:true EnableWebClient:true EnableRESTAPI:true EnabledLoginMethods:0 EnableHTTPS:false CertificateFile: CertificateKeyFile: MinTLSVersion:12 ClientAuthType:0 TLSCipherSuites:[] Protocols:[] ProxyAllowed:[] ClientIPProxyHeader: ClientIPHeaderDepth:0 HideLoginURL:0 RenderOpenAPI:true OIDC:{ClientID: ClientSecret: ClientSecretFile: ConfigURL: RedirectBaseURL: UsernameField: RoleField: ImplicitRoles:false Scopes:[openid profile email] CustomFields:[] InsecureSkipSignatureCheck:false Debug:false provider:<nil> verifier:<nil> providerLogoutURL: oauth2Config:<nil>} Security:{Enabled:false AllowedHosts:[] AllowedHostsAreRegex:false HostsProxyHeaders:[] HTTPSRedirect:false HTTPSHost: HTTPSProxyHeaders:[] STSSeconds:0 STSIncludeSubdomains:false STSPreload:false ContentTypeNosniff:false ContentSecurityPolicy: PermissionsPolicy: CrossOriginOpenerPolicy: CacheControl: proxyHeaders:[]} Branding:{WebAdmin:{Name: ShortName: LogoPath: FaviconPath: DisclaimerName: DisclaimerPath: DefaultCSS:[] ExtraCSS:[]} WebClient:{Name: ShortName: LogoPath: FaviconPath: DisclaimerName: DisclaimerPath: DefaultCSS:[] ExtraCSS:[]}} allowHeadersFrom:[]}] TemplatesPath:templates StaticFilesPath:static OpenAPIPath:openapi WebRoot: CertificateFile: CertificateKeyFile: CACertificates:[] CARevocationLists:[] SigningPassphrase: SigningPassphraseFile: TokenValidation:0 MaxUploadFileSize:0 Cors:{AllowedOrigins:[] AllowedMethods:[] AllowedHeaders:[] ExposedHeaders:[] AllowCredentials:false Enabled:false MaxAge:0 OptionsPassthrough:false OptionsSuccessStatus:0 AllowPrivateNetwork:false} Setup:{InstallationCode: InstallationCodeHint:Installation code} HideSupportLink:false acmeDomain:}"}
{"level":"info","time":"2025-01-30T16:26:04.676","sender":"httpd","message":"using memory token manager"}
{"level":"info","time":"2025-01-30T16:26:04.676","sender":"httpd","message":"using memory reset code manager"}
{"level":"info","time":"2025-01-30T16:26:04.676","sender":"httpd","message":"using memory OIDC manager"}
{"level":"info","time":"2025-01-30T16:26:04.676","sender":"httpd","message":"using memory OAuth2 manager"}
{"level":"info","time":"2025-01-30T16:26:04.676","sender":"httpd","message":"using memory task manager"}
{"level":"debug","time":"2025-01-30T16:26:04.676","sender":"util","message":"found share data path for name \"static\": \"/usr/share/sftpgo/static\""}
{"level":"debug","time":"2025-01-30T16:26:04.676","sender":"util","message":"found share data path for name \"templates\": \"/usr/share/sftpgo/templates\""}
{"level":"debug","time":"2025-01-30T16:26:04.676","sender":"util","message":"found share data path for name \"openapi\": \"/usr/share/sftpgo/openapi\""}
{"level":"info","time":"2025-01-30T16:26:04.676","sender":"webdavd","message":"server listener registered, address: [::]:5007 TLS enabled: false"}
{"level":"info","time":"2025-01-30T16:26:04.762","sender":"httpd","message":"server listener registered, address: [::]:8080 TLS enabled: false"}
{"level":"info","time":"2025-01-30T16:26:06.722","sender":"sftpd","message":"No host keys configured and \"id_ecdsa\" does not exist; try to create a new host key"}
{"level":"info","time":"2025-01-30T16:26:06.722","sender":"sftpd","message":"No host keys configured and \"id_ed25519\" does not exist; try to create a new host key"}
{"level":"info","time":"2025-01-30T16:26:06.724","sender":"sftpd","message":"Loading private host key \"id_rsa\""}
{"level":"info","time":"2025-01-30T16:26:06.724","sender":"sftpd","message":"Host key \"id_rsa\" loaded, type \"ssh-rsa\", fingerprint \"SHA256:i1O5IbKTuXACHuzGo5RtDY+F9rqtGdqETO3xkXXua5I\", algorithms [rsa-sha2-256 rsa-sha2-512]"}
{"level":"info","time":"2025-01-30T16:26:06.724","sender":"sftpd","message":"Loading private host key \"id_ecdsa\""}
{"level":"info","time":"2025-01-30T16:26:06.724","sender":"sftpd","message":"Host key \"id_ecdsa\" loaded, type \"ecdsa-sha2-nistp256\", fingerprint \"SHA256:uCFls9Jm7LoSZBIUeogfbwGaOc1aXVIK+KGZSw9LrbQ\", algorithms [ecdsa-sha2-nistp256]"}
{"level":"info","time":"2025-01-30T16:26:06.724","sender":"sftpd","message":"Loading private host key \"id_ed25519\""}
{"level":"info","time":"2025-01-30T16:26:06.724","sender":"sftpd","message":"Host key \"id_ed25519\" loaded, type \"ssh-ed25519\", fingerprint \"SHA256:YLRcG6zXbH9ySJHUgVCxyzfWuW4vNJRI0TnG0D/lCg8\", algorithms [ssh-ed25519]"}
{"level":"debug","time":"2025-01-30T16:26:06.724","sender":"sftpd","message":"enabled SSH commands [md5sum sha1sum sha256sum cd pwd scp]"}
{"level":"info","time":"2025-01-30T16:26:06.725","sender":"sftpd","message":"server listener registered, address: [::]:2022"}

What are you using SFTPGo for?

Professional user, 1 person business, Private user, home usecase (home backup/VPS)

Additional info

No response

@dauphinpasdroit dauphinpasdroit added the bug Something isn't working label Jan 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant