{{define "admin_storage.html"}}{{template "base" .}}{{end}} {{define "content"}}

Operator console

{{.Data.PageTitle}}

Local storage is always active. Remote backends are proxied through Warpbox.

{{if .Data.Error}}

{{.Data.Error}}

{{end}}
{{range .Data.Storage}}
{{if eq .Config.Type "local"}}{{template "icon-hard-drive" $}} {{else if eq .Config.Type "sftp"}}{{template "icon-database" $}} {{else if eq .Config.Type "smb"}}{{template "icon-folder" $}} {{else if eq .Config.Type "webdav"}}{{template "icon-cloud-sync" $}} {{else}}{{template "icon-cloud-upload" $}}{{end}}
{{.Config.Name}}
{{if eq .Config.Provider "contabo"}}Contabo{{else if eq .Config.Type "sftp"}}SFTP{{else if eq .Config.Type "smb"}}Samba{{else if eq .Config.Type "webdav"}}WebDAV{{else if eq .Config.Type "s3"}}S3{{else if eq .Config.Type "local"}}Local files{{else}}{{.Config.Type}}{{end}} {{if eq .Config.ID "local"}}Required {{else if .Config.Enabled}}Enabled {{else}}Disabled{{end}} {{if .UsageLabel}}{{.UsageLabel}}{{end}}
{{if ne .Config.ID "local"}} {{if .Config.Enabled}}
{{end}}
{{end}}
{{/* View-mode summary */}}
{{if eq .Config.Type "local"}}
Path{{.Config.LocalPath}}
{{else if or (eq .Config.Type "s3") (eq .Config.Provider "contabo")}} {{if .Config.Endpoint}}
Endpoint{{.Config.Endpoint}}
{{end}} {{if .Config.Bucket}}
Bucket{{.Config.Bucket}}
{{end}} {{if .Config.Region}}
Region{{.Config.Region}}
{{end}} {{if .Config.AccessKey}}
Access key{{.Config.AccessKey}}
{{end}} {{else if eq .Config.Type "sftp"}} {{if .Config.Host}}
Host{{.Config.Host}}{{if .Config.Port}}:{{.Config.Port}}{{end}}
{{end}} {{if .Config.Username}}
Username{{.Config.Username}}
{{end}} {{if .Config.RemotePath}}
Remote path{{.Config.RemotePath}}
{{end}} {{else if eq .Config.Type "smb"}} {{if .Config.Host}}
Host{{if .Config.Domain}}{{.Config.Domain}}\{{end}}{{.Config.Username}}@{{.Config.Host}}/{{.Config.Share}}
{{end}} {{if .Config.RemotePath}}
Remote path{{.Config.RemotePath}}
{{end}} {{else if eq .Config.Type "webdav"}} {{if .Config.Endpoint}}
URL{{.Config.Endpoint}}
{{end}} {{if .Config.Username}}
Username{{.Config.Username}}
{{end}} {{if .Config.RemotePath}}
Remote path{{.Config.RemotePath}}
{{end}} {{end}} {{if not (.Config.LastTestedAt.IsZero)}}
Last test {{.Config.LastTestedAt.Format "Jan 2, 15:04"}} · {{if .Config.LastTestSuccess}}Passed{{else}}{{if .Config.LastTestError}}{{.Config.LastTestError}}{{else}}Failed{{end}}{{end}}
{{end}}
{{/* Edit-mode form — hidden via CSS until .is-editing */}} {{if ne .Config.ID "local"}}
{{end}}
{{end}} {{/* Add storage section */}}
{{end}}