Verdi Media Essentials
Kjernepakken vår som rulles ut på alle standard WordPress-installasjoner for optimal ytelse og styring.
Installasjon og lisensiering
Essentials installeres enklest via MainWP eller ved å laste opp zip-arkivet manuelt under plugins i WordPress. Siden dette er en proprietær plugin for Verdi Media, gjøres oppdateringer automatisk via vår interne distribusjonsserver.
wp plugin install https://dist.verdimedianorge.no/plugins/verdi-essentials.zip --activate
wp-config.php for at automatiske oppdateringer skal fungere.Konfigurering i wp-config.php
Legg til følgende linje i din wp-config.php-fil for å autorisere nettstedet mot oppdateringsserveren vår:
define( 'VERDI_ESSENTIALS_LICENSE', 'din-unike-lisensnokkel-her' );
Koble til og bruke Essentials Security
Essentials Security er en must-use-plugin som VerdiVision (eller curl) kaller når en kundesite er nede på grunn av en kræsjet plugin eller tema.
/wp-json/...). Den lastes før vanlige plugins, så recovery-API-et svarer selv om WP Rocket (som plugin) har krasjet.Hva du trenger på siten
- Verdi Media Essentials aktivert.
- VerdiVision-nøkkel lagret under Innstillinger → Verdi Media Essentials → VerdiVision. Samme nøkkel på alle sider.
- Security-agenten installert under Kontroll.
Uten nøkkel returneres JSON 401. Uten agent returneres vanlig WordPress-HTML (404/tema), ikke recovery-JSON.
Installere agenten (én gang per site)
- Logg inn som Verdi Media-admin (
@verdimedia.no/@verdimedianorge.no). - Gå til Innstillinger → Verdi Media Essentials → VerdiVision — lim inn nøkkelen hvis den mangler.
- Gå til fanen Kontroll og klikk på Installer security-agent.
Dette kopierer essentials-security.php til:
wp-content/mu-plugins/essentials-security.php
Status i fanen skal deretter vise Installert og at nøkkelen er den samme som i VerdiVision (siste fire tegn).
/themes-støtte). Klikker du Fjern agent, slettes filen fra mu-plugins (Essentials selv blir værende). Hvis mappen ikke er skrivbar, kan du laste den opp manuelt via SFTP.Koble til (autentisering)
Base-URL for forespørsler:
https://kunde.no/verdimedia-security/v1
Undermappe-installasjon: https://kunde.no/wordpress/verdimedia-security/v1.
Alle forespørsler krever et ferskt unix-timestamp (maks 5 minutter gammelt) og VerdiVision-nøkkelen i headerne:
| Header | Beskrivelse / Verdi |
|---|---|
X-Verdimedia-Timestamp |
time() (Unix timestamp) ved utsending |
X-Verdimedia-Security-Key |
Samme unike nøkkel som i VerdiVision-fanen |
Endepunkter i praksis
| Endepunkt | Metode | Brukstilfelle / Beskrivelse |
|---|---|---|
/status |
GET |
Lever agenten? Hva kræsjet sist? Returnerer JSON. |
/log |
GET |
Henter den fullstendige php-feilloggen. |
/plugins |
GET |
Se liste over plugins og finn spesifikk file-sti. |
/themes |
GET |
Se hvilket tema som kjører / har kræsjet (feltet stylesheet). |
/plugins/deactivate |
POST |
Få siten opp igjen ved å deaktivere en plugin. Send body: {"plugin":"mappe/fil.php"}. |
Merk: Temaer kan ikke deaktiveres direkte via API siden WordPress alltid krever et aktivt tema. /themes fungerer kun som en oversikt.
Debugging med curl
SITE="https://kunde.no"
KEY="verdivision-nøkkel"
# Sjekk status på agenten
curl -sS "${SITE}/verdimedia-security/v1/status" \
-H "X-Verdimedia-Timestamp: $(date +%s)" \
-H "X-Verdimedia-Security-Key: ${KEY}"
# Deaktiver en krasjet plugin (f.eks. WP Rocket)
curl -sS -X POST "${SITE}/verdimedia-security/v1/plugins/deactivate" \
-H "Content-Type: application/json" \
-H "X-Verdimedia-Timestamp: $(date +%s)" \
-H "X-Verdimedia-Security-Key: ${KEY}" \
-d '{"plugin":"wp-rocket/wp-rocket.php"}'
Anbefalt rekkefølge når siten er nede
- Kjør
GET /status. Får du JSON200lever agenten. Får du HTML, timeout eller 500, har sannsynligvis en PHP-drop-in (somadvanced-cache.php) kræsjet helt i starten, og da må du feilsøke via SFTP i stedet. - Kjør
GET /logog lescomponent(plugin/theme/drop-in) og feilkildenid. - Dersom det skyldes en plugin: kjør
GET /plugins, finn filstien som har statusfatal_loggedellerpaused, og deaktiver den medPOST /plugins/deactivate. - Kjør
GET /statuspå nytt for å bekrefte at alt kjører grønt.
Kjente feilkoder
| Respons | Betydning |
|---|---|
JSON 401 |
Mangler eller ugyldig nøkkel, eller timestamp er eldre enn 5 minutter. |
JSON 400 (invalid_plugin) |
Deaktivering feilet fordi plugin-stien ikke er en gyldig mappe/fil.php. |
JSON 404 (not_found) |
Feil endepunkt-path ble kalt under /verdimedia-security/v1/. |
| HTML 404 | Sikkerhets-agenten er ikke installert i mu-plugins/-mappen. |
advanced-cache.php, object-cache.php og db.php lastes før mu-plugins i WordPress. Hvis feilen ligger her, vil ikke API-et svare. Da må du løse det via SFTP eller kontrollpanelet til hosten.VerdiVision Integrasjon
Hvordan koble nettstedene opp mot vårt sentrale rapporterings- og overvåkningspanel, VerdiVision.
Automatisert oppkobling
VerdiVision samler inn feilmeldinger, oppetidsstatistikk, og plugin-status på tvers av hele kundeporteføljen. For å opprette koblingen må API-nøkkelen hentes ut fra VerdiVision-panelet.
| Parameter | Type | Beskrivelse |
|---|---|---|
VERDIVISION_API_KEY |
Streng (UUID) | Unik token for nettstedet generert i VerdiVision. |
VERDIVISION_ENV |
Konstant | Defineres som 'production' eller 'staging'. |
Konfigurasjonseksempel
Settes inn i bunnen av wp-config.php før WordPress-oppstart-linjen:
define( 'VERDIVISION_API_KEY', 'vv_9a8b7c6d5e4f3g2h1' );
define( 'VERDIVISION_ENV', 'production' );
Bruke Essentials og SMTP Bridge
En guide for Verdi Media-ansatte som setter opp utgående e-post på en kundesite. SMTP Bridge erstatter tradisjonell SMTP-konfigurasjon og SendGrid.
wp_mail() rutes over sikker HTTPS til verdi-smtp-bridge mikrotjenesten, som kjører Postmark i bakgrunnen. Innstillinger vises kun for administratorer med @verdimedia.no eller @verdimedianorge.no-adresser.Hva skjer når SMTP Bridge er aktiv?
- Et plugin eller WordPress-kjernen kaller
wp_mail(). - Essentials fanger opp dette kallet via
pre_wp_mail-filteret før ordinære SMTP-plugins. - En lokal spam-sjekk kjøres automatisk mot kjente skjemaplugins (Contact Form 7, Gravity Forms, WPForms, Elementor, honeypot). Ved treff avbrytes sendingen umiddelbart, men rapporten settes til OK slik at sluttbrukeren ikke ser en feilmelding i nettleseren.
- Avsender (From) settes alltid automatisk til
ikkesvar@{source_domain}. Den opprinnelige From-adressen flyttes tilReply-To(om den ikke er satt fra før). - E-posten POST-es til bridge-serveren. En HTTP-status 202 betyr at Postmark har akseptert sendingen.
Forutsetninger
- Verdi Media Essentials er aktivert på siten.
- Bridge-tjenesten kjører (produksjonsmiljø:
https://smtp-bridge.verdimedia.no). - Kunden har et gyldig source domain (kundens eget domene, ikke
verdimedia.no). - Bruk aldri
produksjon@verdimedia.nosom From-adresse (Avsendervakt vil blokkere og varsle).
Steg 1 — Konfigurering i wp-config.php
Legg inn følgende konstanter i wp-config.php på serveren. Disse bør ligge lokalt og skal ikke pushes til git. Tokenet må matche verdien til INTERNAL_API_SECRET på SMTP Bridge-serveren.
define( 'VERDI_SMTP_BRIDGE_URL', 'https://smtp-bridge.verdimedia.no' );
define( 'VERDI_SMTP_BRIDGE_TOKEN', 'hemmelig-token' );
define( 'VERDI_SMTP_BRIDGE_ENABLED', true );
// Valgfritt — overstyrer og låser kundedomenet manuelt (anbefalt):
// define( 'VERDI_SMTP_BRIDGE_SOURCE_DOMAIN', 'kundedomene.no' );
// Valgfritt — e-postadresser for systemfeil og recovery mode:
// define( 'VERDI_SMTP_BRIDGE_TECHNICAL_TO', 'produksjon@verdimedia.no' ); // Standard verdi
// define( 'VERDI_SMTP_BRIDGE_TECHNICAL_REDIRECT', false ); // Slå av omdirigering av systemmail
VERDI_SMTP_BRIDGE_ENABLED er satt til true.Steg 2 — Sette opp Source Domain i admin
- Logg inn i wp-admin med din Verdi Media-bruker.
- Gå til Innstillinger → Verdi Media Essentials → SMTP Bridge (under Integrations).
- Verifiser at statusen lyser grønt og viser Configured (URL og token er på plass).
- Under feltet Manual source domain:
- La stå tomt om auto-deteksjon klarer å hente ut riktig domene fra nettadressen (f.eks.
www.kunde.noblirkunde.no). - Skriv inn domenet manuelt (i små bokstaver, f.eks.
kundedomene.no) dersom auto-deteksjonen velger feil domene.
- La stå tomt om auto-deteksjon klarer å hente ut riktig domene fra nettadressen (f.eks.
- Feltet Active source domain viser domenet som faktisk blir brukt. All utgående post vil nå få avsender som
ikkesvar@this-domain.no. Klikk Lagre.
Merk: Dersom VERDI_SMTP_BRIDGE_SOURCE_DOMAIN er definert i wp-config.php, vil dette feltet være låst og kan ikke endres i admin.
Steg 3 — Sende en test-epost
På samme fane kan du klikke på knappen Send test email:
- Vellykket: Bridge svarte med HTTP 202 (meldingen er mottatt og godkjent av Postmark, og sendes ut straks).
- Feil: Feil med URL/token, feil format på source domain, eller så er bridge-tjenesten nede.
Avsender- og SMTP-regler
| Regel | Detaljer og oppførsel |
|---|---|
| From | Tvinges alltid til ikkesvar@{source_domain}. |
| Reply-To | Opprinnelig From flyttes hit slik at man kan besvare e-postene direkte. |
| System-eposter | WordPress-oppdateringer, feilmeldinger og recovery-eposter omdirigeres automatisk til produksjon@verdimedia.no (kan slås av med VERDI_SMTP_BRIDGE_TECHNICAL_REDIRECT satt til false). |
| Forbudt avsender | Det er forbudt å sette produksjon@verdimedia.no som utgående avsenderadresse på kundenes e-poster. Det vil utløse varsel i dashbordet og blokkeres under lagring av e-postinnstillinger. |
Feilsøking
| Symptom | Hva du må sjekke / løsning |
|---|---|
| SMTP-fanen vises ikke | Sjekk at VERDI_SMTP_BRIDGE_ENABLED er satt til true i wp-config.php, og at du er logget inn med en godkjent @verdimedia.no-adresse. |
| Incomplete configuration | Konstantene VERDI_SMTP_BRIDGE_URL eller VERDI_SMTP_BRIDGE_TOKEN mangler eller er feilskrevet i wp-config.php. |
| Testfeil | Sjekk at tokenet matcher bridge-serveren, at HTTPS fungerer, og at kildedomene er et gyldig FQDN. |
| Skjema er "sendt", men ingen e-post mottas | E-posten kan ha blitt stoppet lokalt i WordPress av spam-sjekken (honeypot / CF7 spam). Sjekk skjemaloggene i WordPress framfor kun Postmark-feilloggen. |