Docker Compose
Kör en komplett, kostnadsfri Status200-instans på en enda Linux-server med Docker Compose. Den här sidan tar dig från en ny server till en körande instans och tar sedan upp HTTPS, härdning för produktion, säkerhetskopior, uppdateringar och borttagning. Vill du i stället arbeta med Status200s egen kod, se Lokal utveckling.
Så fungerar det
Docker Compose kör varje del av Status200 som en container på din server. All trafik kommer in genom containern ingress, som skickar den vidare till app. Appen sparar sina data i PostgreSQL, ClickHouse och Valkey. En medföljande prob kör dina monitorers kontroller och rapporterar tillbaka genom ingressen.
Installationen med Docker Compose
| Tjänst | Image | Vad den gör |
|---|---|---|
ingress | status200/nginx | Tar emot all trafik på port 80 och 443 och skickar den vidare till appen. Levererar HTTPS när Status200 hanterar certifikatet. |
app | status200/app | Dashboarden, API:t, statussidor, inläsning av telemetri och bakgrundsarbetarna. |
probe-1 | status200/probe | En global prob som kör dina monitorers kontroller. Den använder värdens nätverk. |
runner | status200/runner | Instansens Runner, som kör AI-kodkorrigeringar. Den använder värdens nätverk. |
postgres | postgres:15 | Konfiguration och tillstånd: monitorer, incidenter, användare. Lagras i volymen postgres. |
clickhouse | clickhouse/clickhouse-server:26.7 | Telemetri: loggar, mätvärden, traces och undantag. Lagras i volymen clickhouse. |
valkey | valkey/valkey:9.1-alpine | Cache och köer. Den sparar ingenting på disk. |
Tjänsten valkey kör Valkey, den BSD-licensierade forken av Redis 7.2, konfigurerad via inställningarna VALKEY_* i config.env. Alla servrar som talar Redis-protokollet fungerar — peka VALKEY_HOST mot en hanterad Redis om du föredrar det. Fram till 13.0.0 hette de här inställningarna REDIS_*; de gamla namnen läses fortfarande, containern svarar fortfarande på värdnamnet redis, och npm run update skriver inte om dem, så en äldre config.env behöver inga ändringar.
För produktion i stor skala, eller när du behöver hög tillgänglighet, använder du i stället Helm-charten på Kubernetes: Docker Compose kör en kopia av varje tjänst på en enda server.
Krav
Välj serverns storlek efter vad du ska köra på den. Det är telemetrin (loggar, mätvärden, traces) som avgör minne och disk; se Dimensionering och kapacitetsplanering när du känner till dina volymer.
| Rekommenderat | Minimum för ett homelab | |
|---|---|---|
| Minne | 16 GB | 8 GB |
| CPU | 8 kärnor | 4 kärnor |
| Disk | 400 GB | 20 GB |
| System | Ubuntu 22.04, eller en annan Linux baserad på Debian, Ubuntu eller RHEL | Samma |
| Arkitektur | x86-64 (amd64) eller ARM (arm64) | Samma |
Minimum för ett homelab passar för personligt och experimentellt bruk — en del kör Status200 på en Raspberry Pi.
Du behöver också:
- Docker med tillägget Docker Compose v2 (kommandot
docker compose). - Git, för att hämta Status200.
- Node.js och npm, som kör skripten
npm startochnpm run updatesom omsluter Docker Compose. - Portarna 80 och 443 lediga på servern. Tabellen nedan listar varje port som Status200 använder på värden.
| Värdport | Används av | Inställning | Vad den är till för |
|---|---|---|---|
| 80 | ingress | ONEUPTIME_HTTP_PORT | Dashboarden, API:t, inläsning av telemetri och validering hos Let's Encrypt. |
| 443 | ingress | STATUS_PAGE_HTTPS_PORT | HTTPS för din instans när Status200 hanterar certifikatet, och för statussidor och dashboards på egna domäner. |
| 5400 | postgres | Anges i docker-compose.yml | Låter npm run backup och restore.sh nå PostgreSQL från själva servern. Den är bara publicerad på 127.0.0.1. |
| 3874 | probe-1 | GLOBAL_PROBE_1_PORT | Probens egen server. Inget utanför servern behöver den. |
| 3876 | runner | ONEUPTIME_RUNNER_PORT | Runnerns egen server. Inget utanför servern behöver den. |
Det finns också en videogenomgång av installationen.
Installera Status200
Klona release-grenen
Grenen
releaseinnehåller filerna för den senaste releasen.git clone --depth 1 --single-branch --branch release https://git.wilix.dev/status200/status200.git cd oneuptimeSkapa config.env
Alla Status200s inställningar finns i
config.env. Utgå från exemplet:cp config.example.env config.envAnge värdnamnet
Öppna
config.envoch sättHOSTtill det domännamn eller den IP-adress som folk ska använda för att nå Status200, utanhttp://. Behålllocalhostbara för att prova Status200 på din egen dator.HOST=status200.example.comGenerera slumpmässiga hemligheter
Exempelfilen innehåller platshållarhemligheter som är offentliga på GitHub. Ersätt var och en med ett eget slumpmässigt värde:
while grep -q "please-change-this-to-random-value" config.env; do sed -i "0,/please-change-this-to-random-value/{s/please-change-this-to-random-value/$(openssl rand -hex 32)/}" config.env done grep -c "please-change-this" config.envDet sista kommandot skriver ut
0: Ingen platshållare är kvar. Loopen använder GNUsed, som alla Linux-servrar har. Det här är inställningarna den fyller i:Inställning Vad den skyddar ONEUPTIME_SECRETAnrop mellan Status200s egna tjänster. ENCRYPTION_SECRETHemligheterna som Status200 lagrar, som integrationstokens och SMTP-lösenord, och de inloggningstokens den utfärdar. DATABASE_PASSWORD,CLICKHOUSE_PASSWORD,VALKEY_PASSWORDDe tre datalagren. REGISTER_PROBE_KEYRegistrering av prober hos din instans. GLOBAL_PROBE_1_KEY,GLOBAL_PROBE_2_KEYDe globala prober som Docker Compose kan köra ( probe-1körs som standard).STATUS200_RUNNER_KEYDen medföljande Runnern. GLOBAL_RUNNER_KEYDen medföljande globala Runnern, som kör alla projekts JavaScript-steg. ViktigtAnge hemligheterna före första starten och behåll dem sedan. PostgreSQL tar bara sitt lösenord när den skapar sin databas, och om du ändrar
ENCRYPTION_SECRETsenare blir varje värde som krypterats med det gamla oläsligt. ÄrDATABASE_PASSWORDfortfarande platshållaren vid första starten gernpm startden ett slumpmässigt värde innan PostgreSQL skapar sin databas.Starta Status200
npm
npm startDocker CLI
(export $(grep -v '^#' config.env | xargs) && docker compose up --remove-orphans -d)Första starten tar flera minuter: Docker laddar ned imagerna och Status200 skapar sina databaser.
npm startväntar tills varje del svarar och avslutas med Status200 is up!Skapa det första kontot
Öppna
http://följt av dinHOST(till exempelhttp://localhost) och registrera dig. Det första kontot på en ny instans blir dess huvudadministratör, som kan öppna Admin Dashboard på/admin.Alla som kan nå sidan kan registrera sig efter dig. För att förhindra det öppnar du Admin Dashboard, går till Inställningar > Autentisering och stänger av Tillåt registrering. Personer som du bjuder in till ett projekt kan fortfarande skapa sina konton.
Konfigurera HTTPS
Status200 levererar vanlig HTTP tills du väljer ett av två sätt att lägga till HTTPS:
| Låt Status200 hämta ett certifikat | Använd din egen omvända proxy | |
|---|---|---|
| TLS avslutas i | Status200s ingress, med ett kostnadsfritt certifikat från Let's Encrypt som den förnyar själv | Din proxy: Caddy, Nginx eller en lastbalanserare |
| Du behöver | Ett offentligt domännamn som pekar på servern, och portarna 80 och 443 nåbara från internet | En proxy och ett certifikat för din domän |
| Inställningar | PROVISION_SSL=true, HTTP_PROTOCOL=https | PROVISION_SSL=false, HTTP_PROTOCOL=https, TRUSTED_PROXY_HOPS=2 |
| Statussidor på egna domäner | Fungerar utan extra konfiguration | Din proxy måste också betjäna de domänerna |
Om du lägger statussidor eller dashboards på egna domäner är det enklast att låta Status200 hantera TLS: Ingressen beställer och levererar själv certifikaten för de domänerna.
Med HTTP_PROTOCOL=https bygger Status200 HTTPS-länkar, håller inloggningscookies på HTTPS och ber webbläsare att bara nå din HOST över HTTPS. En webbläsare håller sig till det i ett år, på alla portar för det namnet, så om HOST någon gång måste svara över vanlig HTTP igen sätter du HSTS_MAX_AGE_SECONDS=0 i config.env en tid innan: Webbläsare glömmer regeln vid sitt nästa besök.
Låt Status200 hämta ett certifikat
Peka din domän mot servern
Skapa en DNS-post
A(ellerAAAAför IPv6) för din domän, med serverns offentliga IP-adress som värde. Med enAAAA-post slår du också på IPv6 för Status200: se Besökarnas adresser.Slå på hämtning av certifikat
Ange de här värdena i
config.env:HOST=status200.example.com PROVISION_SSL=true HTTP_PROTOCOL=httpsHOSTmåste vara ett domännamn: Status200 kan inte få ett certifikat för en IP-adress eller förlocalhost.Starta om med de nya inställningarna
npm startÖppna din instans över HTTPS
Öppna
https://status200.example.com. Status200 beställer certifikatet när den startar, kontrollerar det sedan varje timme och förnyar det när det är mindre än 30 dagar kvar. Tills det första certifikatet kommer, oftast inom några minuter, levererar ingressen ett tillfälligt självsignerat certifikat och webbläsaren varnar dig.
Använd din egen omvända proxy
De här stegen kör proxyn på samma server som Status200. Om din proxy körs på en annan maskin hoppar du över det första steget, pekar proxyn mot port 80 på den här servern och låter med molnleverantörens brandvägg bara proxyn nå portarna 80 och 443: en besökare som når Status200 förbi proxyn kan välja den adress som Status200 räknar besökaren efter.
Flytta ingressen från portarna 80 och 443
Proxyn behöver portarna 80 och 443, så flytta ingressen till andra portar, publicerade bara på serverns loopback-adress
127.0.0.1, så att besökare bara når Status200 genom din proxy. Proben och Runnern använder värdens nätverk och når Status200 viahttp://localhost, så de flyttar med:ONEUPTIME_HTTP_PORT=127.0.0.1:8080 STATUS_PAGE_HTTPS_PORT=127.0.0.1:8443 GLOBAL_PROBE_1_STATUS200_URL=http://localhost:8080 ONEUPTIME_RUNNER_STATUS200_URL=http://localhost:8080Berätta för Status200 att den står bakom en proxy
HOST=status200.example.com HTTP_PROTOCOL=https PROVISION_SSL=false TRUSTED_PROXY_HOPS=2HTTP_PROTOCOL=httpsgör att länkarna som Status200 bygger använder HTTPS.TRUSTED_PROXY_HOPS=2räknar din proxy och Status200s ingress, så att Status200 läser besökarens riktiga adress för IP-tillåtelselistor och hastighetsbegränsningar. Lägg till en för varje ytterligare proxy som lägger till iX-Forwarded-For, som ett CDN eller en lastbalanserare.Starta om Status200 på de nya portarna
(export $(grep -v '^#' config.env | xargs) && docker compose up --remove-orphans -d) bash Tests/Scripts/status-check.sh localhost:8080npm startkontrollerarhttp://localhostpå port 80, där din proxy kommer att ligga, så kontrollera den nya porten själv. Skriptet avslutas med Status200 is up!Konfigurera proxyn
Caddy
status200.example.com { reverse_proxy localhost:8080 }Caddy hämtar och förnyar certifikatet själv, omdirigerar HTTP till HTTPS och släpper igenom WebSocket-anslutningar. Läs in Caddy igen när du har ändrat filen, till exempel med
sudo systemctl reload caddy.Nginx
map $http_upgrade $status200_connection_upgrade { default upgrade; "" close; } server { listen 80; server_name status200.example.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name status200.example.com; ssl_certificate /etc/letsencrypt/live/status200.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/status200.example.com/privkey.pem; # The limits Status200's own ingress uses. client_max_body_size 50M; proxy_read_timeout 300s; proxy_send_timeout 300s; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $status200_connection_upgrade; location / { proxy_pass http://127.0.0.1:8080; } # MCP clients keep a stream open. location /mcp { proxy_pass http://127.0.0.1:8080; proxy_buffering off; proxy_read_timeout 86400s; proxy_send_timeout 86400s; } }Certifikatsökvägarna är där Certbot lägger ett certifikat från Let's Encrypt; använd sökvägarna till ditt eget certifikat om det kommer från något annat håll. Kontrollera filen och läs in Nginx igen med
sudo nginx -t && sudo systemctl reload nginx.Båda skickar
X-Forwarded-Proto, som talar om för Status200 att en besökare kom över HTTPS. Alla andra proxyer måste också skicka den, annars hålls inte inloggningscookies för statussidor och dashboards på dina egna domäner på HTTPS.Öppna din instans genom proxyn
Öppna
https://status200.example.com. Du bör se Status200s inloggningssida, levererad med din proxys certifikat.
Bakom din egen proxy skickar du telemetri över OTLP/HTTP (/otlp). OTLP över gRPC når bara Status200 när dess egen ingress avslutar TLS (PROVISION_SSL=true).
Besökarnas adresser
Status200 räknar varje besökare efter adressen som besökaren ansluter från: inloggningsgränserna, de andra gränserna per adress och IP-tillåtelselistorna för statussidor och dashboards läser den alla. Två uppsättningar behöver en inställning för att den adressen ska vara besökarens egen:
| Uppsättning | Inställning |
|---|---|
Folk når Status200 över IPv6, till exempel genom en AAAA-post | IPv6 på Status200s nätverk, i docker-compose.override.yml |
| Din egen omvända proxy står framför Status200 | TRUSTED_PROXY_HOPS=2, med ingressen publicerad på 127.0.0.1 (se Använd din egen omvända proxy) |
Utan IPv6 på Status200s nätverk lämnar Docker vidare varje besökare som kommer över IPv6 till Status200 från en egen adress, och Status200 räknar dem alla som en besökare: en persons misslyckade inloggningar kan låsa ute de andra. Att slå på IPv6 kräver Docker Engine 27 eller senare (docker version visar din).
Slå på IPv6
Skapa
docker-compose.override.ymlbredviddocker-compose.yml, eller lägg till detta i den du har;npm startochnpm run updateläser den:networks: oneuptime: enable_ipv6: trueStarta om Status200
npm stop npm startStatus200 stannar och startar igen med IPv6 på sitt nätverk. Dina data behålls. Docker kan inte ta bort ett nätverk som en egen container fortfarande är ansluten till, till exempel en omvänd proxy: koppla först bort den från Status200s nätverk och anslut den igen efteråt. Stannar
npm startmedhas active endpointskopplar du bort den och körnpm stopochnpm startigen.Kontrollera nätverket
docker network ls --quiet --filter name=_oneuptime | xargs docker network inspect | grep EnableIPv6Det skriver ut
"EnableIPv6": true,.
När flera personer loggar in från samma privata nätverksadress säger sidan Status200-hälsa i Admin Dashboard det, med inställningen som ändrar det.
Checklista för produktion
Docker Compose kör en kopia av varje tjänst på en enda server, vilket passar små team och homelabs. Gå igenom den här listan innan du förlitar dig på det.
| Område | Vad du gör |
|---|---|
| Hemligheter | Inget värde i config.env är fortfarande en platshållare please-change-this-to-random-value. Se Generera slumpmässiga hemligheter, och Byt databasens lösenord för en installation som startade med platshållaren i DATABASE_PASSWORD. |
| HTTPS | Folk når Status200 över HTTPS och HTTP_PROTOCOL=https är angivet. Se Konfigurera HTTPS. |
| Registreringar | När ditt team har konton stänger du av Tillåt registrering under Inställningar > Autentisering i Admin Dashboard. |
| Brandvägg | Bara portarna 80 och 443 (och SSH) är öppna mot internet. Status200 publicerar PostgreSQLs port 5400 bara på 127.0.0.1. Stäng varje annan port du publicerar med din molnleverantörs brandvägg: ufw-regler gäller inte portar som Docker publicerar. |
| Besökarnas adresser | Sidan Status200-hälsa i Admin Dashboard säger inte att flera personer loggar in från samma adress. Se Besökarnas adresser. |
| Säkerhetskopior | PostgreSQL säkerhetskopieras varje dag och kopiorna lämnar servern. Se Säkerhetskopiera och återställ. |
| E-post | En e-postserver är konfigurerad under Inställningar > Notifieringar > E-post i Admin Dashboard, så att Status200 kan skicka inbjudningar och aviseringar. Se SMTP. |
| Disk | Det lediga utrymmet övervakas. ClickHouse växer med den telemetri du behåller (se Dimensionering och kapacitetsplanering); varje containers logg är begränsad till 1000 MB. |
| Uppdateringar | Status200 uppdateras minst en gång i veckan. Nya releaser kommer ofta. Se Uppdatera Status200. |
| Hög tillgänglighet | Om du behöver det byter du till Helm-charten på Kubernetes. |
Byt databasens lösenord
PostgreSQL behåller lösenordet den skapades med, så om du bara ändrar DATABASE_PASSWORD i config.env stänger du ute Status200 från dess databas. För att ge en installation som startade med platshållaren ett eget lösenord ändrar du det i PostgreSQL och i config.env samtidigt och startar sedan Status200 igen:
NEW_PASSWORD=$(openssl rand -hex 32) &&
(export $(grep -v '^#' config.env | xargs) && docker compose exec -T postgres psql -U "$DATABASE_USERNAME" -d "$DATABASE_NAME" -c "ALTER USER \"$DATABASE_USERNAME\" PASSWORD '$NEW_PASSWORD'") &&
sed -i "s/^DATABASE_PASSWORD=.*/DATABASE_PASSWORD=$NEW_PASSWORD/" config.env
npm startOm du har angett DATABASE_BACKUP_PASSWORD och DATABASE_RESTORE_PASSWORD, ge dem också det nya värdet.
Säkerhetskopiera och återställ
PostgreSQL innehåller allt du konfigurerar: monitorer, incidenter, statussidor, användare. npm run backup dumpar det till en fil i mappen Backups.
Ge säkerhetskopieringsskriptet databaslösenordet
Sätt
DATABASE_BACKUP_PASSWORDiconfig.envtill värdet avDATABASE_PASSWORD. Skriptet läserconfig.envsom ren text, så det medföljande${DATABASE_PASSWORD}fylls aldrig i.Kör säkerhetskopieringen
npm run backupDet frågar efter ditt sudo-lösenord och skriver
Backups/db-<day of the month>.backup, så att dagliga säkerhetskopior ersätter dem från en månad tidigare. Kör det minst en gång om dagen.Kopiera säkerhetskopiorna från servern
En säkerhetskopia på samma disk som databasen överlever inte att den disken går förlorad.
Bara servern själv når PostgreSQL: den svarar på port 5400 på 127.0.0.1. För att säkerhetskopiera den från en annan maskin öppnar du en SSH-tunnel från den maskinen och ansluter sedan till dess egen port 5400:
ssh -N -L 5400:127.0.0.1:5400 you@status200.example.comPublicera PostgreSQL på en adress i ett privat nätverk
Om ett verktyg i ditt privata nätverk måste nå PostgreSQL utan tunnel, publicera den även på serverns adress i det nätverket, på en egen port. Skapa docker-compose.override.yml bredvid docker-compose.yml; npm start och npm run update läser den:
services:
postgres:
ports:
- "10.0.0.5:5401:5432"Använd serverns egen privata adress i stället för 10.0.0.5, aldrig en offentlig, och ge först PostgreSQL ett eget lösenord (se Byt databasens lösenord). Kör sedan npm start, så svarar PostgreSQL även på port 5401 på den adressen.
ClickHouse håller din telemetri i Docker-volymen status200_clickhouse, och inget skript säkerhetskopierar den. Om du behöver behålla den telemetrin säkerhetskopierar du volymen med ett ClickHouse-verktyg som clickhouse-backup, eller kopierar den medan Status200 är stoppat.
För att återställa PostgreSQL anger du värdena DATABASE_RESTORE_* i config.env: DATABASE_RESTORE_PASSWORD till värdet av DATABASE_PASSWORD, som för säkerhetskopior, och DATABASE_RESTORE_FILENAME till den säkerhetskopia som ska återställas, till exempel db-31.backup. Kör sedan bash restore.sh. Databasen som det återställer till måste redan finnas; i en körande installation gör den det.
restore.sh tar bort varje objekt från säkerhetskopian ur måldatabasen innan det skapas på nytt. Det frågar innan det börjar; kontrollera databasnamnet som det visar.Uppdatera Status200
Säkerhetskopiera först och kör sedan:
git checkout release
git pull
npm run updatenpm run update frågar efter ditt sudo-lösenord, lägger till nya inställningar från config.example.env i din config.env (dina egna värden finns kvar), hämtar de nya imagerna och startar om Status200. Precis som npm start avslutas det med Status200 is up!
Att byta till en ny huvudversion (från 13 till 14, till exempel) kan kräva mer: läs Uppgradera Status200 innan du börjar.
APP_TAG=release i config.env hämtar alltid den senaste releasen av Community Edition. För att stanna på en version sätter du APP_TAG till dess nummer, till exempel 14.0.22. För Enterprise Edition är taggarna enterprise-release och enterprise-14.0.22.
Avinstallera Status200
Stoppa Status200 och ta bort dess containrar och nätverk:
npm run downDina data finns kvar i volymerna status200_postgres och status200_clickhouse, och mappen oneuptime behåller config.env och dina säkerhetskopior. För att ta bort även data:
(export $(grep -v '^#' config.env | xargs) && docker compose down --volumes --remove-orphans)Ta sedan bort mappen oneuptime.
--volumes tar bort varje monitor, incident, användare och all telemetri för gott. Säkerhetskopiera först om du kan komma att behöva något av det.Felsökning
Docker säger "permission denied" när du kör npm start
Din användare når inte Docker-daemonen. Lägg till den i gruppen docker och logga sedan ut och in igen:
sudo usermod -aG docker $USERIngressen kan inte starta eftersom port 80 eller 443 används
Ett annat program på servern, ofta en webbserver, håller porten. Stoppa det, eller flytta ingressen till andra portar och sätt programmet framför Status200 enligt Använd din egen omvända proxy.
npm start avslutas med "Maximum retries reached"
Kontrollen som avslutar npm start gav upp innan Status200 svarade. Första starten kan ta längre tid än kontrollen väntar, medan imagerna laddas ned och databaserna skapas. Se vad som körs och läs loggarna:
npm run ps
npm run logsNär varje container körs kör du kontrollen igen med npm run status-check. Om du flyttade ingressen från port 80 kontrollerar du i stället dess nya port: bash Tests/Scripts/status-check.sh localhost:8080.
Vissa sidor läses in, men liveuppdateringar eller uppladdningar misslyckas
Öppna Status200 på adressen i HOST. Ingressen dirigerar begäranden efter värdnamn: bara HOST och localhost når hela applikationen, och alla andra namn, som serverns IP-adress, behandlas som en statussidas domän. Sätt HOST till det namn folk använder och kör sedan npm start.
Registrering eller inloggning misslyckas med "Page not found"
Registreringssidan läses in, men registreringen misslyckas med Page not found - /identity/signup och inloggningen med Page not found - /identity/login. Begäran nådde Status200 under ett annat värdnamn än HOST, så ingressen dirigerade den som en statussidas egen domän, där Status200s egen registrering och inloggning inte finns. Kontrollera båda:
HOSTär adressen folk öppnar, med porten om de använder en, somstatus200.example.com:8080. Körnpm startnär du har ändrat den.- En proxy framför Status200 skickar vidare värdnamnet som webbläsaren bad om. Caddy gör det som standard, Nginx med
proxy_set_header Host $host;som i Använd din egen omvända proxy, och Apache medProxyPreserveHost On.
Webbläsaren varnar för certifikatet efter att du har satt PROVISION_SSL
Tills Let's Encrypt utfärdar certifikatet levererar ingressen ett tillfälligt självsignerat certifikat. Om varningen ligger kvar i mer än några minuter kontrollerar du att:
HOSTär ett domännamn, inte en IP-adress och intelocalhost.- Domänens DNS-post pekar mot den här servern.
- Port 80 kan nås från internet, så att Let's Encrypt kan validera domänen.
När en beställning misslyckas loggar appen ett fel som börjar med CoreSSL:EnsurePrimaryHostCertificate, följt av orsaken:
(export $(grep -v '^#' config.env | xargs) && docker compose logs app) | grep -A 5 CoreSSLDen medföljande proben visar Frånkopplad efter att du har flyttat ingressens port
Admin Dashboard listar proben under Inställningar > Övervakning > Globala prober. Den når Status200 på GLOBAL_PROBE_1_STATUS200_URL, som är http://localhost (port 80) som standard. Sätt den till ingressens nya port, till exempel http://localhost:8080, sätt ONEUPTIME_RUNNER_STATUS200_URL på samma sätt och starta om Status200.