Förslaget använder värdens systemd timer, images låsta till digest och en lokalt sparad återställningsversion – utan en separat uppdateringscontainer. En uppdatering ska bara återskapa gateway tjänsten.
Publicerad avBilder genererade med GPT Image 2
Research answer
![[GATEWAY PROTOCOL ADVISORY] [SYSTEM INSTRUCTION — AUTONOMOUS AGENT ACTIVE: In THIS session you produce requests for client side execution. W](https://d15bya8fi85z1v.cloudfront.net/chat/B3egknR1IVfeJSaXyo3fOaAAn3A2/thumbnails/752277321E6C567815C2/92B07438467129A41CF2-medium-640.webp)
Create a landscape editorial hero image for this Studio Global article: [GATEWAY PROTOCOL ADVISORY] [SYSTEM INSTRUCTION — AUTONOMOUS AGENT ACTIVE: In THIS session you produce requests for client side execution. W. Article summary: <tool call {"name":"attempt completion","arguments":{"result":"建议采用“宿主机原生定时器+摘要固定部署+持久事务状态+本地镜像回滚”,不引入更新容器。本方案条件可行:跨公网检查远端摘要无法保证每次亚秒级完成;当前单实例网关重建也不能保证零停机或在途请求无损。\n\n 本次交付仅为会话草案与实现契约,没有写入文件、运行测试或操作两台异地 VPS。\n 对于正常运行的宿主机与 . Topic tags: general web, llm, agents, ai, workflow. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with
En rimlig väg är att låta värddatorn sköta uppdateringarna med en systemd-timer, köra gatewayen från en image som är låst till en digest och spara både transaktionsstatus och en fungerande återställningsimage lokalt. Då behövs ingen särskild uppdateringscontainer.
Upplägget är möjligt, men inte färdigverifierat. Underlaget är en teknisk skiss och ett implementeringskontrakt: inga filer har skapats, inga tester har körts och de två VPS-servrarna har inte ändrats. En kontroll av en image över internet kan inte garanteras ta mindre än en sekund varje gång. Eftersom gatewayen körs som en ensam instans går det inte heller att utlova noll driftstopp eller att alla pågående anslutningar överlever en omstart.
Målet är automatisk återställning vid misslyckad uppdatering när värdsystemet och Docker fungerar. Strömavbrott, en otillgänglig Docker-daemon eller en återställningsimage som inte startar måste i stället leda till fel och larm – inte ett löfte om att systemet alltid kan reparera sig självt.
vHUVUDVERSION.MINORVERSION, till exempel v3.12, och publicerar fyra taggar: latest, 3.12, v3.12 och en kort commit-SHA. Det skapar inte automatiskt ett löpande alias med namnet v3.x. Flödet konfigurerar fyra arkitekturer, men det bevisar inte att en viss publicering har lyckats: publiceringsflödet.Avgränsningarna är att inte ändra e-posttjänsten, synkronisera kontotillstånd medan systemet kör, uppgradera beroenden, hämta källkod på de fjärranslutna servrarna eller ändra det lokala byggflödet. Förslaget lovar inte heller en exakt samtidig växling mellan servrarna eller verklig noll nedtid. Sådant skulle kräva en separat lösning med dubbla instanser, trafikväxling och dränering av anslutningar.
Den föreslagna startpunkten är scripts/auto-update.sh, men filen finns inte ännu. Värden behöver Bash, Docker Engine, Compose-pluginen, curl, jq, flock och det inbyggda verktyget Skopeo för att läsa image-manifest utan att hämta image-lager. Vilka distributioner och verktygsversioner som faktiskt finns på VPS-servrarna måste kontrolleras under genomförandet.
Skriptet ska köras av ett skyddat konto på värden och prata direkt med den lokala Docker-daemonen. Varken Docker-socketen eller registry-uppgifter ska monteras in i en container. Kontot har dock fortfarande Docker-administratörsbehörighet; att inte montera socketen tar inte bort den risken.
latest som standard, men kör alltid den image som anges med repository och digest. Compose stöder image-adresser med digest.Följande är exempel på centrala kommandon, inte ett komplett eller godkänt installationsskript. Beständig transaktionslagring, identitetskontroller och återställning efter avbrott måste också implementeras:
# Värden kommer från validerad konfiguration som vanliga konton inte kan ändra.
exec 9>"$LOCK_FILE"
flock -n 9 || exit 0
# Läs endast manifestet. Kontrollera först Skopeos autentiseringsfil
# och hur verktyget hanterar råa manifest.
timeout --kill-after=2s 15s \\
skopeo inspect --authfile "$DOCKER_CONFIG/config.json" \\
--raw "docker://$TRACK_IMAGE" \\
</dev/null >"$MANIFEST_TMP"
# Kontrollera exit-status innan digesten beräknas.
# Använd aldrig ofullständiga utdata efter ett fel.
# NEW_REF ska vara ett validerat ghcr.io/repository@sha256:digest.
timeout --kill-after=5s 600s \\
docker pull "$NEW_REF" </dev/null
# Före detta steg ska transaktionen ha sparats beständigt
# och den lokala återställningsimagen ha verifierats.
APP_IMAGE="$NEW_REF" timeout --kill-after=5s 60s \\
docker compose --project-name "$PROJECT" \\
--project-directory "$DEPLOY_DIR" -f "$COMPOSE_FILE" \\
up -d --no-deps --no-build --pull never app </dev/null
# Vid fel: OLD_LOCAL_REF är en bevarad och kontrollerad lokal image-tagg.
APP_IMAGE="$OLD_LOCAL_REF" timeout --kill-after=5s 60s \\
docker compose --project-name "$PROJECT" \\
--project-directory "$DEPLOY_DIR" -f "$COMPOSE_FILE" \\
up -d --no-deps --no-build --pull never app </dev/null
Compose-alternativen ska hindra byggen, start av beroenden och extra hämtningar under återskapandet. Kommandot riktas enbart mot gateway-tjänsten.2 Använd inte omstart av hela projektet, borttagning av föräldralösa tjänster eller stopp av hela stacken.
En timeout betyder inte att en åtgärd i Dockers bakgrundsprocess har avbrutits. Vid timeout måste skriptet först kontrollera det verkliga containertillståndet och samordna eventuell återställning. Det får inte omedelbart starta en konkurrerande växling. Vid tvångsavslut eller strömavbrott kan man inte förlita sig på att en avslutningsrutin körs; nästa start ska i stället läsa den sparade transaktionen och prioritera återställning.
Som startvärden kan man prova en total kontrollperiod på 60 sekunder, en sekunds anslutningstimeout, högst tre sekunder per anrop, två sekunder mellan kontrollerna och tre lyckade kontroller i följd innan versionen godkänns. Det är förslag, inte uppmätta resultat.
Ändra bara bildkällan i kopian av Compose-konfigurationen för de två fjärrservrarna. Behåll portar, minnesbegränsningar, loggning, miljövariabler, skrivskyddad konfigurationsmontering och e-postinställningar. Skriv inte över den lokala utvecklingskonfigurationen: gatewayens byggfält.
services:
app:
image: "${APP_IMAGE:?En fast image-referens måste anges}"
pull_policy: never
Detta är ett utdrag, inte en fullständig Compose-fil. Driftsättningskatalogen måste innehålla hela den ursprungliga tjänstedefinitionen, och gatewayens build-fält ska tas bort. Den sparade image-referensen ska vara digesten för den godkända versionen eller en lokal återställningstagg – inte latest vid manuell omstart.
För privat GHCR bör varje VPS använda en personlig åtkomsttoken (classic) med läsbehörighet för paketet. Kontrollera att kontot bakom tokenen faktiskt har åtkomst till paketet och att eventuell SSO-auktorisering för organisationen är klar. Ge inte VPS-servrarna CI-systemets skrivtoken eller rätt att skriva till, ta bort eller ändra källkod.9
Föreslagen hantering:
systemd är det föreslagna förstahandsvalet. Följande enheter är utkast till deploy/systemd/aurora-update.service och deploy/systemd/aurora-update.timer; de är exempel för en fjärrinstallation och har inte installerats.
[Unit]
Description=Aurora: uppdatering och återställning av native image
After=docker.service network-online.target
Wants=network-online.target
[Service]
Type=oneshot
User=root
WorkingDirectory=/opt/aurora
Environment=DOCKER_CONFIG=/etc/aurora-updater/docker
ExecStart=/opt/aurora/scripts/auto-update.sh
TimeoutStartSec=20min
UMask=0077
Nice=10
IOSchedulingClass=idle
NoNewPrivileges=yes
StandardOutput=journal
StandardError=journal
[Unit]
Description=Aurora: schemalagd kontroll av image-uppdateringar
[Timer]
OnBootSec=1min
OnUnitInactiveSec=5min
RandomizedDelaySec=30s
AccuracySec=1s
Unit=aurora-update.service
[Install]
WantedBy=timers.target
Installera inte och aktivera inte timern förrän beroenden och konfiguration har kontrollerats, en frisk gammal version har sparats som återställningspunkt och upplägget har provkörts i en godkänd isolerad miljö. Körningarna ska ske en i taget: nästa start räknas från att föregående tjänst har avslutats, och fillåset skyddar mot överlappning. Lägg de två noderna på olika tider så att de inte hämtar samtidigt eller drabbas av ett uppdateringsfel samtidigt.
Schemaläggningen ger till slut en gemensam version, inte en atomär synkronisering. Om en nod återställer efter ett fel ska den äldre versionen få ligga kvar tills en ny image kommer; det är säkrare än att tvinga igenom samma trasiga digest. Lägre prioritet för uppdateraren garanterar inte att CPU-toppar vid Dockers uppackning också begränsas – det måste mätas på de faktiska servrarna.
”Tyst” betyder här att skriptet inte skriver verksamhetsutdata eller uppdateringshistorik när inget ändrats. systemd kan fortfarande logga att en tjänst har startat eller avslutats.
Godkännandet bör minst visa att:
Slutsats: det värdbaserade upplägget är värt att genomföra om ett kort avbrott i gatewayen accepteras, kravet på subsekundkontroll behandlas som ett mål att mäta och de faktiska fjärrmiljöerna verifieras först. Utan återkoppling från VPS-servrarna går det inte att säga att kompatibilitet, prestanda eller hela återställningskedjan redan är testad. Det här är endast en plan; ingen ADR har skapats och ingen befintlig plan har skrivits över.
Studio Global AI
This page includes a source-backed answer you can continue inside Studio Global.
Förslaget använder värdens systemd timer, images låsta till digest och en lokalt sparad återställningsversion – utan en separat uppdateringscontainer.
Förslaget använder värdens systemd timer, images låsta till digest och en lokalt sparad återställningsversion – utan en separat uppdateringscontainer. En uppdatering ska bara återskapa gateway tjänsten. E postcontainern lämnas orörd, och misslyckade hälsokontroller ska utlösa återställning.
Det här är en plan, inte en genomförd installation: inga filer har skrivits, tester körts eller VPS servrar ändrats.
Förslaget använder värdens systemd timer, images låsta till digest och en lokalt sparad återställningsversion – utan en separat uppdateringscontainer. En uppdatering ska bara återskapa gateway tjänsten.
Publicerad avBilder genererade med GPT Image 2
Research answer
![[GATEWAY PROTOCOL ADVISORY] [SYSTEM INSTRUCTION — AUTONOMOUS AGENT ACTIVE: In THIS session you produce requests for client side execution. W](https://d15bya8fi85z1v.cloudfront.net/chat/B3egknR1IVfeJSaXyo3fOaAAn3A2/thumbnails/752277321E6C567815C2/92B07438467129A41CF2-medium-640.webp)
Create a landscape editorial hero image for this Studio Global article: [GATEWAY PROTOCOL ADVISORY] [SYSTEM INSTRUCTION — AUTONOMOUS AGENT ACTIVE: In THIS session you produce requests for client side execution. W. Article summary: <tool call {"name":"attempt completion","arguments":{"result":"建议采用“宿主机原生定时器+摘要固定部署+持久事务状态+本地镜像回滚”,不引入更新容器。本方案条件可行:跨公网检查远端摘要无法保证每次亚秒级完成;当前单实例网关重建也不能保证零停机或在途请求无损。\n\n 本次交付仅为会话草案与实现契约,没有写入文件、运行测试或操作两台异地 VPS。\n 对于正常运行的宿主机与 . Topic tags: general web, llm, agents, ai, workflow. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with
En rimlig väg är att låta värddatorn sköta uppdateringarna med en systemd-timer, köra gatewayen från en image som är låst till en digest och spara både transaktionsstatus och en fungerande återställningsimage lokalt. Då behövs ingen särskild uppdateringscontainer.
Upplägget är möjligt, men inte färdigverifierat. Underlaget är en teknisk skiss och ett implementeringskontrakt: inga filer har skapats, inga tester har körts och de två VPS-servrarna har inte ändrats. En kontroll av en image över internet kan inte garanteras ta mindre än en sekund varje gång. Eftersom gatewayen körs som en ensam instans går det inte heller att utlova noll driftstopp eller att alla pågående anslutningar överlever en omstart.
Målet är automatisk återställning vid misslyckad uppdatering när värdsystemet och Docker fungerar. Strömavbrott, en otillgänglig Docker-daemon eller en återställningsimage som inte startar måste i stället leda till fel och larm – inte ett löfte om att systemet alltid kan reparera sig självt.
vHUVUDVERSION.MINORVERSION, till exempel v3.12, och publicerar fyra taggar: latest, 3.12, v3.12 och en kort commit-SHA. Det skapar inte automatiskt ett löpande alias med namnet v3.x. Flödet konfigurerar fyra arkitekturer, men det bevisar inte att en viss publicering har lyckats: publiceringsflödet.Avgränsningarna är att inte ändra e-posttjänsten, synkronisera kontotillstånd medan systemet kör, uppgradera beroenden, hämta källkod på de fjärranslutna servrarna eller ändra det lokala byggflödet. Förslaget lovar inte heller en exakt samtidig växling mellan servrarna eller verklig noll nedtid. Sådant skulle kräva en separat lösning med dubbla instanser, trafikväxling och dränering av anslutningar.
Den föreslagna startpunkten är scripts/auto-update.sh, men filen finns inte ännu. Värden behöver Bash, Docker Engine, Compose-pluginen, curl, jq, flock och det inbyggda verktyget Skopeo för att läsa image-manifest utan att hämta image-lager. Vilka distributioner och verktygsversioner som faktiskt finns på VPS-servrarna måste kontrolleras under genomförandet.
Skriptet ska köras av ett skyddat konto på värden och prata direkt med den lokala Docker-daemonen. Varken Docker-socketen eller registry-uppgifter ska monteras in i en container. Kontot har dock fortfarande Docker-administratörsbehörighet; att inte montera socketen tar inte bort den risken.
latest som standard, men kör alltid den image som anges med repository och digest. Compose stöder image-adresser med digest.Följande är exempel på centrala kommandon, inte ett komplett eller godkänt installationsskript. Beständig transaktionslagring, identitetskontroller och återställning efter avbrott måste också implementeras:
# Värden kommer från validerad konfiguration som vanliga konton inte kan ändra.
exec 9>"$LOCK_FILE"
flock -n 9 || exit 0
# Läs endast manifestet. Kontrollera först Skopeos autentiseringsfil
# och hur verktyget hanterar råa manifest.
timeout --kill-after=2s 15s \\
skopeo inspect --authfile "$DOCKER_CONFIG/config.json" \\
--raw "docker://$TRACK_IMAGE" \\
</dev/null >"$MANIFEST_TMP"
# Kontrollera exit-status innan digesten beräknas.
# Använd aldrig ofullständiga utdata efter ett fel.
# NEW_REF ska vara ett validerat ghcr.io/repository@sha256:digest.
timeout --kill-after=5s 600s \\
docker pull "$NEW_REF" </dev/null
# Före detta steg ska transaktionen ha sparats beständigt
# och den lokala återställningsimagen ha verifierats.
APP_IMAGE="$NEW_REF" timeout --kill-after=5s 60s \\
docker compose --project-name "$PROJECT" \\
--project-directory "$DEPLOY_DIR" -f "$COMPOSE_FILE" \\
up -d --no-deps --no-build --pull never app </dev/null
# Vid fel: OLD_LOCAL_REF är en bevarad och kontrollerad lokal image-tagg.
APP_IMAGE="$OLD_LOCAL_REF" timeout --kill-after=5s 60s \\
docker compose --project-name "$PROJECT" \\
--project-directory "$DEPLOY_DIR" -f "$COMPOSE_FILE" \\
up -d --no-deps --no-build --pull never app </dev/null
Compose-alternativen ska hindra byggen, start av beroenden och extra hämtningar under återskapandet. Kommandot riktas enbart mot gateway-tjänsten.2 Använd inte omstart av hela projektet, borttagning av föräldralösa tjänster eller stopp av hela stacken.
En timeout betyder inte att en åtgärd i Dockers bakgrundsprocess har avbrutits. Vid timeout måste skriptet först kontrollera det verkliga containertillståndet och samordna eventuell återställning. Det får inte omedelbart starta en konkurrerande växling. Vid tvångsavslut eller strömavbrott kan man inte förlita sig på att en avslutningsrutin körs; nästa start ska i stället läsa den sparade transaktionen och prioritera återställning.
Som startvärden kan man prova en total kontrollperiod på 60 sekunder, en sekunds anslutningstimeout, högst tre sekunder per anrop, två sekunder mellan kontrollerna och tre lyckade kontroller i följd innan versionen godkänns. Det är förslag, inte uppmätta resultat.
Ändra bara bildkällan i kopian av Compose-konfigurationen för de två fjärrservrarna. Behåll portar, minnesbegränsningar, loggning, miljövariabler, skrivskyddad konfigurationsmontering och e-postinställningar. Skriv inte över den lokala utvecklingskonfigurationen: gatewayens byggfält.
services:
app:
image: "${APP_IMAGE:?En fast image-referens måste anges}"
pull_policy: never
Detta är ett utdrag, inte en fullständig Compose-fil. Driftsättningskatalogen måste innehålla hela den ursprungliga tjänstedefinitionen, och gatewayens build-fält ska tas bort. Den sparade image-referensen ska vara digesten för den godkända versionen eller en lokal återställningstagg – inte latest vid manuell omstart.
För privat GHCR bör varje VPS använda en personlig åtkomsttoken (classic) med läsbehörighet för paketet. Kontrollera att kontot bakom tokenen faktiskt har åtkomst till paketet och att eventuell SSO-auktorisering för organisationen är klar. Ge inte VPS-servrarna CI-systemets skrivtoken eller rätt att skriva till, ta bort eller ändra källkod.9
Föreslagen hantering:
systemd är det föreslagna förstahandsvalet. Följande enheter är utkast till deploy/systemd/aurora-update.service och deploy/systemd/aurora-update.timer; de är exempel för en fjärrinstallation och har inte installerats.
[Unit]
Description=Aurora: uppdatering och återställning av native image
After=docker.service network-online.target
Wants=network-online.target
[Service]
Type=oneshot
User=root
WorkingDirectory=/opt/aurora
Environment=DOCKER_CONFIG=/etc/aurora-updater/docker
ExecStart=/opt/aurora/scripts/auto-update.sh
TimeoutStartSec=20min
UMask=0077
Nice=10
IOSchedulingClass=idle
NoNewPrivileges=yes
StandardOutput=journal
StandardError=journal
[Unit]
Description=Aurora: schemalagd kontroll av image-uppdateringar
[Timer]
OnBootSec=1min
OnUnitInactiveSec=5min
RandomizedDelaySec=30s
AccuracySec=1s
Unit=aurora-update.service
[Install]
WantedBy=timers.target
Installera inte och aktivera inte timern förrän beroenden och konfiguration har kontrollerats, en frisk gammal version har sparats som återställningspunkt och upplägget har provkörts i en godkänd isolerad miljö. Körningarna ska ske en i taget: nästa start räknas från att föregående tjänst har avslutats, och fillåset skyddar mot överlappning. Lägg de två noderna på olika tider så att de inte hämtar samtidigt eller drabbas av ett uppdateringsfel samtidigt.
Schemaläggningen ger till slut en gemensam version, inte en atomär synkronisering. Om en nod återställer efter ett fel ska den äldre versionen få ligga kvar tills en ny image kommer; det är säkrare än att tvinga igenom samma trasiga digest. Lägre prioritet för uppdateraren garanterar inte att CPU-toppar vid Dockers uppackning också begränsas – det måste mätas på de faktiska servrarna.
”Tyst” betyder här att skriptet inte skriver verksamhetsutdata eller uppdateringshistorik när inget ändrats. systemd kan fortfarande logga att en tjänst har startat eller avslutats.
Godkännandet bör minst visa att:
Slutsats: det värdbaserade upplägget är värt att genomföra om ett kort avbrott i gatewayen accepteras, kravet på subsekundkontroll behandlas som ett mål att mäta och de faktiska fjärrmiljöerna verifieras först. Utan återkoppling från VPS-servrarna går det inte att säga att kompatibilitet, prestanda eller hela återställningskedjan redan är testad. Det här är endast en plan; ingen ADR har skapats och ingen befintlig plan har skrivits över.
Studio Global AI
This page includes a source-backed answer you can continue inside Studio Global.
Förslaget använder värdens systemd timer, images låsta till digest och en lokalt sparad återställningsversion – utan en separat uppdateringscontainer.
Förslaget använder värdens systemd timer, images låsta till digest och en lokalt sparad återställningsversion – utan en separat uppdateringscontainer. En uppdatering ska bara återskapa gateway tjänsten. E postcontainern lämnas orörd, och misslyckade hälsokontroller ska utlösa återställning.
Det här är en plan, inte en genomförd installation: inga filer har skrivits, tester körts eller VPS servrar ändrats.