Sådan self-hoster du Wallos i 2026: Fornyelser, notifikationer og SQLite
Deploy Wallos med den rigtige port, persistent storage, TLS, authentication og backups. Fejlsøg, når fornyelsesdatoer ændrer sig, fordi TZ er forkert i produktionen.
De fleste installationsnoter til Wallos slutter efter den første sideindlæsning. Det er for tidligt: Fornyelsesdatoer ændrer sig, fordi TZ er forkert, eller fordi SQLite-mappen er read-only. En nyttig production-test er mere krævende — opret abonnementer med forskellige billing cycles, angiv fornyelsesdatoer, kør notifikationsflowet, og kontrollér totalerne i den valgte valuta.
Wallos' rolle er enkel: en subscription tracker med fornyelsesdatoer og notifikationer. Dets operationelle afgrænsning omfatter mere end webprocessen, så afhængigheden, den gemte state og den offentlige route skal beskrives eksplicit, før der kommer rigtige data ind.
Kortlæg Wallos, før du rører Docker
Adskil fire områder for Wallos: ingress, lytteren på 80, persistent state samt understøttende services eller lokal kapacitet. Kravet til det lokale runtime-miljø er persistente mapper til databasen og logo-uploads samt levering af notifikationer. Dimensionér og monitorér denne ressource sammen med containeren i stedet for at eksponere en uvedkommende netværkstjeneste.
Kør den kendte transaktion — opret abonnementer med forskellige billing cycles, angiv fornyelsesdatoer, kør notifikationsflowet, og kontrollér totalerne i den valgte valuta — før du betragter adskillelsen som afsluttet. Mål planlagt notifikationsarbejde, logo-storage, SQLite-skrivninger og timezone-korrekthed, og gem resultatet sammen med deployment-recorden. Det giver både et acceptance-kriterium og det første kapacitetsbaseline.
Diagnosticér en Wallos, der ser sund ud
For Wallos bør du monitorere en transaktion i stedet for en proces: opret abonnementer med forskellige billing cycles, angiv fornyelsesdatoer, kør notifikationsflowet, og kontrollér totalerne i den valgte valuta. Kombinér latency og error rate med planlagt notifikationsarbejde, logo-storage, SQLite-skrivninger og timezone-korrekthed, så en alarm identificerer den komponent, der er begrænset.
Upgrade-rehearsalen skal dække, at Wallos-databasemigrationer skal testes med dato- og valutadata, før det kørende image udskiftes. Gendan, migrér, og kør transaktionen, før produktionen udskiftes. Hvis fornyelsesdatoer ændrer sig, fordi TZ er forkert, eller fordi SQLite-mappen er read-only, må du ikke slette data for at få en grøn opstart; sammenlign version, variables, mounts og dependency reachability i den rækkefølge.
Gør Wallos' smoke test til et release-check
Release-recorden for Wallos skal indeholde fakta, ikke “ser fint ud”. Gem det valgte image digest, et configuration checksum, det offentlige hostname og et tidsstemplet resultat for: opret abonnementer med forskellige billing cycles, angiv fornyelsesdatoer, kør notifikationsflowet, og kontrollér totalerne i den valgte valuta. Brug sample data, der ikke er fra produktionen, så kontrollen kan køres efter hver deployment.
Dokumentér to lifecycle-events separat. En containerudskiftning skal bevare normal drift; en ren recovery skal vise, at abonnementer, kategorier, logoer og notifikationsindstillinger kommer tilbage med uændrede fornyelsesdatoer. Mens kontrollen kører, skal du måle planlagt notifikationsarbejde, logo-storage, SQLite-skrivninger og timezone-korrekthed og gemme resultatet som den forventede ramme for denne version.
Test også en afvist eller ugyldig situation: indsend harmløst input tæt på den ressource- eller formatgrænse, der er forbundet med denne afgrænsning: fornyelsesdatoer ændrer sig, fordi TZ er forkert, eller fordi SQLite-mappen er read-only. Wallos skal fejle på en måde, der kan diagnosticeres, og må ikke overskrive en sund state. Gå tilbage til den gyldige tilstand, kør samplen igen, og vedhæft de relevante redigerede logs. Disse artefakter giver en fremtidig rollback-beslutning et konkret grundlag.
Gør Wallos-opstart reproducerbar
En production-lignende start er bevidst kedelig: navngiven state, eksplicit port og ingen secrets i imaget.
docker run -d \
--name wallos \
--restart unless-stopped \
-p 127.0.0.1:80:80 \
-v wallos-data:/var/www/html/db \
-e TZ=UTC \
bellamy/wallos:latest
Eksemplet er et baseline-eksempel og ikke en komplet supporting stack. Bekræft det lokale krav, før du eksponerer tjenesten: persistente mapper til databasen og logo-uploads samt levering af notifikationer. Kontrollér de effektive mounts og lytteren, og prøv derefter at oprette abonnementer med forskellige billing cycles, angive fornyelsesdatoer, køre notifikationsflowet og kontrollere totalerne i den valgte valuta. Pin det fungerende image før næste genstart.
Find alle persistente bytes i Wallos
Lav en inventory over alle persistente artefakter: abonnementsdatabase, uploadede logoer og notifikationsindstillinger. Mount /var/www/html/db før bootstrap, skriv harmløse sample data, og udskift containeren for at bevise, at stien faktisk er persistent. Medtag også konfiguration, der ændrer, hvordan gemte data fortolkes, ikke kun den største mappe.
Fastlæg retention, kopiér backups off-host, og kør en clean-room restore. Wallos-øvelsen er gennemført, når abonnementer, kategorier, logoer og notifikationsindstillinger kommer tilbage med uændrede fornyelsesdatoer. Hvis snapshots er en del af planen, kan du bruge vejledningen om PITR versus snapshots til at dokumentere, hvad hver mekanisme kan gendanne.
Giv Wallos én canonical adresse
TLS-udstedelse er kun halvdelen af Wallos-routen. Servér applikationen over HTTPS, og angiv dens timezone. Send trafikken internt til 80, og videresend den eksterne scheme, så genererede URL'er og secure cookies forbliver konsistente.
Brug det komplette Wallos-scenarie fra et rent netværk, ikke kun root-siden. En 502- eller certificate-fejl kan isoleres med automatisk domain- og TLS-opsætning. Hvis trafikken når processen, og fornyelsesdatoer ændrer sig, fordi TZ er forkert, eller fordi SQLite-mappen er read-only, skal du diagnosticere tilstanden dér, hvor den opstår, i stedet for at stable redirects oven på hinanden.
Beskyt den værdifulde del af Wallos
Efter det første login skal du gennemgå, hvad en anonym besøgende, en almindelig bruger og en administrator hver især kan gøre. Den Wallos-fejl, du skal undgå, er at lade den første konto stå svagt på en internetvendt instans. Den tilsigtede policy er at beskytte kontoen, holde notification tokens private og angive TZ eksplicit, så fornyelser ikke ændrer sig.
TZ styrer adfærd, ikke fortrolighed; validér dens type og værdi, og gem ægte Wallos-credentials separat. Hold dependency accounts adskilt fra menneskelige konti, afvis ubrugt egress, hvor det er praktisk, og sæt en grænse for arbejde, der påvirkes af planlagt notifikationsarbejde, logo-storage, SQLite-skrivninger og timezone-korrekthed.
Hvor Dockup fjerner arbejde for Wallos
En Dockup-template bør angive image, port 80, mounts, health-timing, domain, TLS og secret delivery. Dockup skal bevare Wallos' runtime-indstillinger, mens operatøren bekræfter dette lokale krav: persistente mapper til databasen og logo-uploads samt levering af notifikationer. Den samme deployment kan målrettes Dockup-servere eller kundetilknyttet kapacitet.
Når routen er live, skal du anvende den offentlige indstilling og prøve at oprette abonnementer med forskellige billing cycles, angive fornyelsesdatoer, køre notifikationsflowet og kontrollere totalerne i den valgte valuta. Tag backup af abonnementsdatabasen, uploadede logoer og notifikationsindstillinger, og behold restore-øvelsen i driftsplanen; det er Wallos-ansvar, som fortsat skal være synligt efter infrastruktur-provisioneringen.
Ofte stillede spørgsmål
Hvad har Wallos brug for i en production-deployment?
Route Wallos-containeren på port 80 gennem én HTTPS-origin. Kravet til det lokale runtime-miljø er persistente mapper til databasen og logo-uploads samt levering af notifikationer. Kald ikke Wallos klar, før du kan oprette abonnementer med forskellige billing cycles, angive fornyelsesdatoer, køre notifikationsflowet og kontrollere totalerne i den valgte valuta.
Hvilke Wallos-data skal med i en backup?
Gør /var/www/html/db persistent, og medtag abonnementsdatabase, uploadede logoer og notifikationsindstillinger i det samme recovery-manifest. En ren Wallos-restore er kun godkendt, når abonnementer, kategorier, logoer og notifikationsindstillinger kommer tilbage med uændrede fornyelsesdatoer.
Kræver Wallos HTTPS bag en reverse proxy?
Brug HTTPS til den offentlige Wallos-origin, og behold port 80 på den interne route. Anvend Wallos-indstillingen korrekt: servér applikationen over HTTPS, og angiv dens timezone. For Wallos beskytter HTTPS credentials eller brugerindhold under transport og holder origin-følsom klientadfærd konsistent.
Hvordan skal en Wallos-upgrade testes?
Gendan den aktuelle Wallos-state i en isoleret deployment, anvend kandidatversionen, og gentag dens acceptance-transaktion. Vær særligt opmærksom, fordi Wallos-databasemigrationer skal testes med dato- og valutadata, før det kørende image udskiftes. Behold det tidligere Wallos-image, indtil dets data-migrations- og rollback-grænse er forstået.
