> ## 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" }
]}
/>

Die [Capistrano](http://capistranorb.com/)-Integration stellt sicher, dass bei jedem Deploy
ein AppSignal-Deploy-Marker erstellt wird. Mehr über
[Deploy-Marker](/appsignal/terminology#markers) erfahren Sie hier. Eventuell ist manuelle
Konfiguration erforderlich.

## Installation

Stellen Sie sicher, dass Sie die Datei `appsignal/capistrano` im `Capfile` von Capistrano laden.
Dies sollte während der Installation automatisch erfolgen, wenn Sie den Befehl `appsignal install`
ausführen.

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

## Konfiguration

### appsignal\_config

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

`appsignal_config` ermöglicht es Ihnen, jede aus der [Konfigurationsdatei](/ruby/configuration) geladene Konfiguration zu überschreiben.

### appsignal\_env (seit Gem-Version 1.3)

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

`appsignal_env` ermöglicht es Ihnen, eine andere AppSignal-Umgebung zu laden, wenn ein
Stage-Name nicht mit der AppSignal-Umgebung übereinstimmt, wie sie in der AppSignal-
Konfigurationsdatei oder Umgebungsvariable benannt ist.

### appsignal\_revision (seit Gem-Version 0.8.8)

<Warning>
  Diese Methode zum Melden von Deploy-Markern ist **veraltet** und kann in Zukunft jederzeit entfernt werden.
  Das Melden von Deploy-Markern mit dieser Methode ist nur für kleine Anwendungen sinnvoll, die eine einzige Anwendungsinstanz verwenden. Sie erstellt zu einem bestimmten Zeitpunkt einen neuen Deploy-Marker, unabhängig davon, welche Version die Anwendung tatsächlich ausführt. Das bedeutet auch, dass es fehleranfälliger ist, da Daten, die nicht zum Deployment gehören sollten, diesem zugeordnet werden können. Wir erkennen Deployments automatisch, indem wir die `REVISION`-Datei lesen, die Capistrano seit Ruby-Gem 4.5.18 zum Release-Verzeichnis hinzufügt.
</Warning>

In Capistrano 2 kann AppSignal die Revision aus der Capistrano-Konfiguration
abrufen.

In Capistrano 3 ist dies jedoch nicht mehr verfügbar, und das Setzen der
Revision wird empfohlen.

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

Die Revision kann manuell gesetzt oder lokal aus dem Git-Repository abgerufen werden.

<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>

Wenn Sie die Branch-Konfigurationseinstellung von Capistrano verwenden, können Sie auch
Git so einrichten, dass es die Commit-SHA aus dem ausgewählten Branch abruft.

<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 (seit Gem-Version 2.4.0)

In Kombination mit `appsignal_revision` (falls erforderlich) ist es möglich, einen Deploy-Benutzer für Capistrano-Deploys anzupassen.

Standardmäßig wird der lokale Benutzername des Systems verwendet, der aus der Umgebungsvariable `USER` oder `USERNAME` gelesen wird, sodass keine Konfiguration nötig ist, wenn diese Variablen auf dem System verfügbar sind.

Wenn Sie den Deploy-Benutzer anpassen möchten, setzen Sie die Konfigurationsoption `:appsignal_user` in Ihrer Capistrano-Konfiguration.

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

## Beispielanwendungen

Wir haben zwei Beispielanwendungen in unserem Beispiel-Repository auf GitHub. Die
Beispiele zeigen, wie AppSignal in kleinen Capistrano-Anwendungen eingerichtet wird, während
Konfigurationswerte mit Gems wie dotenv und Figaro aus der Umgebung geladen werden.

* [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
