---
title: "Lliurar un fitxer de configuració de manera segura"
url: https://uselinkpilot.com/ca/blog/how-to-securely-deliver-a-config-file-to-a-developer
description: "Separeu la configuració dels secrets, envieu-los per un enllaç d'un sol ús o en un adjunt que es destrueix en baixar-lo i deixeu el .env fora de git."
lang: ca
---

Seguretat (https://uselinkpilot.com/ca/blog/category/security)

# Com lliurar de manera segura un fitxer de configuració a un desenvolupador

Separeu la configuració dels secrets, envieu-los per un enllaç d'un sol ús o en un adjunt que es destrueix en baixar-lo i deixeu el .env fora de git.

LinkPilot Team (https://uselinkpilot.com/ca/author/linkpilot-team) · Les persones que desenvolupen i gestionen LinkPilot a TetraCore, LLC 26 d’octubre del 2026 · Sobre LinkPilot (https://uselinkpilot.com/ca/about)

Arriba un desenvolupador nou, o comença un col·laborador extern, i el primer que necessita és el `.env` que fa funcionar el projecte. Aquest fitxer acostuma a barrejar paràmetres inofensius amb els valors més sensibles que té l'equip, i per això acaba tan sovint en un missatge directe o en un adjunt de correu titulat «config».

Per lliurar de manera segura un fitxer de configuració a un desenvolupador, tracteu-lo com dues coses diferents: la configuració, que pot viatjar per on sigui, i els secrets, que viatgen una sola vegada per un canal que no en guarda còpies. Aquesta guia explica com separar-los, com enviar la part secreta i què heu de dir al desenvolupador perquè el fitxer continuï segur un cop arribi.

## Llegiu el fitxer com si cada línia fos pública

Obriu el fitxer i classifiqueu cada línia en un de dos grups.

- **Configuració**: nivells de registre, ports, indicadors de funcions, punts d'accés que no són de producció, identificadors de client públics. Tot això va al repositori com a fitxer d'exemple i es pot enviar com vulgueu.
- **Secrets**: contrasenyes de bases de dades, claus d'API, secrets de signatura, claus privades, secrets de client OAuth, qualsevol cosa que doni accés. Cerqueu `PASSWORD`, `SECRET`, `TOKEN`, `KEY` i `PRIVATE`, i després llegiu la resta, perquè una cadena de connexió amb la contrasenya a dins no ho anuncia.

Després pregunteu-vos què farà el desenvolupador. Per desenvolupar en local contra l'entorn de proves necessita els valors de proves. No necessita les claus de producció, ni la clau real del proveïdor de pagaments només perquè el fitxer en contingui una.

## Deixeu els secrets fora del fitxer del repositori

El `.env.example` que es puja al repositori documenta cada variable amb un valor provisional. Els valors reals s'injecten en temps d'execució des de l'entorn, un gestor de secrets o el magatzem de secrets de la mateixa plataforma. Amb aquest patró, el fitxer que lliureu només conté els valors secrets, i la còpia local del desenvolupador és l'únic lloc on són tots junts.

```bash
# .env.example (committed)
DATABASE_URL=postgres://app:CHANGE_ME@staging-db.internal:5432/app
STRIPE_SECRET_KEY=sk_test_CHANGE_ME
SESSION_SECRET=CHANGE_ME
LOG_LEVEL=debug
```

Afegiu `.env` a `.gitignore` abans que ningú en tingui un de real, i penseu a posar un hook de pre-commit com gitleaks perquè un commit despistat falli de seguida.

## Doneu al desenvolupador credencials pròpies sempre que pugueu

Un lliurament també és una ocasió per deixar de compartir. Si la base de dades admet usuaris individuals, creeu-ne un per al desenvolupador amb els permisos que necessita la seva feina i una data de caducitat. Si l'API ofereix claus restringides, emeteu-ne una al seu nom. La guia d'accés a bases de dades per a col·laboradors externs (https://uselinkpilot.com/ca/blog/how-to-send-a-temporary-database-login-to-a-contractor-securely) explica aquest patró. Les credencials fetes per a una persona es poden retirar només a aquella persona.

## Com lliurar els valors secrets

Hi ha dues vies que funcionen, i totes dues eviten que el fitxer quedi en un missatge.

**Enganxeu les línies secretes en un enllaç d'un sol ús.** Obriu l'eina d'enllaços secrets (https://uselinkpilot.com/ca/tools/free-secret-link-generator), enganxeu-hi només les línies que contenen secrets i creeu l'enllaç. El text es xifra al vostre navegador abans de desar-se, la còpia desada es destrueix la primera vegada que s'obre l'enllaç, i l'enllaç caduca al cap d'una hora, 24 hores o set dies si ningú no l'obre. Sense compte hi caben fins a 10.000 caràcters: la majoria de fitxers `.env` hi caben diverses vegades.

**Adjunteu el fitxer sencer a un enllaç secret.** Amb la sessió iniciada en un compte de LinkPilot podeu adjuntar fins a tres fitxers de 9 MB cadascun a un secret. Cada fitxer es xifra al vostre navegador amb una clau derivada de la clau del mateix secret, de manera que el servidor no té mai el fitxer sense xifrar, i l'adjunt se suprimeix després de l'única baixada. Aquesta és la millor via quan el fitxer ha d'arribar idèntic byte a byte, per exemple un fitxer JSON d'un compte de servei o un magatzem de claus.

En tots dos casos:

1. **Verifiqueu el desenvolupador** pel canal de contractació o del contracte, no per l'adreça que ha demanat el fitxer.
2. **Definiu la caducitat** segons el temps que de debò farà servir. Una hora si està esperant, un dia si és en una altra zona horària.
3. **Limiteu les visualitzacions a una.**
4. **Afegiu una frase de contrasenya amb un compte Pro** per als valors de producció, i envieu-la per un altre canal.
5. **Envieu l'enllaç amb una nota d'una línia** que digui què és i on va el fitxer. Envieu la configuració no secreta a part, o remeteu al fitxer d'exemple del repositori.

Una invitació a la caixa forta és la millor via quan el desenvolupador és una incorporació fixa i l'equip ja fa servir un gestor de secrets amb accés per desenvolupador. Feu servir l'enllaç d'un sol ús mentre això no estigui configurat, i per a qui no hagi d'entrar mai a la caixa forta.

## Expliqueu al desenvolupador on va el fitxer

Un lliurament net pot acabar malament igualment si el fitxer va a parar a una carpeta compartida. Envieu aquestes indicacions juntament amb les dades de connexió:

- **Deseu-lo com a `.env` a l'arrel del projecte** i enlloc més. Comproveu que `.gitignore` el cobreix abans del primer commit.
- **No enganxeu valors en tiquets ni al xat** per preguntar si són correctes. Indiqueu una variable que falta o que no és vàlida només pel nom, i qui ha enviat el fitxer en generarà un valor nou.
- **Rotació en acabar.** Quan s'acabi l'encàrrec, els valors d'aquell fitxer es rotaran. Digueu-ho des del principi perquè no sorprengui ningú.

## Confirmeu i després feu neteja

Demaneu al desenvolupador que us confirmi el nom del fitxer, l'entorn i una marca que no sigui secreta, com ara un comentari de versió a la primera línia. Si un enllaç d'un sol ús indica que s'ha obert abans que hi arribés, considereu exposats tots els valors que contenia i roteu-los.

Quan el lliurament s'hagi completat, revoqueu els enllaços que no s'hagin obert mai, suprimiu qualsevol còpia temporal que hàgiu fet i anoteu qui ha rebut els valors de quin entorn i quan. Aquest registre és el rastre d'auditoria. El fitxer només hauria d'existir a la màquina que el necessita.

## Lectures relacionades

- Com compartir claus d'API de manera segura: https://uselinkpilot.com/ca/blog/how-to-share-api-keys-securely
- Compartir enllaços de manera segura per a desenvolupadors: https://uselinkpilot.com/ca/blog/secure-link-sharing-for-developers
- Com crear un enllaç segur temporal per compartir fitxers: https://uselinkpilot.com/ca/blog/how-to-create-a-temporary-secure-link-for-sharing-files
- Com funcionen els enllaços secrets d'un sol ús: https://uselinkpilot.com/ca/blog/how-one-time-secret-links-work

## Eines per a aquest article

Generador d'enllaços secrets d'un sol ús

Compartiu una contrasenya o una nota amb un enllaç que només s'obre una vegada.
https://uselinkpilot.com/ca/tools/free-secret-link-generator

Missatge que s'autodestrueix

Envieu una nota que desapareix després de llegir-la una vegada.
https://uselinkpilot.com/ca/tools/burn-after-read-secret

Generador d'enllaços amb caducitat

Creeu enllaços que deixen de funcionar en un moment determinat.
https://uselinkpilot.com/ca/tools/temporary-link

## Preguntes freqüents

### És segur enviar un fitxer de configuració per correu?

### Els secrets s'han de desar al fitxer de configuració?

### Quina és la manera més segura de compartir un .env amb un col·laborador extern?

### He de xifrar un fitxer de configuració abans de compartir-lo?

### Com puc confirmar que el desenvolupador ha rebut el fitxer correcte?

### I si he enviat el fitxer a la persona equivocada?

## LinkPilot envia un enllaç secret que desapareix després d'obrir-lo.

Es xifra al vostre navegador, es mostra una sola vegada i després es destrueix. Sense compte.

Crea un enllaç secret (https://uselinkpilot.com/ca/tools/free-secret-link-generator)

## Llegiu també

Seguretat

### Com compartir secrets de manera segura en equips en remot

Compartir secrets en remot en cinc passos: inventari, caixa forta o enllaç d'un sol ús segons la durada, tres regles, l'eina a Slack i un pla per a fuites.
https://uselinkpilot.com/ca/blog/how-to-implement-secure-secret-sharing-for-remote-teams

Seguretat

### Com crear una manera segura de lliurar credencials entre equips

Lliurar credencials entre equips de manera segura: caixa forta o enllaç d'un sol ús segons l'ús, abast limitat, un responsable i revocació a temps.
https://uselinkpilot.com/ca/blog/how-to-create-a-secure-way-to-hand-off-credentials-between-teams

Seguiment d'enllaços

### Com gestionar URL amb domini propi per a diversos clients

URL amb domini propi per a agències: un espai de treball i un domini per client, rols que separen agència i client, i una llista per a la baixa.
https://uselinkpilot.com/ca/blog/how-to-manage-branded-urls-across-multiple-client-accounts

## Structured data

```json
[
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "position": 1,
        "name": "Inici",
        "item": "https://uselinkpilot.com/ca"
      },
      {
        "@type": "ListItem",
        "position": 2,
        "name": "Blog",
        "item": "https://uselinkpilot.com/ca/blog"
      },
      {
        "@type": "ListItem",
        "position": 3,
        "name": "Com lliurar un fitxer de configuració de manera segura",
        "item": "https://uselinkpilot.com/ca/blog/how-to-securely-deliver-a-config-file-to-a-developer"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "BlogPosting",
    "@id": "https://uselinkpilot.com/ca/blog/how-to-securely-deliver-a-config-file-to-a-developer#article",
    "headline": "Com lliurar un fitxer de configuració de manera segura",
    "description": "Separeu la configuració dels secrets, envieu-los per un enllaç d'un sol ús o en un adjunt que es destrueix en baixar-lo i deixeu el .env fora de git.",
    "inLanguage": "ca",
    "datePublished": "2026-10-26",
    "dateModified": "2026-10-26",
    "image": "https://uselinkpilot.com/logo-512.png",
    "author": {
      "@type": "Organization",
      "@id": "https://uselinkpilot.com/author/linkpilot-team#organization",
      "name": "LinkPilot Team",
      "url": "https://uselinkpilot.com/ca/author/linkpilot-team"
    },
    "publisher": {
      "@type": "Organization",
      "name": "LinkPilot",
      "url": "https://uselinkpilot.com",
      "logo": {
        "@type": "ImageObject",
        "url": "https://uselinkpilot.com/logo-512.png",
        "width": 512,
        "height": 512
      }
    },
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://uselinkpilot.com/ca/blog/how-to-securely-deliver-a-config-file-to-a-developer"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "És segur enviar un fitxer de configuració per correu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "No, si conté secrets reals. El correu deixa còpies a les dues bústies, a cada dispositiu sincronitzat i a les còpies de seguretat que hi ha al darrere. Envieu els valors secrets per un enllaç d'un sol ús i reserveu el correu per a la configuració que no és secreta."
        }
      },
      {
        "@type": "Question",
        "name": "Els secrets s'han de desar al fitxer de configuració?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Només quan l'aplicació ho exigeix. És millor posar valors provisionals al fitxer del repositori i injectar els valors reals en temps d'execució des de l'entorn o un gestor de secrets. El fitxer d'exemple del repositori documenta l'estructura; els valors secrets viatgen per separat."
        }
      },
      {
        "@type": "Question",
        "name": "Quina és la manera més segura de compartir un .env amb un col·laborador extern?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Verifiqueu-ne la identitat, doneu-li credencials pròpies limitades a l'entorn que necessita, envieu aquests valors per un enllaç d'un sol ús i expliqueu-li on va el fitxer i que no s'ha de pujar mai al repositori."
        }
      },
      {
        "@type": "Question",
        "name": "He de xifrar un fitxer de configuració abans de compartir-lo?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Si l'adjunteu a un enllaç secret de LinkPilot, es xifra al vostre navegador abans de pujar-lo i es destrueix després d'una baixada, de manera que no cal cap pas més. Si feu servir un altre canal, xifreu-lo amb una eina com age o amb un arxiu protegit amb contrasenya, i envieu la frase de contrasenya per una altra via."
        }
      },
      {
        "@type": "Question",
        "name": "Com puc confirmar que el desenvolupador ha rebut el fitxer correcte?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Demaneu-li que us confirmi el nom del fitxer, l'entorn i una marca que no sigui secreta, com ara un comentari de versió a la part superior. No li demaneu mai que us torni a enviar el contingut."
        }
      },
      {
        "@type": "Question",
        "name": "I si he enviat el fitxer a la persona equivocada?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Roteu tots els secrets que conté als sistemes que els accepten i després actualitzeu els desplegaments que feien servir els valors antics. El fitxer en si no es pot recuperar."
        }
      }
    ],
    "inLanguage": "ca"
  },
  {
    "@context": "https://schema.org",
    "@type": "SoftwareApplication",
    "@id": "https://uselinkpilot.com/#software",
    "name": "LinkPilot",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "Web",
    "description": "LinkPilot is a secure link management platform for creating branded short links, tracking engagement, and sharing secrets with expiring, protected, self-destructing links.",
    "url": "https://uselinkpilot.com",
    "offers": [
      {
        "@type": "Offer",
        "name": "Free",
        "price": "0",
        "priceCurrency": "USD",
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Pro",
        "price": "29",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "29",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency",
        "price": "299",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "299",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency Plus",
        "price": "799",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "799",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Pro (yearly)",
        "price": "288",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "288",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency (yearly)",
        "price": "2988",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "2988",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency Plus (yearly)",
        "price": "7980",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "7980",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Enterprise",
        "priceSpecification": {
          "@type": "PriceSpecification",
          "priceCurrency": "USD"
        },
        "url": "https://uselinkpilot.com/pricing"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Organization",
    "@id": "https://uselinkpilot.com/#organization",
    "name": "LinkPilot",
    "alternateName": "LinkPilot by TetraCore",
    "url": "https://uselinkpilot.com",
    "contactPoint": {
      "@type": "ContactPoint",
      "contactType": "customer support",
      "email": "support@uselinkpilot.com",
      "url": "https://uselinkpilot.com/support"
    },
    "parentOrganization": {
      "@type": "Organization",
      "@id": "https://tetracorehq.com/#organization",
      "name": "TetraCore",
      "url": "https://tetracorehq.com/"
    },
    "logo": {
      "@type": "ImageObject",
      "url": "https://uselinkpilot.com/logo-512.png",
      "width": 512,
      "height": 512
    },
    "description": "LinkPilot is a secure link management platform for creating branded short links, tracking engagement, and sharing secrets with expiring, protected, self-destructing links.",
    "sameAs": [
      "https://x.com/uselinkpilot",
      "https://www.linkedin.com/company/uselinkpilot",
      "https://facebook.com/uselinkpilot",
      "https://github.com/TetraCoreHQ/linkpilot-cli",
      "https://github.com/TetraCoreHQ/linkpilot-mcp",
      "https://www.npmjs.com/package/linkpilot",
      "https://www.npmjs.com/package/@uselinkpilot/sdk",
      "https://www.npmjs.com/package/@uselinkpilot/mcp",
      "https://chromewebstore.google.com/detail/linkpilot-short-links-and/mnmppadihpcncicldpkmgknhnjkondad",
      "https://addons.mozilla.org/en-US/firefox/addon/uselinkpilot/"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebSite",
    "name": "LinkPilot",
    "url": "https://uselinkpilot.com",
    "potentialAction": {
      "@type": "SearchAction",
      "target": "https://uselinkpilot.com/blog?q={search_term_string}",
      "query-input": "required name=search_term_string"
    }
  }
]
```