MCPcopy
hub / github.com/SamKirkland/FTP-Deploy-Action

github.com/SamKirkland/FTP-Deploy-Action @v4.4.0 sqlite

repository ↗ · DeepWiki ↗ · release v4.4.0 ↗
8 symbols 24 edges 3 files 0 documented · 0%
README

FTP Deploy Action - Continuous integration for everyone

Automate deploying websites and more with this GitHub action. It's free!

FTP test FTPS test


Usage Example

Place the following in /.github/workflows/main.yml

on: push
name: 🚀 Deploy website on push
jobs:
  web-deploy:
    name: 🎉 Deploy
    runs-on: ubuntu-latest
    steps:
    - name: 🚚 Get latest code
      uses: actions/checkout@v6

    - name: 📂 Sync files
      uses: SamKirkland/FTP-Deploy-Action@v4.4.0
      with:
        server: ftp.samkirkland.com
        username: myFtpUserName
        password: ${{ secrets.ftp_password }}

Requirements

  • You must have ftp access to your server. If your host allows or requires ssh please use my web-deploy action
  • Some web hosts change the default port (21), check with your host for your port number

Setup Steps

  1. Select the repository you want to add the action to
  2. Select the Actions tab
  3. Select Blank workflow file or Set up a workflow yourself, if you don't see these options manually create a yaml file Your_Project/.github/workflows/main.yml
  4. Paste the example above into your yaml file and save
  5. Now you need to add a key to the secrets section in your project. To add a secret go to the Settings tab in your project then select Secrets. Add a new Secret for password
  6. Update your yaml file settings
  7. If you appreciate this github action give it a :star: or show off with one of the badges below.

Settings

Keys can be added directly to your .yml config file or referenced from your project Secrets storage.

To add a secret go to the Settings tab in your project then select Secrets. I strongly recommend you store your password as a secret.

Key Name Required Example Default Value Description
server Yes ftp.samkirkland.com Deployment destination server
username Yes username@samkirkland.com FTP user name
password Yes CrazyUniquePassword&%123 FTP password, be sure to escape quotes and spaces
port No 990 21 Server port to connect to (read your web hosts docs)
protocol No ftps ftp ftp: provides no encryption, ftps: full encryption newest standard (aka "explicit" ftps), ftps-legacy: full encryption legacy standard (aka "implicit" ftps)
local-dir No ./myFolderToPublish/ ./ Folder to upload from, must end with trailing slash /
server-dir No public_html/www/ ./ Folder to upload to (on the server), must end with trailing slash /
state-name No folder/.sync-state.json .ftp-deploy-sync-state.json Path and name of the state file - this file is used to track which files have been deployed
dry-run No true false Prints which modifications will be made with current config options, but doesn't actually make any changes
dangerous-clean-slate No true false Deletes ALL contents of server-dir, even items in excluded with 'exclude' argument
exclude No See Example See Example An array of glob patterns, these files will not be included in the publish/delete process. List MUST be in this format. You can use a glob tester to test your pattern(s).
log-level No minimal standard minimal: only important info, standard: important info and basic file changes, verbose: print everything the script is doing
security No strict loose strict: Reject any connection which is not authorized with the list of supplied CAs. loose: Allow connection even when the domain is not certificate
timeout No 60000 30000 Timeout in milliseconds for FTP operations

Common Examples

Build and Publish React/Angular/Vue Website

Make sure you have an npm script named 'build'. This config should work for most node built websites.

```yml on: push name: 🚀 Deploy website

Core symbols most depended-on inside this repo

optionalBoolean
called by 7
src/parse.ts
optionalInt
called by 7
src/parse.ts
optionalString
called by 5
src/parse.ts
optionalProtocol
called by 5
src/parse.ts
optionalLogLevel
called by 5
src/parse.ts
optionalSecurity
called by 4
src/parse.ts
runDeployment
called by 1
src/main.ts
optionalStringArray
called by 1
src/parse.ts

Shape

Function 8

Languages

TypeScript100%

Modules by API surface

src/parse.ts7 symbols
src/main.ts1 symbols

Dependencies from manifests, versioned

@actions/core1.9.1 · 1×
@samkirkland/ftp-deploy1.2.5 · 1×
@types/jest29.4.1 · 1×
@types/node24.0.0 · 1×
@typescript-eslint/eslint-plugin5.33.1 · 1×
@typescript-eslint/parser5.33.1 · 1×
@vercel/ncc0.34.0 · 1×
eslint8.22.0 · 1×
eslint-plugin-jest26.8.7 · 1×
jest29.5.0 · 1×
ts-jest29.0.5 · 1×
ts-node-dev2.0.0 · 1×

For agents

$ claude mcp add FTP-Deploy-Action \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact