Container Environment
Configurați imaginea containerului oficial al platformei folosind variabilele de mediu PROBOD_*, secretele necesare, referințele secrete AWS și comportamentul de pornire.
The official container image uses probod-bootstrap to convert PROBOD_*
variabile de mediu într-un fișier de configurare YAML înainte de a începe probod.
Startup behavior
Section titled “Startup behavior”CONFIG_FILE selectează fișierul de configurare generat sau montat și defectează /etc/probod/config.yml.
La fiecare container începe:
- When
PROBOD_ENCRYPTION_KEYeste setat, punctul de intrare genereazăCONFIG_FILEde mediu. conţinutul fişierului existent este înlocuit. - În caz contrar, punctul de intrare utilizează
CONFIG_FILE. - Startup-ul eșuează atunci când nici una dintre surse nu este disponibilă.
This makes PROBOD_ENCRYPTION_KEY Schimbarea între configurația generată de mediu și cea gestionată direct.
Required inputs
Section titled “Required inputs”probod-bootstrap requires four persistent secrets:
| Variable | Purpose |
|---|---|
PROBOD_ENCRYPTION_KEY | Encrypts sensitive application data at rest |
PROBOD_AUTH_COOKIE_SECRET | Signs session cookies |
PROBOD_AUTH_PASSWORD_PEPPER | Adds a deployment secret to password hashing |
PROBOD_OAUTH2_SERVER_SIGNING_KEY | Cheia privată PEM RSA utilizată pentru a semna jetoane OAuth 2.0 |
Generarea de valori aleatorii separate pentru primele trei setări și o cheie RSA pentru cheia de semnare:
openssl rand -base64 32
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048
Setați aceste valori înainte de începerea primei producții, păstrați-le stabile pe parcursul restarturilor și a instanțelor de aplicare și includeți-le în procedurile de recuperare.
Configure the application
Section titled “Configure the application”Setarea valorilor infrastructurii și aplicațiilor alături de secretele necesare Acest exemplu minim arată intrările principale; nu este o listă completă de variabile.
PROBOD_BASE_URL=https://probo.example.com
PROBOD_API_ADDR=0.0.0.0:8080
PROBOD_API_CORS_ALLOWED_ORIGINS=https://probo.example.com
PROBOD_PG_ADDR=postgres.example.com:5432
PROBOD_PG_USERNAME=probod
PROBOD_PG_PASSWORD=replace-me
PROBOD_PG_DATABASE=probod
PROBOD_AWS_REGION=eu-west-1
PROBOD_AWS_BUCKET=probo-production
Procesul bootstrap aplică setările implicite documentate, convertește șirurile la tipurile necesare și eșuează înainte de a scrie fișierul atunci când o valoare necesară lipsește sau o valoare nu poate fi analizată.
Special input behavior
Section titled “Special input behavior”PROBOD_PG_CA_BUNDLE_PATHcitește un pachet PostgreSQL CA dintr-un fișier și are prioritate față de inlinePROBOD_PG_CA_BUNDLE.- When both
PROBOD_SAML_CERTIFICATEandPROBOD_SAML_PRIVATE_KEYsunt absente, bootstrap generează o pereche. Configurează o pereche stabilă atunci când sesiunile SAML trebuie să supraviețuiască înlocuirii containerului. - Setarea unui ID client de conector activează acel conector și face necesar secretul clientului. Slack necesită, de asemenea, secretul de semnătură; Vercel necesită, de asemenea, slugul de integrare.
- Intrările separate de comă sunt tăiate și convertite în liste.
- Boolean values use
trueorfalseDuratele numerice sunt exprimate în unitatea indicată în complete reference. - PEM values must preserve their line breaks.
External secret references
Section titled “External secret references”Toate valorile citite de probod-bootstrap poate fi o referință secretă literală sau AWS:
| Syntax | Service |
|---|---|
awssm://<secret-id> | AWS Secrets Manager |
aws://<secret-id> | AWS Secrets Manager alias |
awsps://<parameter-name> | AWS Systems Manager Parameter Store |
PROBOD_ENCRYPTION_KEY=awssm://probo/production/encryption-key
PROBOD_AUTH_COOKIE_SECRET=awsps:///probo/production/cookie-secret
Rezoluția secretă utilizează lanțul de credențiale și regiune standard AWSSDK.
PROBOD_AWS_* Configurează platforma de stocare a obiectelor; nu autentifică rezoluția secretă.
Apply changes
Section titled “Apply changes”Fișierul generat este un artefact de pornire și probod După modificarea unei variabile de mediu sau a unui secret de referință, reporniți fiecare instanță de aplicație și confirmați că fiecare instanță pornește cu succes.