Hopp til hovedinnholdet

Selv-Hosted Miljø Referanse

Begynn med utgivelsen env.examplesom du har lastet ned som .env i Komme i gang. Det er den minste støttede Compose konfigurasjon. Bruk env.full.example når du trenger en valgfri innstilling; denne siden forklarer hvilke innstillinger som hører sammen og når du skal endre dem.

Etter redigering .env, validere interpolering uten å skrive ut den løste konfigurasjonen:

docker compose config --quiet

Ikke forplikte .env, lim den inn i støtteforespørsler, eller utsett utgangen av docker compose config: Den løste utgangen inneholder hemmeligheter.

Nødvendige produksjonsverdier​

Generer hver hemmelighet uavhengig med openssl rand -hex 32. Hold de gamle verdiene gjennom hver oppgradering og lagre en gjenopprettingskopi utenfor serveren.

VariabelProduksjonsverdiHvorfor det betyr noe
POSTGRES_PASSWORDUnikt tilfeldig passordBeskytter den medfølgende PostgreSQL-databasen.
WEB_ORIGINOffentlig HTTPS-appopprinnelse, som https://kanera.example.comBrukes for nettleserlenker, CORS og autentiseringsflyter. Ikke ta med en etterfølgende skråstrek.
COOKIE_DOMAINApp-vertsnavn, for eksempel kanera.example.comTillegg for oppfriskningskaken.
COOKIE_SECUREtrueNødvendig når appen er servert over HTTPS.
JWT_SECRETStabil tilfeldig hemmelighet, minst 16 tegnSignerer brukerøkter. Rotasjon signerer alle ut.
MCP_INTERNAL_SECRETStabil tilfeldig hemmelighet, minst 32 tegn og forskjellig fra JWT_SECRETLar MCP og offentlige API-tjenester utveksle publikumsbundet OAuth-legitimasjon uten å videresende en MCP-token til /api/v1Begge tjenestene må alltid ha samme verdi.
MFA_ENCRYPTION_KEYStabil tilfeldig hemmelighet, minst 32 tegnBeskytter autentiseringsregistrering og utfordringer. Rotasjon ugyldiggjør registrerte autentiseringspersoner.
MEDIA_SIGNING_SECRETStabil tilfeldig hemmelighet, minst 32 tegnSignerer private medieadresser. Rotasjon ugyldiggjør eksisterende signerte nettadresser.
SECRETS_ENCRYPTION_KEYStabil tilfeldig hemmelighet, minst 32 tegn og forskjellig fra JWT_SECRETKrypterer SMTP, lagring, webhook og integrasjonslegitimasjon som er lagret i databasen.

KANERA_DEPLOYMENT_MODE standardverdier til self_hosted. Vertsbasert modus og dens Stripe, PostHog, plan-limit og lisensieringsvariabler er for Kanera-opererte distribusjoner og bør forbli uinnstilt på en selv-vert installasjon.

Komponer forsyninger NODE_ENV=production og ANALYTICS_ENABLED=false. La ANALYTICS_PROVIDER, POSTHOG_PROJECT_KEY, POSTHOG_API_HOST, hver STRIPE_*, HOSTED_*, og vertsmodus token unset. Disse innstillingene slår ikke en selvbetjent installasjon til Kanera Cloud.

Offentlige URL-adresser og tjenester​

VariabelStandardSett den når
KANERA_ENVIRONMENTproduction i produksjon ComposeDu trenger et annet API-nøkkelprefiks for utvikling, testing eller iscenesettelse.
API_PUBLIC_URLWEB_ORIGINAppen API bruker en annen offentlig opprinnelse.
KANERA_PUBLIC_API_URLhttp://public-api:3001 i KomponereMCP eller en annen intern prosess når den offentlige API-en et annet sted enn dens Compose-tjenesteadresse. Dette er en intern URL, ikke den nettleservendte API-opprinnelsen.
PUBLIC_API_OAUTH_ISSUERhttp://localhost:3001Du eksponerer OAuth eller den offentlige API eksternt; bruk den nettleser-nåbare HTTPS-opprinnelsen.
MCP_SERVER_PUBLIC_URLhttp://localhost:3002/mcpDu eksponerer ekstern MCP; bruk hele publikum /mcp URL.
MCP_PUBLIC_URLAvledet fra MCP_SERVER_PUBLIC_URL etter ComposeDu kjører MCP-tjenesten utenfor den medfølgende komponere ledninger.
OAUTH_ISSUER_URLAvledet fra PUBLIC_API_OAUTH_ISSUER etter ComposeDu kjører MCP utenfor den medfølgende Compose ledninger.
API_PORT, PUBLIC_API_PORT, WORKER_PORT, MCP_PORT3000, 3001, 3003, 3002Du kjører tjenester utenfor Compose eller trenger forskjellige interne lytterporter.
API_TRUST_PROXY, PUBLIC_API_TRUST_PROXY, MCP_TRUST_PROXYfalse, false, trueEn pålitelig omvendt proxy leverer den virkelige klient-IP-en. Stol aldri på videresendte overskrifter fra vilkårlige klienter.

Nettleseren kobler til web; ikke publisere hoved api service. Se Tjenester og rute før du eksponerer den offentlige API eller MCP.

Kontoer og autentisering​

VariabelStandardFormål
SIGNUPS_ENABLEDtrueSett false for å stoppe offentlig registrering og opprettelse av ny organisasjon. Eksisterende organisasjonsinvitasjonslenker fungerer fortsatt.
EMAIL_VERIFICATION_ENABLEDfalseKrev en sekssifret e-postsjekk for registrering, inviter registrering og e-postendringer. Aktiver bare etter at SMTP fungerer.
AUTH_RATE_LIMIT_ENABLEDtrueAktiver per-IP brute-force strupe på ikke-autentiserte auth ruter.
AUTH_RATE_LIMIT_MAX / AUTH_RATE_LIMIT_WINDOW_MS10 / 60000Tillatt auth forsøk per vindu.
JWT_ACCESS_TTL / JWT_REFRESH_TTL_DAYS5m / 10Tilgangstoken og oppdaterings-økt levetid.
CLOUDFLARE_TURNSTILE_SITE_KEY / CLOUDFLARE_TURNSTILE_SECRET_KEYFjernVert registrering beskyttelse. La unset for normal selv-hosting.

Brukere konfigurerer sin egen autentiseringsenhet under Innstillinger -> Din konto -> Sikkerhet. Organisasjonsadministratorer kan kreve det under Innstillinger -> Organisasjon -> Sikkerhet. Se Profil og sikkerhet.

Offentlige API- og MCP-grenser​

VariabelStandardFormål
PUBLIC_API_RATE_LIMIT_ENABLEDtrueAktiverer offentlige API- og MCP-forespørselsgrenser.
PUBLIC_API_IP_RATE_LIMIT_PER_MINUTE60Grense for ikke-autentiserte oppdagelses- og ugyldige bærerformater.
PUBLIC_API_FAILED_KEY_RATE_LIMIT_PER_MINUTE10Per- IP- grense for mislyktes kanera_* Nøkkelforsøk.
PUBLIC_API_KEY_RATE_LIMIT_PER_MINUTE400Begrensning per nøkkel-forespørsel etter vellykket autentisering.
PUBLIC_API_UPLOAD_RATE_LIMIT_PER_MINUTE30Grense for opplasting av vedlegg per nøkkel.
PUBLIC_API_RATE_LIMIT_WINDOW_MS60000Rate-limit vindu delt av den offentlige API og MCP.
MCP_BODY_MAX_BYTES1048576Maksimal MCP-forespørselskropp.
MCP_REQUEST_TIMEOUT_MS30000Maksimal tid for en MCP-forespørsel.
MCP_HEADERS_TIMEOUT_MS / MCP_KEEP_ALIVE_TIMEOUT_MS10000 / 5000MCP HTTP-tilkoblingstimeouts.
KANERA_API_KEYFjernKreves bare av den lokale standard MCP-broen, ikke HTTP MCP-tjenesten.

Database, hurtigbuffer og kapasitet​

Komponer forsyninger DATABASE_URL og REDIS_URL for de sammenpakkede PostgreSQL- og Valkey-tjenestene. Angi dem selv bare når du kjører en prosess utenfor nettverket eller bruker administrerte tjenester.

VariabelSkriv standardFormål
DATABASE_SSLfalseAktiver bare når en ekstern database krever SSL.
POSTGRES_BIND_PORT5433Loopback-bare vertsport for medfølgende PostgreSQL.
API_REPLICAS / PUBLIC_API_REPLICAS / MCP_REPLICAS2 / 1 / 1Serviceprosessen teller. Hold arbeideren på nøyaktig ett.
PG_POOL_MAX / WORKER_PG_POOL_MAX20 / 5Maksimal databasetilkobling per appprosess og for arbeideren.
PG_IDLE_TIMEOUT_MS / PG_CONNECTION_TIMEOUT_MS30000 / 5000Pool tomgang og oppkjøp timeouts.
PG_STATEMENT_TIMEOUT_MS / SLOW_QUERY_LOG_MS30000 / 250Tidsavbrudd for databasespørring og terskel for langsom spørring.
NODE_OPTIONSFjernValgfrie nodeflagg, for eksempel en heapgrense.
UV_THREADPOOL_SIZE16Innfødte arbeidertråder som brukes av hashing, krypto og bildebehandling.
REALTIME_WEBSOCKET_COMPRESSION_ENABLEDtrueKomprimer større Socket.IO WebSocket meldinger.
REALTIME_WEBSOCKET_COMPRESSION_THRESHOLD_BYTES1024Minimum sanntidsrammestørrelse for komprimering.
REALTIME_OUTBOX_POLL_MS500 i KomponereArbeider fallback polling intervall for sanntid og webhook utboks rader.
USER_DISPLAY_CACHE_TTL_MS60000Levetid for hurtigbuffer under behandling for oppslag med visningsnavn.

Hev kopier og bassenger sammen bare etter måling kapasitet. Se Oppdateringer og skalering.

Filer og objektlagring​

VariabelStandardFormål
UPLOADS_DIR/data/uploads i KomponereLokal opplastingskatalog. Bundlet Compose retter denne banen og vedvarer den i kanera_uploads; endre volumkartleggingen i stedet for .env.
ATTACHMENT_MAX_BYTES104857600Maksimal opplastet vedleggsstørrelse i byte.
S3_REGION / S3_BUCKETFjernStart distribusjonsbred S3-kompatibel lagring når den leveres med legitimasjon.
S3_ACCESS_KEY_ID / S3_SECRET_ACCESS_KEYFjernPåloggingsopplysninger for opplastingsbøtta. Begge er nødvendige for miljøbasert S3.
S3_ENDPOINTFjernEgendefinert endepunkt for MinIO, R2 eller en annen S3-kompatibel leverandør. Innstilling det aktiverer banen stil forespørsler.
S3_PUBLIC_URL_PREFIXFjernValgfritt offentlig eller CDN-prefiks for lagrede objekter.

Miljølagring har forrang over organisasjonslagring som er konfigurert i appen. Se Lagring og sikkerhetskopiering før du bytter en installasjon som allerede har opplastinger.

E-post, varsler og integrasjoner​

VariabelStandardFormål
SMTP_HOST, SMTP_USER, SMTP_PASSWORD, SMTP_FROM_EMAILFjernStandard utgående SMTP-tilkobling og avsender.
SMTP_PORT / SMTP_SECURITY587 / starttlsSMTP-port og transport: starttls, tls, eller none.
SMTP_FROM_NAMEKaneraAvsenders visningsnavn.
SMTP_IDENTITY_DOMAINAvsender e-postdomeneEHLO og Message-ID domene.
INTERNAL_NOTIFICATION_EMAILSFjernKomma-separerte mottakere for klartekst registrering og invitasjon varsler. Krever miljø SMTP.
KANERA_ALLOW_PRIVATE_NOTIFICATION_DESTINATIONSfalseTillat personlige ntfy, Gotify og webhook mottakere på HTTP eller private nettverk. Reserverte og metadata adresser forblir blokkert.
ALERT_WEBHOOK_URLFjernSlack-kompatibel destinasjon for beredskap, kjøretid og Grafana varsler.
OPS_ALERTS_ENABLED / OPS_ALERT_THROTTLE_MStrue / 300000Aktiver og dedupliker driftsvarsler. Ingenting sendes uten et mål.
SLOW_REQUEST_LOG_MS2500Terskel for langsom forespørsel i logger.
GITHUB_APP_ID, GITHUB_APP_SLUG, GITHUB_APP_PRIVATE_KEYFjernValgfritt distribusjonsdefinert GitHub App for private lenke forhåndsvisninger. Selvbetjente administratorer kan i stedet bruke i-app manifest flyt.
TRELLO_API_KEYFjernLar Trello importerer autentisering og kopiere vedlegg.

Se E-post og varsler og Integrasjoner og APIer.

Sikkerhetskopiering og oppbevaring​

VariabelStandardFormål
DB_BACKUPS_ENABLEDfalseAktiver planlagte krypterte PostgreSQL-sikkerhetskopier til S3-kompatibel lagring.
DB_BACKUP_ENCRYPTION_PASSPHRASEFjernKreves når sikkerhetskopier er aktivert og kreves igjen for å gjenopprette dem.
DB_BACKUP_TIMES_UTC00:15,12:15,16:45Komma-adskilt daglig UTC backup ganger.
DB_BACKUP_RETENTION_DAYS14Vellykket backup oppbevaring vindu.
DB_BACKUP_S3_PREFIXbackups/postgresObjektprefiks for databasedumper.
DB_BACKUP_S3_BUCKET, DB_BACKUP_S3_REGION, DB_BACKUP_S3_ENDPOINTOpplastingsverdierValgfritt separat sikkerhetskopieringsdestinasjon.
DB_BACKUP_S3_ACCESS_KEY_ID, DB_BACKUP_S3_SECRET_ACCESS_KEYOpplastingsverdierValgfri separat sikkerhetskopieringsinformasjon.
ACTIVITY_EVENT_RETENTION_DAYS730Aktivitetshistorie oppbevaring.
ADMIN_AUDIT_LOG_RETENTION_DAYS1095Ledelsens revisjonslogg.
NOTIFICATION_READ_RETENTION_DAYS / NOTIFICATION_MAX_RETENTION_DAYS90 / 365Les-varsling og absolutt varsling oppbevaring.
AUTH_TOKEN_RETENTION_DAYS30Nådeperiode før utløpt eller forbrukt auth artefakter er renset.
REALTIME_OUTBOX_RETENTION_DAYS / OUTBOX_STUCK_RETENTION_DAYS30 / 30Behandlet og permanent fast utboks oppbevaring.

Se Lagring og sikkerhetskopiering for sikkerhetskopieringskrav og gjenopprettingsplanlegging.

Overvåking​

VariabelStandardFormål
METRICS_ENABLEDtrueRegistrerer Prometheus-målepunkter. De returnerer 404 Uten gyldige tegn.
METRICS_TOKENFjernBærertoken, minst 16 tegn, kreves for skraping.
COMPOSE_PROFILESFjernInkluder monitoring å starte Grafana, Prometheus, Loke, Alloy, og eksportører; inkludere admin for forvaltningsportalen.
COMPOSE_PROJECT_NAMEkaneraSkriv identitet som brukes av Alloy til å velge logger for denne distribusjonen. docker compose ls på administrerte plattformer.
GRAFANA_ADMIN_PASSWORDFjernNødvendig når overvåkingsprofilen er aktivert.
MONITORING_BIND_IP127.0.0.1Vertsgrensesnitt for Grafana og Prometheus. Bruk en privat VPN-adresse, aldri 0.0.0.0 i produksjon.
GRAFANA_BIND_PORT / PROMETHEUS_BIND_PORT3000 / 9090Vertsporter for de to overvåkingsgrensesnittene.
PROMETHEUS_RETENTION / PROMETHEUS_RETENTION_SIZE30d / 5GBTid og disk tak for Prometheus data.
GRAFANA_ROOT_URLFjernEkstern Grafana URL når den serveres gjennom en proxy.
POSTGRES_EXPORTER_DSNBundlet databaseOverstyring for en ekstern PostgreSQL-server.
REALTIME_EMIT_METRICS_ENABLEDfalseAktiver samplede sanntid nyttelast beregninger.
REALTIME_EMIT_METRICS_SAMPLE_RATE / REALTIME_EMIT_METRICS_MIN_BYTES0.01 / 0Sampling i sanntid og minste nyttelaststørrelse.

Valgfri administrasjonsportal​

Administrasjonsportalen er atskilt fra leietakerinnstillinger og har sin egen autentiseringsgrense. Aktiver den bare når operatører trenger administrasjon på tvers av organisasjonen eller reviderte støtteøkter.

VariabelStandardFormål
ADMIN_WEB_ORIGINhttp://localhost:4300Offentlig opprinnelse og CORS-grense for admin-konsollen.
ADMIN_API_PORT3002Intern admin API lytter port når den kjører utenfor den medfølgende ledninger.
ADMIN_COOKIE_DOMAINFjernOverstyring av informasjonskapsel-domene når administratorvertsnavnet er utenfor COOKIE_DOMAIN.
ADMIN_JWT_SECRETFjernkreves for admin API og må avvike fra JWT_SECRET.
ADMIN_EMAIL / ADMIN_PASSWORDFjernSeed den første superadmin bare mens admin-user tabellen er tom. De tilbakestiller ikke en eksisterende konto.
ADMIN_JWT_ACCESS_TTL / ADMIN_JWT_REFRESH_TTL_DAYS15m / 7Admin tilgang og oppdatere levetider.
ADMIN_LOGIN_RATE_LIMIT_MAX / ADMIN_LOGIN_RATE_LIMIT_WINDOW_MS5 / 300000Per-IP admin innlogging gass.
ADMIN_TRUST_PROXYtrueStol på admin omvendt proxy for ekte klient IP-adresser.
SUPPORT_SESSION_TTL_MINUTES60Kort levetid på støtteøkten; maksimalt åtte timer og ingen oppdateringstoken.

Hold administrasjonsportalen privat, bruk et eget vertsnavn og hemmelig, og gjennomgå revisjonsloggen. Den fullstendige distribusjonsledningen er dokumentert i DEPLOY.md i Kanera-arkivet.

Bruk og verifiser endringer​

De fleste endringer krever at de berørte tjenestene gjenskapes:

docker compose config --quiet
docker compose up -d
docker compose ps

Kontroller de relevante tjenesteloggene etter endring av autentisering, levering, lagring, API, MCP eller administratorinnstillinger. .env Det er ikke bevist at eksterne legitimasjon eller URL-adresser fungerer.