Skip to main content

Auto publish to FTP and local targets

With this feature, the app can publish your files automatically to remote destinations right after you use More → Publish.

You can publish to:

  • FTP
  • Local file system folders

What this means for you

After you publish in the modal, the app can immediately continue with remote publishing in the background.

So instead of downloading and uploading yourself, the app can do that next step for you.

Before you start

To enable auto publish, you need both:

  1. A Publish profile that includes ContentType: PublishRemote
  2. A remote profile in PublishProfilesRemote with your destination(s)

If one of these is missing, the normal publish still works, but remote auto publish will not start.

How AppSettingsPublishProfilesRemote works

PublishProfilesRemote has two levels:

  • Profiles: remote targets for a specific profile id
  • Default: shared remote targets used as fallback for all profiles

The profile id comes from publishProfiles (for example _default, profile1, profile2).

Resolution logic:

  1. Starsky first checks PublishProfilesRemote.Profiles[profileId].
  2. If no profile-specific entry exists, Starsky uses PublishProfilesRemote.Default.

This means:

  • Use Default for common destinations that should apply broadly.
  • Use Profiles.<id> when a specific publish profile needs different FTP/local targets.

Example settings

Use this as a template:

{
"publishProfiles": {
"_default": [
{
"ContentType": "PublishRemote"
}
]
},
"PublishProfilesRemote": {
"Profiles": {
"profile1": [
{
"Type": "ftp",
"Ftp": {
"WebFtp": "ftp://user%40example.com:password@ftp.example.com/path"
}
},
{
"Type": "ftp",
"Ftp": {
"WebFtp": "ftp://anotheruser:anotherpass@ftp2.example.com/anotherpath"
}
},
{
"Type": "LocalFileSystem",
"LocalFileSystem": {
"Path": "/tmp"
}
}
],
"profile2": [
{
"Type": "ftp",
"Ftp": {
"WebFtp": "ftp://user:pass@ftp3.example.com/path"
}
}
]
},
"Default": [
{
"Type": "ftp",
"Ftp": {
"WebFtp": "ftp://defaultuser:defaultpass@defaultftp.example.com/defaultpath"
}
}
]
}
}

How it works (simple)

  1. You click Publish in the modal.
  2. The app prepares the Publish output.
  3. The app checks if remote publishing is enabled for the selected profile.
  4. If enabled, the app starts publishing to your configured FTP/local targets.

Troubleshooting

  • No remote publish started
    • Check if your selected Publish profile contains PublishRemote.
    • Check if your profile exists in PublishProfilesRemote.
  • Publish fails
    • Verify FTP URL, username, password, and path.
    • For local publishing, verify the destination path exists and has write permissions.

Advanced (API behavior)

Starsky checks:

GET /api/publish-remote/status?publishProfileName=_default

If result is true, it starts:

POST /api/publish-remote/create

If result is false, remote publish is skipped.

Security note

  • Do not commit real FTP credentials to source control.