SWPanel

Sviluppatori · Ricette per il tuo CI

Il tuo CI, che distribuisce su SWPanel

Copia la ricetta del tuo strumento, salva il tuo token come segreto e fai push. SWPanel riceve il pacchetto, lo convalida, lo analizza e lo pubblica sul tuo hosting o sul tuo Cloud, con una copia di ciò che c'era.

  • GitHub Actions, GitLab CI, Bitbucket e Jenkins
  • Modalità di prova per le pull request
  • Ritorno indietro in una chiamata
Terminale · un deploy di esempio
~/mi-web npm run build && tar -czf web.tgz -C dist .~/mi-web curl -X POST …/services/$SERVICIO/deployment/ \    -H "Authorization: Bearer $SWPANEL_TOKEN" -F "[email protected]"Pacchetto ricevuto per intero ok SHA-256Convalidato ok percorsi, dimensioni e fileAnalizzato ok senza errori graviCopia di ciò che c'era, salvata okPubblicato sul tuo sito ok

Prima di iniziare

Tre cose e puoi già distribuire

  1. Crea un token in SWPanel

    Meglio uno solo di deploy, limitato al servizio dove pubblicherai, con scadenza e i tuoi IP.

  2. Salvalo come segreto

    Nel tuo CI, con il nome SWPANEL_TOKEN. Mai nel repository.

  3. Indica il servizio

    L'identificativo dell'hosting o del Cloud in cui vive il tuo sito, nella variabile SERVICIO.

Ricette

Scegli il tuo strumento, copia e incolla

Tutte fanno lo stesso: costruiscono il sito come sempre, lo impacchettano e lo caricano con una chiamata all'API.

.github/workflows/swpanel.yml
on:
  push:
    branches: [main]
jobs:
  desplegar:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci && npm run build && tar -czf web.tgz -C dist .
      - run: |
          curl -X POST \
            https://api.swpanel.com/public/services/$SERVICIO/deployment/ \
            -H "Authorization: Bearer ${{ secrets.SWPANEL_TOKEN }}" \
            -F "[email protected]"
# Viene eseguito a ogni push su main
.gitlab-ci.yml
desplegar:
  stage: deploy
  image: node:20
  rules:
    - if: $CI_COMMIT_BRANCH == "main"
  script:
    - npm ci && npm run build && tar -czf web.tgz -C dist .
    - >
      curl -X POST
      "https://api.swpanel.com/public/services/$SERVICIO/deployment/"
      -H "Authorization: Bearer $SWPANEL_TOKEN"
      -F "[email protected]"
# Viene eseguito a ogni push su main
bitbucket-pipelines.yml
image: node:20
pipelines:
  branches:
    main:
      - step:
          name: Desplegar en SWPanel
          script:
            - npm ci && npm run build && tar -czf web.tgz -C dist .
            - curl -X POST "https://api.swpanel.com/public/services/$SERVICIO/deployment/"
              -H "Authorization: Bearer $SWPANEL_TOKEN"
              -F "[email protected]"
# Viene eseguito a ogni push su main
Jenkinsfile
pipeline {
  agent any
  environment { SWPANEL_TOKEN = credentials('swpanel-token') }
  stages {
    stage('Construir') {
      steps { sh 'npm ci && npm run build && tar -czf web.tgz -C dist .' }
    }
    stage('Desplegar') {
      when { branch 'main' }
      steps {
        sh 'curl -X POST "https://api.swpanel.com/public/services/$SERVICIO/deployment/" -H "Authorization: Bearer $SWPANEL_TOKEN" -F "[email protected]"'
      }
    }
  }
}
// Il token, salvato come credenziale di Jenkins
terminal
tar -czf web.tgz -C dist .
curl -X POST "https://api.swpanel.com/public/services/$SERVICIO/deployment/" \
  -H "Authorization: Bearer $SWPANEL_TOKEN" \
  -F "[email protected]"
# Dal tuo terminale o da qualsiasi script
terminal
composer install --no-dev
tar -czf tema.tgz -C wp-content/themes/mi-tema .
curl -X POST "https://api.swpanel.com/public/services/$SERVICIO/deployment/" \
  -H "Authorization: Bearer $SWPANEL_TOKEN" \
  -F "[email protected]"
# Il tuo tema, dal repository, senza toccare wp-config.php né i caricamenti

Ricette di esempio. Tutte le opzioni della chiamata (modalità di prova, ramo, commit e file protetti) sono nella documentazione dell'API.

Pull request

Provalo prima di unire

Con la modalità di prova, SWPanel convalida e analizza il pacchetto di ogni pull request e ti dice cosa succederebbe, senza pubblicare nulla. Così, ciò che arriva su main ha già superato il filtro.

  • La stessa analisi della produzione: errori, sicurezza e dipendenze
  • Anche le tue regole si applicano: un Flusso può bloccare il deploy
  • Nemmeno una riga del sito cambia
.github/workflows/swpanel-pr.yml
on: pull_request
jobs:
  probar:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci && npm run build && tar -czf web.tgz -C dist .
      - run: |
          curl -X POST \
            https://api.swpanel.com/public/services/$SERVICIO/deployment/ \
            -H "Authorization: Bearer ${{ secrets.SWPANEL_TOKEN }}" \
            -F "[email protected]" \
            -F "dry_run=true"
# A ogni pull request: convalida e analizza, senza pubblicare

Cosa succede dopo

Dalla chiamata al sito

Ciò che SWPanel fa con ogni pacchetto, prima di toccare il tuo sito.

  1. Lo riceve

    Per intero: finché non arriva completo e la sua impronta (SHA-256) non quadra, non viene usato.

  2. Lo convalida

    Percorsi, dimensioni (fino a 50 MB per impostazione predefinita) e file vietati.

  3. Lo analizza

    Errori, vulnerabilità e dipendenze con difetti noti.

  4. Applica le tue regole

    I tuoi Flussi possono fermare un deploy, e la produzione può richiedere approvazione da SWPanel o Telegram.

  5. Lo pubblica

    Con una copia del precedente e senza toccare i tuoi file protetti. Tu e il tuo team ricevete l'avviso.

Senza segreti

Distribuisci senza salvare nessuna chiave

Con OIDC, GitHub Actions e GitLab CI dimostrano a SWPanel quale repository e quale ramo stanno distribuendo. Non c'è nessuna chiave nel CI che possa trapelare.

Ritorno indietro

Se qualcosa va storto, un clic

Ogni deploy resta nello storico: chi, quando, quale commit e cosa è cambiato. Torni alla versione precedente con un clic in SWPanel o con una chiamata all'API, e i deploy atomici cambiano il sito di colpo, senza stati intermedi.

Domande frequenti

Dubbi sui deploy

Qualsiasi CI che possa fare una chiamata HTTP: GitHub Actions, GitLab CI, Bitbucket Pipelines, Jenkins, o un semplice curl dal terminale o da uno script.

Come secret del tuo CI: su GitHub, nei secrets del repository; su GitLab e Bitbucket, nelle variabili protette; su Jenkins, come credenziale. Mai nel codice. E se usi GitHub Actions o GitLab CI, puoi rilasciare senza segreti, con OIDC.

Sì, con la modalità di prova (dry_run): SWPanel convalida e analizza il pacchetto e ti dice cosa succederebbe, senza toccare il sito. È quello che conviene a ogni pull request.

Fino a 50 MB compressi per impostazione predefinita, regolabile per servizio.

Non succede nulla: il pacchetto non viene pubblicato finché non arriva intero e non se ne verifica l'impronta (SHA-256).

No. I file protetti, come wp-config.php o .env, o i caricamenti degli utenti, non vengono mai sovrascritti.

Ogni rilascio conserva una copia di ciò che sostituisce. Torni indietro con un clic in SWPanel o con una chiamata all'API.

Il tuo prossimo push, già sul sito

Crea il tuo token, copia la ricetta e fai push.