> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Capistrano

export const VersionRequirements = ({versions = []}) => {
  if (!Array.isArray(versions) || versions.length === 0) {
    return null;
  }
  const boundaries = {
    upper: " or lower",
    exact: "",
    lower: " or higher"
  };
  const containerStyle = {
    marginTop: "0.5rem",
    marginBottom: "1.5rem"
  };
  const lineStyle = {
    display: "block",
    margin: "0 0 0.35rem 0",
    fontSize: "0.875rem",
    lineHeight: "1.4"
  };
  const pillBaseStyle = {
    display: "inline-block",
    padding: "0.1em 0.4em",
    borderRadius: "0.25rem",
    border: "1px solid",
    fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace",
    fontSize: "0.85em",
    fontWeight: 500
  };
  const pillColors = {
    "AppSignal for Elixir": {
      background: "#f3e8ff",
      borderColor: "#e9d5ff",
      color: "#9333ea"
    },
    "AppSignal for Front-end": {
      background: "#fef9c3",
      borderColor: "#fde68a",
      color: "#ca8a04"
    },
    "AppSignal for Go": {
      background: "#ccfbf1",
      borderColor: "#99f6e4",
      color: "#0d9488"
    },
    "AppSignal for JavaScript": {
      background: "#fef9c3",
      borderColor: "#fde68a",
      color: "#ca8a04"
    },
    "AppSignal for Node.js": {
      background: "#dcfce7",
      borderColor: "#bbf7d0",
      color: "#16a34a"
    },
    "AppSignal for Python": {
      background: "#dbeafe",
      borderColor: "#bfdbfe",
      color: "#2563eb"
    },
    "AppSignal for Ruby": {
      background: "#fee2e2",
      borderColor: "#fecaca",
      color: "#dc2626"
    },
    "AppSignal for Rust": {
      background: "#ffedd5",
      borderColor: "#fed7aa",
      color: "#ea580c"
    }
  };
  const defaultPillColor = {
    background: "#f4f4f5",
    borderColor: "#e4e4e7",
    color: "#52525b"
  };
  const getPillStyle = name => ({
    ...pillBaseStyle,
    ...pillColors[name] || defaultPillColor
  });
  const getBoundText = bound => {
    return boundaries[bound] || boundaries.lower;
  };
  return <div style={containerStyle}>
      {versions.map((v, i) => <p key={`${v.name}-${v.version}-${v.bound || "lower"}-${i}`} style={lineStyle}>
          This feature requires{" "}
          <code style={getPillStyle(v.name)}>{v.name}</code> version {v.version}
          {getBoundText(v.bound)}.
        </p>)}
    </div>;
};

<VersionRequirements
  versions={[
{ name: "AppSignal for Ruby", version: "1.3" },
{ name: "Capistrano", version: "2" }
]}
/>

L'intégration [Capistrano](http://capistranorb.com/) garantit qu'un marqueur de déploiement AppSignal est créé à
chaque déploiement. En savoir plus sur les
[marqueurs de déploiement](/appsignal/terminology#markers). Une configuration manuelle
peut être nécessaire.

## Installation

Assurez-vous de charger le fichier `appsignal/capistrano` dans le `Capfile` de Capistrano.
Cela devrait être fait automatiquement lorsque vous exécutez la commande `appsignal install`
pendant l'installation.

<CodeGroup>
  ```ruby Ruby theme={null}
  # Capfile
  require 'capistrano'
  # Other Capistrano requires.
  require 'appsignal/capistrano'
  ```
</CodeGroup>

## Configuration

### appsignal\_config

<CodeGroup>
  ```ruby Ruby theme={null}
  # deploy.rb
  set :appsignal_config, name: 'My app'
  ```
</CodeGroup>

`appsignal_config` vous permet de remplacer toute configuration chargée depuis le [fichier de configuration](/ruby/configuration).

### appsignal\_env (depuis la version 1.3 de la gem)

<CodeGroup>
  ```ruby Ruby theme={null}
  # deploy.rb
  set :stage, :alpha
  set :appsignal_env, :staging
  ```
</CodeGroup>

`appsignal_env` vous permet de charger un environnement AppSignal différent lorsqu'un
nom d'étape ne correspond pas à l'environnement AppSignal tel que nommé dans le fichier de configuration AppSignal
ou la variable d'environnement.

### appsignal\_revision (depuis la version 0.8.8 de la gem)

<Warning>
  Cette méthode de signalement des marqueurs de déploiement est **obsolète** et peut être supprimée à tout moment à l'avenir.
  Signaler des marqueurs de déploiement avec cette méthode n'est utile que pour les petites applications qui utilisent une seule instance d'application. Elle crée un nouveau marqueur de déploiement à un moment précis, indépendamment de la version réellement exécutée par l'application. Cela signifie également qu'elle est plus sujette aux erreurs en regroupant sous le déploiement des données qui ne devraient pas en faire partie. Nous détectons automatiquement le déploiement en lisant le fichier `REVISION` que Capistrano ajoute au répertoire de release depuis la gem Ruby 4.5.18.
</Warning>

Dans Capistrano 2, AppSignal peut récupérer la révision depuis la configuration
Capistrano.

Dans Capistrano 3, cependant, cela n'est plus disponible et il est recommandé de définir
la révision.

<CodeGroup>
  ```ruby Ruby theme={null}
  # deploy.rb
  set :appsignal_revision, "my_revision"
  ```
</CodeGroup>

La révision peut être définie manuellement ou récupérée localement depuis le repository git.

<CodeGroup>
  ```ruby Ruby theme={null}
  # Sets the current branch's git commit SHA as the revision
  set :appsignal_revision, `git rev-parse --short HEAD`.strip
  ```
</CodeGroup>

Si vous utilisez le paramètre de configuration branch de Capistrano, vous pouvez également définir
git pour récupérer le SHA du commit depuis la branche sélectionnée.

<CodeGroup>
  ```ruby Ruby theme={null}
  set :branch, "main"
  # Sets the selected branch's git commit SHA as the revision
  set :appsignal_revision, `git rev-parse --short #{fetch(:branch)}`.strip
  ```
</CodeGroup>

### appsignal\_user (depuis la version 2.4.0 de la gem)

Utilisé en combinaison avec `appsignal_revision` (si nécessaire), il est possible de personnaliser un utilisateur de déploiement pour les déploiements Capistrano.

Par défaut, cela utilise le nom d'utilisateur local du système, lu depuis la variable d'environnement `USER` ou `USERNAME`, il n'est donc pas nécessaire de le configurer si le système dispose de ces variables.

Si vous souhaitez personnaliser l'utilisateur de déploiement, définissez l'option de configuration `:appsignal_user` dans votre configuration Capistrano.

<CodeGroup>
  ```ruby Ruby theme={null}
  # deploy.rb
  set :appsignal_user, "Jane" # Custom deploy user name
  ```
</CodeGroup>

## Exemples d'applications

Nous avons deux exemples d'applications dans notre repository d'exemples sur GitHub. Les
exemples montrent comment configurer AppSignal dans de petites applications Capistrano tout en
chargeant les valeurs de configuration depuis l'environnement à l'aide de gems comme dotenv et
Figaro.

* [AppSignal + Capistrano + dotenv][example-dotenv-app]
* [AppSignal + Capistrano + Figaro][example-figaro-app]

[example-dotenv-app]: https://github.com/appsignal/appsignal-examples/tree/capistrano+dotenv

[example-figaro-app]: https://github.com/appsignal/appsignal-examples/tree/capistrano+figaro
