[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"content:apps":3,"changelog:sctraining":541},[4,101,164,233,297,354,406,477],{"id":5,"title":6,"bodyHtml":7,"category":8,"description":9,"domain":10,"endpoints":11,"extension":18,"features":19,"githubUrl":44,"meta":45,"no":57,"order":86,"since":87,"stack":88,"status":92,"stem":93,"tagline":94,"theme":95,"uptime":96,"url":97,"version":98,"__hash__":99,"slug":100},"apps\u002Fapps\u002Ftoacms.md","toa:\u002F\u002Fcms","\u003Cp>cms is the writing surface for the whole ecosystem. It began as toa:\u002F\u002Fblog; in August 2026 toa:\u002F\u002Fcomments, toa:\u002F\u002Fcontact and toa:\u002F\u002Fratings moved in as modules of the same application — one login, one admin, one API key per site, and a database per module so they stay out of each other’s way. Content lives once and comes out over a clean, versioned REST API: markdown in, structured JSON out. Each site is its own tenant, Postgres row-level security keeps them isolated, and API keys carry per-module scopes — the key that accepts a comment cannot publish a news post. Sign-in is single sign-on via toa:\u002F\u002Fauth.\u003C\u002Fp>","CMS","Headless multi-site CMS. Posts, comments, contact forms and game reviews behind one API key — write once, publish to any toa:\u002F\u002F site.","cms.toaweb.com",[12,13,14,15,16,17],"GET \u002Fapi\u002Fpublic\u002Fv1\u002Fsites\u002F{site}\u002Fposts","GET \u002Fapi\u002Fpublic\u002Fv1\u002Fsites\u002F{site}\u002Fthreads\u002F{page}\u002Fcomments","POST \u002Fapi\u002Fpublic\u002Fv1\u002Fsites\u002F{site}\u002Fcomments","POST \u002Fapi\u002Fpublic\u002Fv1\u002Fsites\u002F{site}\u002Fmessages","GET \u002Fapi\u002Fpublic\u002Fv1\u002Fsites\u002F{site}\u002Fgames","GET \u002Fapi\u002Fpublic\u002Fv1\u002Fsites\u002F{site}\u002Ffeed","md",[20,23,26,29,32,35,38,41],{"title":21,"note":22},"Four modules, one app","Blog, comments, contact and ratings share one login, one admin and one API key — they used to be four separate applications on four subdomains.",{"title":24,"note":25},"A database per module","Core tenancy plus one database each for blog, comments, contact and ratings. A module cannot read another's tables, so a fault stays where it started.",{"title":27,"note":28},"Headless via API","Every module reads and writes over the same versioned REST API, with a per-site RSS feed and sitemap.xml. Your site owns its layout; the CMS owns the data.",{"title":30,"note":31},"Module-scoped API keys","A key carries scopes like blog:read or contact:write, so the key a public form holds to accept a message cannot publish a post.",{"title":33,"note":34},"Multi-site, multi-editor","Owners invite editors per site; Postgres row-level security keeps each site's content fully isolated across all four modules.",{"title":36,"note":37},"Draft, schedule & publish","Draft → published in one flip, or schedule a post and a worker publishes it for you. Every edit is snapshotted and one-click restorable.",{"title":39,"note":40},"Media library","Per-site image library — upload, auto-convert to WebP, organise by category and reuse across posts.",{"title":42,"note":43},"Built for automation","n8n and external tools read and publish programmatically with their own narrowly-scoped keys; a deploy webhook rebuilds the consuming site on publish.","https:\u002F\u002Fgithub.com\u002Ftoaweb\u002Ftoacms-core",{"body":46},{"type":47,"value":48,"toc":53},"minimark",[49],[50,51,52],"p",{},"cms is the writing surface for the whole ecosystem. It began as toa:\u002F\u002Fblog; in August 2026 toa:\u002F\u002Fcomments, toa:\u002F\u002Fcontact and toa:\u002F\u002Fratings moved in as modules of the same application — one login, one admin, one API key per site, and a database per module so they stay out of each other's way. Content lives once and comes out over a clean, versioned REST API: markdown in, structured JSON out. Each site is its own tenant, Postgres row-level security keeps them isolated, and API keys carry per-module scopes — the key that accepts a comment cannot publish a news post. Sign-in is single sign-on via toa:\u002F\u002Fauth.",{"title":54,"searchDepth":55,"depth":55,"links":56},"",2,[],{"description":58,"tagline":59,"features":60,"body":84,"bodyHtml":85},"Headless CMS for flere nettsteder. Innlegg, kommentarer, kontaktskjema og spillanmeldelser bak én API-nøkkel — skriv én gang, publiser til et hvilket som helst toa:\u002F\u002F-nettsted.","Ett CMS, fire moduler, én API-nøkkel.",[61,64,67,69,72,75,78,81],{"title":62,"note":63},"Fire moduler, én app","Blogg, kommentarer, kontakt og anmeldelser deler én innlogging, ett admin og én API-nøkkel — tidligere var de fire separate applikasjoner på fire subdomener.",{"title":65,"note":66},"En database per modul","Felles tenant-database pluss én hver til blogg, kommentarer, kontakt og anmeldelser. En modul kan ikke lese en annens tabeller, så en feil blir værende der den oppsto.",{"title":27,"note":68},"Alle modulene leser og skriver over det samme versjonerte REST-API-et, med RSS-feed og sitemap.xml per nettsted. Nettstedet ditt eier utseendet; CMS-et eier dataene.",{"title":70,"note":71},"API-nøkler med modulscope","En nøkkel har scopes som blog:read eller contact:write, slik at nøkkelen et åpent skjema bruker for å ta imot en melding ikke kan publisere et innlegg.",{"title":73,"note":74},"Flere nettsteder, flere redaktører","Eiere inviterer redaktører til hvert nettsted; row-level security i Postgres holder innholdet adskilt på tvers av alle fire moduler.",{"title":76,"note":77},"Kladd, planlegg og publiser","Kladd → publisert med én bryter, eller sett et tidspunkt fram i tid og la en worker publisere for deg. Hver endring lagres og kan hentes tilbake med ett klikk.",{"title":79,"note":80},"Mediebibliotek","Eget bildebibliotek per nettsted — last opp, konverter automatisk til WebP, sorter i kategorier og gjenbruk på tvers av innlegg.",{"title":82,"note":83},"Laget for automasjon","n8n og eksterne verktøy leser og publiserer programmatisk med egne, snevre nøkler; en deploy-webhook bygger nettstedet på nytt ved publisering.","cms er skriveflaten for hele økosystemet. Det begynte som toa:\u002F\u002Fblog, og i august 2026 flyttet toa:\u002F\u002Fcomments, toa:\u002F\u002Fcontact og toa:\u002F\u002Fratings inn som moduler i den samme appen — én innlogging, ett admin, én API-nøkkel per nettsted, og en egen database per modul så de holder seg fra hverandre. Innholdet bor ett sted og hentes ut over et rent, versjonert REST-API: markdown inn, strukturert JSON ut. Hvert nettsted er sin egen tenant, row-level security i Postgres holder dem adskilt, og API-nøklene har scope per modul — nøkkelen som tar imot en kommentar kan ikke publisere en nyhet. Innlogging er single sign-on via toa:\u002F\u002Fauth.","\u003Cp>cms er skriveflaten for hele økosystemet. Det begynte som toa:\u002F\u002Fblog, og i august 2026 flyttet toa:\u002F\u002Fcomments, toa:\u002F\u002Fcontact og toa:\u002F\u002Fratings inn som moduler i den samme appen — én innlogging, ett admin, én API-nøkkel per nettsted, og en egen database per modul så de holder seg fra hverandre. Innholdet bor ett sted og hentes ut over et rent, versjonert REST-API: markdown inn, strukturert JSON ut. Hvert nettsted er sin egen tenant, row-level security i Postgres holder dem adskilt, og API-nøklene har scope per modul — nøkkelen som tar imot en kommentar kan ikke publisere en nyhet. Innlogging er single sign-on via toa:\u002F\u002Fauth.\u003C\u002Fp>\n",1,"2024",[89,90,91],"FastAPI","PostgreSQL","Nuxt 4","live","apps\u002Ftoacms","One CMS, four modules, one API key.","software","99.98%","https:\u002F\u002Fcms.toaweb.com","v3.0.0","nN4_uAfXbrrxM_J-uLrvwvtguAngFNizKfCmzkULzbQ","toacms",{"id":102,"title":103,"bodyHtml":104,"category":105,"description":106,"domain":107,"endpoints":108,"extension":18,"features":113,"githubUrl":126,"meta":127,"no":135,"order":153,"since":154,"stack":155,"status":92,"stem":156,"tagline":157,"theme":158,"uptime":159,"url":160,"version":161,"__hash__":162,"slug":163},"apps\u002Fapps\u002Fbackup.md","toa:\u002F\u002Fbackup","\u003Cp>backup runs the safety net under everything else — scheduled dumps of PostgreSQL, MySQL and SQLite, compressed and checksummed, pushed to remote hosts over SSH\u002Frsync or to S3 and cloud storage via rclone. Each team works in its own isolated workspace; an in-app scheduler runs the jobs, Discord pings on failures, and restore is one verified click.\u003C\u002Fp>","Infrastructure","Multi-tenant database backup orchestration. Schedule, monitor, and restore PostgreSQL, MySQL, and SQLite to remote and S3-compatible storage.","backup.toaweb.com",[109,110,111,112],"GET \u002Fapi\u002Fv1\u002Fworkspaces\u002F{ws}\u002Fbackups","POST \u002Fapi\u002Fv1\u002Fworkspaces\u002F{ws}\u002Fschedules\u002Frun-now","POST \u002Fapi\u002Fv1\u002Fworkspaces\u002F{ws}\u002Fbackups\u002F{id}\u002Frestore","GET \u002Fapi\u002Fv1\u002Fworkspaces\u002F{ws}\u002Fdatabases",[114,117,120,123],{"title":115,"note":116},"Scheduled","Cron-style dumps with per-database retention windows, run by an in-app scheduler.",{"title":118,"note":119},"Multi-engine","PostgreSQL, MySQL and SQLite dumps, compressed and checksummed.",{"title":121,"note":122},"Anywhere storage","Push to remote hosts over SSH\u002Frsync or to S3 and cloud targets via rclone.",{"title":124,"note":125},"Workspaces & alerts","Per-workspace isolation with Discord notifications and one-click verified restore.","https:\u002F\u002Fgithub.com\u002Ftoaweb\u002Ftoabackup",{"body":128},{"type":47,"value":129,"toc":133},[130],[50,131,132],{},"backup runs the safety net under everything else — scheduled dumps of PostgreSQL, MySQL and SQLite, compressed and checksummed, pushed to remote hosts over SSH\u002Frsync or to S3 and cloud storage via rclone. Each team works in its own isolated workspace; an in-app scheduler runs the jobs, Discord pings on failures, and restore is one verified click.",{"title":54,"searchDepth":55,"depth":55,"links":134},[],{"description":136,"tagline":137,"features":138,"body":151,"bodyHtml":152},"Multi-tenant orkestrering av databasebackup. Planlegg, overvåk og gjenopprett PostgreSQL, MySQL og SQLite mot eksterne servere og S3-kompatibel lagring.","Multi-tenant databasebackup, planlagt og verifisert.",[139,142,145,148],{"title":140,"note":141},"Planlagt","Cron-styrte dumper med egen oppbevaringstid per database, kjørt av en innebygd planlegger.",{"title":143,"note":144},"Flere databasemotorer","Dumper fra PostgreSQL, MySQL og SQLite, komprimert og med sjekksum.",{"title":146,"note":147},"Lagring hvor som helst","Send til eksterne servere over SSH\u002Frsync, eller til S3 og skylagring via rclone.",{"title":149,"note":150},"Workspaces og varsling","Hvert workspace er isolert, med Discord-varsler og verifisert gjenoppretting med ett klikk.","backup er sikkerhetsnettet under alt det andre — planlagte dumper av PostgreSQL, MySQL og SQLite, komprimert og med sjekksum, sendt til eksterne servere over SSH\u002Frsync eller til S3 og skylagring via rclone. Hvert team jobber i sitt eget isolerte workspace; en innebygd planlegger kjører jobbene, Discord varsler når noe feiler, og gjenoppretting er ett verifisert klikk.","\u003Cp>backup er sikkerhetsnettet under alt det andre — planlagte dumper av PostgreSQL, MySQL og SQLite, komprimert og med sjekksum, sendt til eksterne servere over SSH\u002Frsync eller til S3 og skylagring via rclone. Hvert team jobber i sitt eget isolerte workspace; en innebygd planlegger kjører jobbene, Discord varsler når noe feiler, og gjenoppretting er ett verifisert klikk.\u003C\u002Fp>\n",3,"2025",[89,90,91],"apps\u002Fbackup","Multi-tenant database backups, scheduled and verified.","auth","99.95%","https:\u002F\u002Fbackup.toaweb.com","v2.1.0","g8Ds0dUwyfsxygNvF9beRNOwE18GY3o3YG9o1qoOBow","backup",{"id":165,"title":166,"bodyHtml":167,"category":168,"description":169,"domain":170,"endpoints":171,"extension":18,"features":176,"githubUrl":192,"meta":193,"no":201,"order":222,"since":223,"stack":224,"status":92,"stem":226,"tagline":227,"theme":95,"uptime":228,"url":229,"version":230,"__hash__":231,"slug":232},"apps\u002Fapps\u002Fscribe.md","toa:\u002F\u002Fscribe","\u003Cp>scribe is a GitHub-native editor for Hugo and Astro static sites. It reads and writes files directly via the GitHub Contents API, commits to your main branch, and lets your existing build pipeline handle the rest — simple mode for writers, advanced mode for developers.\u003C\u002Fp>","Editor","A GitHub-native editor for Hugo and Astro sites. Reads and writes files via the GitHub API, commits to your branch, and lets your build pipeline do the rest.","toascribe.dev",[172,173,174,175],"GET \u002Fapi\u002Fv1\u002Fgithub\u002Frepos","GET \u002Fapi\u002Fv1\u002Fgithub\u002Frepos\u002F{owner}\u002F{repo}\u002Ffiles","PUT \u002Fapi\u002Fv1\u002Fgithub\u002Frepos\u002F{owner}\u002F{repo}\u002Ffile","POST \u002Fapi\u002Fv1\u002Fgithub\u002Frepos\u002F{owner}\u002F{repo}\u002Fimage",[177,180,183,186,189],{"title":178,"note":179},"Framework-aware","Auto-detects Hugo vs Astro per repo.",{"title":181,"note":182},"GitHub-native","Reads and commits files straight through the GitHub Contents API, on your branch.",{"title":184,"note":185},"Front-matter & menus","Edit categories, tags, the draft toggle and site menus without touching YAML by hand.",{"title":187,"note":188},"Markdown + preview","CodeMirror 6 editor with live preview, shortcodes and image upload.",{"title":190,"note":191},"Least-privilege & audited","Connects through a GitHub App scoped to only the repos you grant it; every action is recorded in an audit log.","https:\u002F\u002Fgithub.com\u002Ftoaweb\u002Ftoascribe",{"body":194},{"type":47,"value":195,"toc":199},[196],[50,197,198],{},"scribe is a GitHub-native editor for Hugo and Astro static sites. It reads and writes files directly via the GitHub Contents API, commits to your main branch, and lets your existing build pipeline handle the rest — simple mode for writers, advanced mode for developers.",{"title":54,"searchDepth":55,"depth":55,"links":200},[],{"description":202,"tagline":203,"features":204,"body":220,"bodyHtml":221},"En editor for Hugo- og Astro-nettsteder som jobber rett mot GitHub. Den leser og skriver filer over GitHub-APIet, committer til branchen din, og lar byggepipelinen ta resten.","Editor for statiske nettsteder, rett mot GitHub.",[205,208,211,214,217],{"title":206,"note":207},"Kjenner igjen rammeverket","Oppdager selv om et repo er Hugo eller Astro.",{"title":209,"note":210},"Rett mot GitHub","Leser og committer filer direkte gjennom GitHub Contents API, på branchen din.",{"title":212,"note":213},"Front matter og menyer","Rediger kategorier, tagger, kladdebryteren og menyene på nettstedet uten å skrive YAML for hånd.",{"title":215,"note":216},"Markdown med forhåndsvisning","CodeMirror 6-editor med levende forhåndsvisning, shortcodes og bildeopplasting.",{"title":218,"note":219},"Minst mulig tilgang, alt loggført","Kobler seg til gjennom en GitHub App som bare når de repoene du gir den tilgang til, og hver handling havner i en revisjonslogg.","scribe er en editor for statiske Hugo- og Astro-nettsteder som jobber rett mot GitHub. Den leser og skriver filer direkte over GitHub Contents API, committer til hovedbranchen din, og lar byggepipelinen du allerede har ta resten — enkel modus for dem som skriver, avansert modus for dem som utvikler.","\u003Cp>scribe er en editor for statiske Hugo- og Astro-nettsteder som jobber rett mot GitHub. Den leser og skriver filer direkte over GitHub Contents API, committer til hovedbranchen din, og lar byggepipelinen du allerede har ta resten — enkel modus for dem som skriver, avansert modus for dem som utvikler.\u003C\u002Fp>\n",4,"2026",[89,91,225],"CodeMirror 6","apps\u002Fscribe","GitHub-native editor for static sites.","99.9%","https:\u002F\u002Ftoascribe.dev","v1.2.2","LjyTNksSjzuO655ppwO5ohcDhAWDw97wPVuYypm3mwY","scribe",{"id":234,"title":235,"bodyHtml":236,"category":237,"description":238,"domain":239,"endpoints":240,"extension":18,"features":245,"githubUrl":258,"meta":259,"no":267,"order":285,"since":154,"stack":286,"status":289,"stem":290,"tagline":291,"theme":292,"uptime":228,"url":293,"version":294,"__hash__":295,"slug":296},"apps\u002Fapps\u002Fwowchar.md","toa:\u002F\u002Fwowchar","\u003Cp>wowchar keeps your whole roster in one place — characters, current item level, and the gap to your Best-in-Slot target for every slot. Syncs from the Blizzard API on a schedule, stores history in Postgres, and renders fast static views.\u003C\u002Fp>","Gaming","Self-hosted World of Warcraft character tracker. Manage your roster, item levels, and Best-in-Slot gear progress across every character.","wowchar.toaweb.com",[241,242,243,244],"GET \u002Fapi\u002Fcharacters","GET \u002Fapi\u002Fcharacters\u002F{id}","GET \u002Fapi\u002Fbis\u002F{spec}","POST \u002Fapi\u002Fsync",[246,249,252,255],{"title":247,"note":248},"Roster overview","All characters, realms and item levels on one terminal-style board.",{"title":250,"note":251},"BiS tracking","Per-slot Best-in-Slot targets with a clear gap-to-goal readout.",{"title":253,"note":254},"History","Item-level and gear changes logged over time in Postgres.",{"title":256,"note":257},"Read-only public","Share a character page with zero auth and zero tracking.","https:\u002F\u002Fgithub.com\u002Ftoaweb\u002Ftoawowchar",{"body":260},{"type":47,"value":261,"toc":265},[262],[50,263,264],{},"wowchar keeps your whole roster in one place — characters, current item level, and the gap to your Best-in-Slot target for every slot. Syncs from the Blizzard API on a schedule, stores history in Postgres, and renders fast static views.",{"title":54,"searchDepth":55,"depth":55,"links":266},[],{"description":268,"tagline":269,"features":270,"body":283,"bodyHtml":284},"Selvhostet karakteroversikt for World of Warcraft. Hold styr på rosteret, item level og framdriften mot Best-in-Slot-utstyr for hver eneste karakter.","Karakter- og utstyrsoversikt for World of Warcraft.",[271,274,277,280],{"title":272,"note":273},"Oversikt over rosteret","Alle karakterer, realms og item level på én terminalaktig tavle.",{"title":275,"note":276},"BiS-sporing","Best-in-Slot-mål for hver slot, med tydelig avstand til målet.",{"title":278,"note":279},"Historikk","Endringer i item level og utstyr loggføres over tid i Postgres.",{"title":281,"note":282},"Offentlig og skrivebeskyttet","Del en karakterside uten innlogging og uten sporing.","wowchar samler hele rosteret ditt på ett sted — karakterer, item level akkurat nå, og avstanden til Best-in-Slot-målet for hver eneste slot. Den synkroniserer fra Blizzard-APIet med jevne mellomrom, lagrer historikken i Postgres, og viser det fram som raske statiske sider.","\u003Cp>wowchar samler hele rosteret ditt på ett sted — karakterer, item level akkurat nå, og avstanden til Best-in-Slot-målet for hver eneste slot. Den synkroniserer fra Blizzard-APIet med jevne mellomrom, lagrer historikken i Postgres, og viser det fram som raske statiske sider.\u003C\u002Fp>\n",5,[287,89,288],"Astro 6","PostgreSQL 17","wip","apps\u002Fwowchar","World of Warcraft character & gear tracker.","gaming","https:\u002F\u002Fwowchar.toaweb.com","v1.2.0","H_zHIno9n_wXEKV9aM0SkhKtyn1YIGPevPJdBV0L_FA","wowchar",{"id":298,"title":299,"bodyHtml":300,"category":301,"description":302,"domain":303,"endpoints":304,"extension":18,"features":307,"githubUrl":320,"meta":321,"no":329,"order":347,"since":320,"stack":348,"status":349,"stem":350,"tagline":351,"theme":292,"uptime":320,"url":320,"version":320,"__hash__":352,"slug":353},"apps\u002Fapps\u002Fscmissions.md","toa:\u002F\u002FSCmissions","\u003Cp>scmissions will help Star Citizen orgs log runs, assign crew, and split earnings — a quiet ledger for organised play.\u003C\u002Fp>","Star Citizen","Star Citizen mission tracker for orgs. Log runs, assign crew, track earnings, and analyze efficiency across mission types.","scmissions.toaweb.com",[305,306],"GET \u002Fapi\u002Fmissions","POST \u002Fapi\u002Fmissions",[308,311,314,317],{"title":309,"note":310},"Run log","Record missions, crew, and outcomes.",{"title":312,"note":313},"Crew roles","Assign and track who flew what.",{"title":315,"note":316},"Earnings","Track and split payouts across crew.",{"title":318,"note":319},"Org-scoped","Data partitioned per organisation.",null,{"body":322},{"type":47,"value":323,"toc":327},[324],[50,325,326],{},"scmissions will help Star Citizen orgs log runs, assign crew, and split earnings — a quiet ledger for organised play.",{"title":54,"searchDepth":55,"depth":55,"links":328},[],{"description":330,"tagline":331,"features":332,"body":345,"bodyHtml":346},"Oppdragslogg for Star Citizen-orger. Loggfør turer, sett opp mannskap, hold styr på inntektene og se hvilke oppdragstyper som faktisk lønner seg.","Oppdragslogg for Star Citizen-orger.",[333,336,339,342],{"title":334,"note":335},"Turlogg","Registrer oppdrag, mannskap og resultat.",{"title":337,"note":338},"Roller i mannskapet","Fordel roller, og hold styr på hvem som fløy hva.",{"title":340,"note":341},"Inntekter","Følg utbetalingene og fordel dem på mannskapet.",{"title":343,"note":344},"Avgrenset til orgen","Dataene er delt opp per organisasjon.","scmissions skal hjelpe Star Citizen-orger med å loggføre turer, sette opp mannskap og fordele inntektene — et stillferdig regnskap for organisert spilling.","\u003Cp>scmissions skal hjelpe Star Citizen-orger med å loggføre turer, sette opp mannskap og fordele inntektene — et stillferdig regnskap for organisert spilling.\u003C\u002Fp>\n",6,[89,90],"planned","apps\u002Fscmissions","Star Citizen mission tracker for orgs.","EPZqLmBQ1CkwVcRCJ1n6V-Kp5hhJMbzYRWahxBqdR2Y","scmissions",{"id":355,"title":356,"bodyHtml":357,"category":301,"description":358,"domain":359,"endpoints":360,"extension":18,"features":363,"githubUrl":320,"meta":375,"no":383,"order":400,"since":320,"stack":401,"status":349,"stem":402,"tagline":403,"theme":292,"uptime":320,"url":320,"version":320,"__hash__":404,"slug":405},"apps\u002Fapps\u002Fsctraining.md","toa:\u002F\u002FSCtraining","\u003Cp>sctraining will give orgs structured courses, modules and certificates — onboard new members with a clear path and a record of completion.\u003C\u002Fp>","Structured training hub for Star Citizen orgs. Courses, modules, progress tracking, and certificates for pilots and crew.","sctraining.toaweb.com",[361,362],"GET \u002Fapi\u002Fcourses","GET \u002Fapi\u002Fprogress",[364,367,370,372],{"title":365,"note":366},"Courses","Structured modules with a clear path.",{"title":368,"note":369},"Certificates","Record completion per member.",{"title":318,"note":371},"Curricula owned per organisation.",{"title":373,"note":374},"Progress","See who has finished what, at a glance.",{"body":376},{"type":47,"value":377,"toc":381},[378],[50,379,380],{},"sctraining will give orgs structured courses, modules and certificates — onboard new members with a clear path and a record of completion.",{"title":54,"searchDepth":55,"depth":55,"links":382},[],{"description":384,"tagline":385,"features":386,"body":398,"bodyHtml":399},"Strukturert opplæringssenter for Star Citizen-orger. Kurs, moduler, framdrift og kursbevis for piloter og mannskap.","Opplæringssenter for Star Citizen-orger.",[387,390,393,395],{"title":388,"note":389},"Kurs","Strukturerte moduler med en tydelig vei gjennom.",{"title":391,"note":392},"Kursbevis","Registrer hva hvert medlem har fullført.",{"title":343,"note":394},"Hver organisasjon eier sine egne kursplaner.",{"title":396,"note":397},"Framdrift","Se hvem som har fullført hva, med ett blikk.","sctraining skal gi orger strukturerte kurs, moduler og kursbevis — ta imot nye medlemmer med en tydelig vei gjennom og en oversikt over hva de har fullført.","\u003Cp>sctraining skal gi orger strukturerte kurs, moduler og kursbevis — ta imot nye medlemmer med en tydelig vei gjennom og en oversikt over hva de har fullført.\u003C\u002Fp>\n",7,[89,90],"apps\u002Fsctraining","Training hub for Star Citizen orgs.","mITeDij7wXCWsME5rBZ8tbGVmhjDAct_LomXbie-AlA","sctraining",{"id":407,"title":408,"bodyHtml":409,"category":237,"description":410,"domain":411,"endpoints":412,"extension":18,"features":416,"githubUrl":432,"meta":433,"no":446,"order":467,"since":223,"stack":468,"status":92,"stem":470,"tagline":471,"theme":292,"uptime":472,"url":473,"version":474,"__hash__":475,"slug":476},"apps\u002Fapps\u002Ftoaservers.md","toa:\u002F\u002Fservers","\u003Cp>servers is the toa:\u002F\u002F headless game-server status service — point it at your A2S-speaking servers and it tracks status, ping and player count on a schedule, alerting to Discord when something goes down. Flag a server public and its live status is available over a CORS-open read API and a drop-in \u003Ccode>&#x3C;toa-servers>\u003C\u002Fcode> widget you can embed on any static site. Built multi-tenant with Postgres row-level security like the rest of the suite; the admin\u002Fconfig panel is single sign-on via toa:\u002F\u002Fauth, and the monitoring backend stays internal behind it.\u003C\u002Fp>","Headless, multi-tenant game-server status. Monitors your servers over A2S (status, ping, player count) and surfaces them on any site via a public read API + a drop-in \u003Ctoa-servers> widget — with per-server Discord alerts.","servers.toaweb.com",[413,414,415],"GET \u002Fapi\u002Fpublic\u002Fv1\u002Fsites\u002F{slug}\u002Fservers","GET \u002Fapi\u002Fpublic\u002Fv1\u002Fsites\u002F{slug}\u002Fservers\u002F{id}","GET \u002Fembed\u002Ftoa-servers.js",[417,420,423,426,429],{"title":418,"note":419},"A2S monitoring","Polls each game server over the A2S protocol on a schedule — up\u002Fdown status, ping and live player count, with flap protection so a single blip doesn't alert.",{"title":421,"note":422},"Public API + widget","Expose chosen servers via a CORS-open read API and a drop-in \u003Ctoa-servers> Web Component (Shadow DOM, themeable) — render live status on any static site.",{"title":424,"note":425},"Opt-in public","Each server is private by default; flip is_public to surface it. Only flagged servers ever leave the gated config panel.",{"title":427,"note":428},"Discord alerts","Per-server alert rules (3 types) fire to Discord on state change, with a cooldown so you're not spammed.",{"title":430,"note":431},"Multi-tenant + private","Postgres row-level security isolates each site (FORCE RLS); the admin\u002Fconfig panel is single sign-on via toa:\u002F\u002Fauth.","https:\u002F\u002Fgithub.com\u002Ftoaweb\u002Ftoaservers",{"body":434},{"type":47,"value":435,"toc":444},[436],[50,437,438,439,443],{},"servers is the toa:\u002F\u002F headless game-server status service — point it at your A2S-speaking servers and it tracks status, ping and player count on a schedule, alerting to Discord when something goes down. Flag a server public and its live status is available over a CORS-open read API and a drop-in ",[440,441,442],"code",{},"\u003Ctoa-servers>"," widget you can embed on any static site. Built multi-tenant with Postgres row-level security like the rest of the suite; the admin\u002Fconfig panel is single sign-on via toa:\u002F\u002Fauth, and the monitoring backend stays internal behind it.",{"title":54,"searchDepth":55,"depth":55,"links":445},[],{"description":447,"tagline":448,"features":449,"body":465,"bodyHtml":466},"Headless, multi-tenant statusovervåking av spillservere. Overvåker serverne dine over A2S (status, ping og antall spillere) og viser dem fram på hvilket som helst nettsted via et åpent lese-API og en ferdig \u003Ctoa-servers>-widget — med Discord-varsler per server.","Headless statusvisning for spillservere, på hvilket som helst nettsted.",[450,453,456,459,462],{"title":451,"note":452},"Overvåking over A2S","Spør hver spillserver over A2S-protokollen med jevne mellomrom — oppe eller nede, ping og antall spillere akkurat nå, med en terskel som gjør at ett enkelt hikk ikke utløser varsel.",{"title":454,"note":455},"Åpent API og widget","Legg ut utvalgte servere gjennom et lese-API som er åpent for CORS, og en ferdig \u003Ctoa-servers> Web Component (Shadow DOM, kan styles) — vis levende status på hvilket som helst statisk nettsted.",{"title":457,"note":458},"Offentlig bare når du sier ifra","Hver server er privat som standard; sett is_public for å vise den fram. Bare servere du har flagget, forlater konfigurasjonspanelet.",{"title":460,"note":461},"Discord-varsler","Varslingsregler per server (tre typer) sender melding til Discord når tilstanden endrer seg, med en cooldown så du ikke blir nedspammet.",{"title":463,"note":464},"Multi-tenant og privat","Row-level security i Postgres holder hvert nettsted for seg (FORCE RLS), og admin- og konfigurasjonspanelet er single sign-on via toa:\u002F\u002Fauth.","servers er statustjenesten for spillservere i toa:\u002F\u002F, headless fra bunnen av — pek den mot serverne dine som snakker A2S, så følger den status, ping og antall spillere med jevne mellomrom, og varsler i Discord når noe går ned. Flagger du en server som offentlig, er den levende statusen tilgjengelig over et lese-API som er åpent for CORS, og gjennom en ferdig `\u003Ctoa-servers>`-widget du kan bygge inn på hvilket som helst statisk nettsted. Bygget multi-tenant med row-level security i Postgres som resten av suiten; admin- og konfigurasjonspanelet er single sign-on via toa:\u002F\u002Fauth, og selve overvåkingen ligger internt bak det.","\u003Cp>servers er statustjenesten for spillservere i toa:\u002F\u002F, headless fra bunnen av — pek den mot serverne dine som snakker A2S, så følger den status, ping og antall spillere med jevne mellomrom, og varsler i Discord når noe går ned. Flagger du en server som offentlig, er den levende statusen tilgjengelig over et lese-API som er åpent for CORS, og gjennom en ferdig \u003Ccode>&lt;toa-servers&gt;\u003C\u002Fcode>-widget du kan bygge inn på hvilket som helst statisk nettsted. Bygget multi-tenant med row-level security i Postgres som resten av suiten; admin- og konfigurasjonspanelet er single sign-on via toa:\u002F\u002Fauth, og selve overvåkingen ligger internt bak det.\u003C\u002Fp>\n",10,[89,288,91,469],"opengsq","apps\u002Ftoaservers","Headless game-server status for any site.","100%","https:\u002F\u002Fservers.toaweb.com","v0.2.0","TCw5_tvWiMbBMkbWUImbbZDb7GQmMbPJ38C16FM3yU4","toaservers",{"id":478,"title":479,"bodyHtml":480,"category":105,"description":481,"domain":482,"endpoints":483,"extension":18,"features":488,"githubUrl":503,"meta":504,"no":512,"order":532,"since":223,"stack":533,"status":92,"stem":535,"tagline":536,"theme":95,"uptime":472,"url":537,"version":538,"__hash__":539,"slug":540},"apps\u002Fapps\u002Ftoafleet.md","toa:\u002F\u002Ffleet","\u003Cp>fleet is the toa:\u002F\u002F control plane for your servers — wherever they live. Connect the providers you already use (your Incus home lab, your Hetzner Cloud account) and it pulls every instance into one panel: status, type, IP, specs, with start\u002Fstop\u002Freboot a click away. It’s an aggregator, not a host — you bring accounts you already own, and your credentials are encrypted and never shown back. Built multi-tenant with Postgres row-level security like the rest of the suite (each tenant sees only their own), and pluggable so a new provider is just one more adapter.\u003C\u002Fp>","Multi-tenant, pluggable infrastructure control panel. Connect your own provider accounts — local Incus (LXC + KVM) and Hetzner Cloud — and observe and operate every instance from one Authentik-gated panel.","fleet.toaweb.com",[484,485,486,487],"GET \u002Fapi\u002Finstances","POST \u002Fapi\u002Finstances\u002F{connection}\u002F{id}\u002F{start|stop|reboot}","GET \u002Fapi\u002Fconnections","POST \u002Fapi\u002Fconnections",[489,492,495,498,501],{"title":490,"note":491},"One panel, many providers","Connect Incus (your home lab — LXC containers + KVM VMs) and Hetzner Cloud, and see every instance in one list — status, type, IP, region, specs — instead of juggling dashboards.",{"title":493,"note":494},"Pluggable by design","A normalized instance model behind a Provider adapter layer. Adding OVH or another provider later is one new adapter — the core never changes.",{"title":496,"note":497},"Observe + operate","Start, stop and reboot instances across all connected providers, with a confirmation on every action and an append-only audit log of who did what.",{"title":499,"note":500},"Credentials stay sealed","Provider tokens and certs are encrypted at rest, write-only (never shown again), and decrypted in memory only for the moment a provider is called.",{"title":430,"note":502},"Each tenant connects their own accounts and sees only their own instances — Postgres FORCE row-level security with a non-superuser owner isolates everything. Single sign-on via toa:\u002F\u002Fauth.","https:\u002F\u002Fgithub.com\u002Ftoaweb\u002Ftoafleet",{"body":505},{"type":47,"value":506,"toc":510},[507],[50,508,509],{},"fleet is the toa:\u002F\u002F control plane for your servers — wherever they live. Connect the providers you already use (your Incus home lab, your Hetzner Cloud account) and it pulls every instance into one panel: status, type, IP, specs, with start\u002Fstop\u002Freboot a click away. It's an aggregator, not a host — you bring accounts you already own, and your credentials are encrypted and never shown back. Built multi-tenant with Postgres row-level security like the rest of the suite (each tenant sees only their own), and pluggable so a new provider is just one more adapter.",{"title":54,"searchDepth":55,"depth":55,"links":511},[],{"description":513,"tagline":514,"features":515,"body":530,"bodyHtml":531},"Multi-tenant kontrollpanel for infrastruktur, bygget for å utvides. Koble til dine egne leverandørkontoer — lokal Incus (LXC + KVM) og Hetzner Cloud — og overvåk og styr hver eneste instans fra ett panel bak Authentik.","Hele serverparken din, ett panel.",[516,519,522,525,528],{"title":517,"note":518},"Ett panel, flere leverandører","Koble til Incus (hjemmelabben din — LXC-containere og KVM-VM-er) og Hetzner Cloud, og se hver instans i én liste — status, type, IP, region og spesifikasjoner — i stedet for å sjonglere flere dashbord.",{"title":520,"note":521},"Laget for å utvides","En normalisert instansmodell bak et lag med leverandøradaptere. Skal OVH eller en annen leverandør inn senere, er det bare én ny adapter — kjernen står urørt.",{"title":523,"note":524},"Overvåk og styr","Start, stopp og restart instanser hos alle tilkoblede leverandører, med bekreftelse på hver handling og en logg som bare skrives til, over hvem som gjorde hva.",{"title":526,"note":527},"Nøklene forblir forseglet","Tokens og sertifikater fra leverandørene lagres kryptert, kan bare skrives og aldri vises igjen, og dekrypteres i minnet kun i det øyeblikket en leverandør kalles.",{"title":463,"note":529},"Hver tenant kobler til sine egne kontoer og ser bare sine egne instanser — FORCE row-level security i Postgres, med en eierrolle uten superuser, holder alt adskilt. Single sign-on via toa:\u002F\u002Fauth.","fleet er kontrollpanelet i toa:\u002F\u002F for serverne dine — uansett hvor de står. Koble til leverandørene du allerede bruker (Incus-hjemmelabben, Hetzner Cloud-kontoen), så henter fleet hver instans inn i ett panel: status, type, IP og spesifikasjoner, med start, stopp og restart ett klikk unna. Det er en samleflate, ikke en vert — du tar med kontoer du allerede eier, og nøklene dine krypteres og vises aldri tilbake. Bygget multi-tenant med row-level security i Postgres som resten av suiten, slik at hver tenant bare ser sitt eget, og laget for å utvides: en ny leverandør er bare én adapter til.","\u003Cp>fleet er kontrollpanelet i toa:\u002F\u002F for serverne dine — uansett hvor de står. Koble til leverandørene du allerede bruker (Incus-hjemmelabben, Hetzner Cloud-kontoen), så henter fleet hver instans inn i ett panel: status, type, IP og spesifikasjoner, med start, stopp og restart ett klikk unna. Det er en samleflate, ikke en vert — du tar med kontoer du allerede eier, og nøklene dine krypteres og vises aldri tilbake. Bygget multi-tenant med row-level security i Postgres som resten av suiten, slik at hver tenant bare ser sitt eget, og laget for å utvides: en ny leverandør er bare én adapter til.\u003C\u002Fp>\n",11,[89,288,91,534],"httpx","apps\u002Ftoafleet","Your whole server fleet, one panel.","https:\u002F\u002Ffleet.toaweb.com","v0.11.2","Ex6amcL5r_jWYfLoKkXdfDqOLz1R6AnkNnsSl98GGx0","toafleet",[]]