Gin GoKick
Změnit jazyk

Lehká full-stack kostra pro Golang

Stavte aplikace v Go lehce, čistě a rychle. Gin, Vue 3 a přísná pravidla, podle kterých píše stejně dobrý kód člověk i AI.


Naklonujte repo a nechte AI pracovat

Co Gin GoKick umí

Rozjetí

  1. Go a Gin

    Gin obslouží web z jedné binárky i se šablonami a frontendem.

  2. Konfigurace z .env

    Proměnné mají kontrolu. Překlep zastaví start, ne produkci.

  3. Pravidla v AGENTS.md

    Člověk i AI píšou podle stejných pravidel, nástroje je vynutí.

  4. Brána před commitem

    Jeden blok spustí před commitem lint, typy i testy jako CI.

  5. Kontrola před pushem

    Lefthook před pushem ověří název větve i zprávy commitů.

Databáze

  1. PostgreSQL 18

    Aplikace se připojí přes pgx, databázi spustí jeden příkaz.

  2. Migrace goose

    Spustí se při startu se zámkem, takže se instance nepoperou.

  3. sqlc místo ORM

    Dotazy píšete v SQL, typované funkce v Go se vygenerují.

  4. Testy s databází

    Každý test dostane prázdné schéma s migracemi, v CI i lokálně.

Nasazení

  1. Docker image

    Image běží na Alpine bez roota a healthcheck ověří i databázi.

  2. Návod na Dokploy

    Provede prvním nasazením s Postgresem, Cloudflarem i Grafanou.

  3. Klidný restart

    Při vypnutí požadavky doběhnou, nejdéle do pěti sekund.

  4. E-maily přes SMTP

    Lokálně je chytí Mailpit, v produkci je odešle Amazon SES.

Frontend

  1. Vite po vzoru Laravelu

    HMR jde přes Go, takže i vývoj běží s produkční CSP.

  2. Vue 3 a Tailwind 4

    SPA s vue-routerem i stránky z Go sdílejí jeden styl.

  3. Typy a guardy z Go

    tsgen píše typy i guardy, změnu API odhalí kompilace.

  4. Routy podle přihlášení

    Každá routa říká, kdo na ni smí, a záložky sdílejí přihlášení.

Šablony v Go

  1. SSR přes html/template

    Homepage, stránku 404 i vstup do aplikace vykreslí server v každém jazyce.

  2. Hlídané šablony

    Kontroly odhalí v šabloně chybějící soubor, nepřeložený text i neznámý klíč.

  3. Mailové šablony

    Maily vzniknou z Go šablon a uživateli přijdou v jeho jazyce.

Komponenty

  1. Sdílené prvky

    Ikony, dropdowny a tooltipy vypadají ve Vue i v Go stejně.

  2. Datagrid

    Filtry i stránka zůstanou v adrese a výběr umí hromadné akce.

  3. Formuláře

    Pole pro text i čísla ukážou chybu z API přímo pod sebou.

  4. Toasty a potvrzení

    Toast přežije navigaci a před nevratnou akcí se zeptá modal.

Jazyky a SEO

  1. Jazyky v adrese

    Jazyk má vlastní adresu s hreflang a účet si ho pamatuje.

  2. Kontrola překladů

    tools/i18n hlídá chybějící klíče, nepoužité texty i plurály.

  3. ICU v Go i Vue

    Plurály a čísla vypadají v Go i v prohlížeči stejně.

  4. Titulky a sdílení

    Bez titulku, popisu nebo obrázku ke sdílení neprojdou kontroly.

Bezpečnost

  1. Přihlášení

    Hesla hashuje argon2id, limit pokusů platí napříč instancemi.

  2. Přehled zařízení

    Uživatel vidí svá zařízení s poslední IP a odhlásí, co nezná.

  3. CSP s nonce

    Nonce a Trusted Types zastaví cizí skript bez unsafe-inline.

  4. CSRF bez tokenů

    Požadavek z cizí stránky odmítne http.CrossOriginProtection.

  5. Hlavičky na A+

    HSTS, COOP, CORP i Permissions-Policy pošle server sám.

Sentry a telemetrie

  1. Sentry pro Go i Vue

    Spojí chybu z prohlížeče s backendem, release je SHA commitu.

  2. Prometheus a Grafana

    Hotový dashboard ukáže požadavky, doby odpovědí i runtime Go.

  3. Logy v JSON

    slog zapíše trace_id i user_id, nikdy e-mail ani jméno.

Měření a souhlas

  1. Cookie lišta

    Odmítnutí je stejně snadné jako souhlas a volbu lze kdykoli změnit.

  2. Měření a konverze

    GA4, Ads i Meta měří a počítají konverze až po souhlasu.

  3. E-mail jen jako hash

    E-mail dostanou jen Ads a Meta, a to jako hash SHA-256.

  4. Události z Go

    Události definuje Go a typecheck nepustí žádnou bez mapování.