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

De [Capistrano](http://capistranorb.com/)-integratie zorgt ervoor dat er bij elke deploy een AppSignal deploy marker wordt aangemaakt. Lees meer over
[deploy markers](/appsignal/terminology#markers). Enige handmatige
configuratie kan vereist zijn.

## Installatie

Zorg ervoor dat u het bestand `appsignal/capistrano` laadt in het `Capfile` van Capistrano.
Dit zou automatisch moeten gebeuren wanneer u het commando `appsignal install` uitvoert
tijdens de installatie.

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

## Configuratie

### appsignal\_config

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

`appsignal_config` stelt u in staat om elke configuratie die uit het [configuratiebestand](/ruby/configuration) wordt geladen te overschrijven.

### appsignal\_env (vanaf gem versie 1.3)

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

`appsignal_env` stelt u in staat om een andere AppSignal-omgeving te laden wanneer een
stage-naam niet overeenkomt met de AppSignal-omgeving zoals genoemd in het AppSignal-
configuratiebestand of de omgevingsvariabele.

### appsignal\_revision (vanaf gem versie 0.8.8)

<Warning>
  Deze methode om deploy markers te rapporteren is **verouderd** en kan op elk moment in de toekomst worden verwijderd.
  Het rapporteren van deploy markers via deze methode is alleen nuttig voor kleine applicaties met één applicatie-instantie. Hiermee wordt op een specifiek tijdstip een nieuwe deploy marker aangemaakt, ongeacht de versie die de applicatie daadwerkelijk uitvoert. Dit betekent ook dat het foutgevoeliger is om gegevens onder de deploy te groeperen die er niet bij thuishoren. We detecteren deployment automatisch door het `REVISION`-bestand te lezen dat Capistrano sinds Ruby gem 4.5.18 aan de release-map toevoegt.
</Warning>

In Capistrano 2 kan AppSignal de revisie ophalen uit de Capistrano-
configuratie.

In Capistrano 3 is dit echter niet meer beschikbaar en wordt het aanbevolen
om de revisie in te stellen.

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

De revisie kan handmatig worden ingesteld of lokaal uit de git-repository worden opgehaald.

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

Als u de branch-configuratie-instelling van Capistrano gebruikt, kunt u
git ook de commit-SHA van de geselecteerde branch laten ophalen.

<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 (vanaf gem versie 2.4.0)

In combinatie met `appsignal_revision` (indien nodig) is het mogelijk om een deploy-gebruiker voor Capistrano-deploys aan te passen.

Standaard gebruikt dit de lokale gebruikersnaam van het systeem, gelezen uit de omgevingsvariabele `USER` of `USERNAME`, dus het is niet nodig om dit te configureren als deze variabelen op het systeem beschikbaar zijn.

Als u de deploy-gebruiker wel wilt aanpassen, stelt u de `:appsignal_user` config-optie in uw Capistrano-configuratie in.

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

## Voorbeeldapplicaties

We hebben twee voorbeeldapplicaties in onze voorbeeld-repository op GitHub. De
voorbeelden laten zien hoe u AppSignal opzet in kleine Capistrano-applicaties terwijl
u configuratiewaarden uit de omgeving laadt met gems zoals dotenv en
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
