13 let jsem čekal na správnou doménu, a pak jsem ji rovnou hodil do cloudu.
<off-topic>
Od doby, co Google oznámil, že bude prodávat domény s koncovkou .dev, jsem se těšil, že si udělám radost. Čekal jsem, než se Google vysloví a nechá mi si tu doménu koupit. Ona taková doména felix.dev zní fakt cool. Od pradávna totiž bojuju s tím, že mi můj táta a jmenovec vyfouknul skoro všechy pěkný domény a e-mailové účty. Chtěl jsem mít e-mail [email protected], ale nebyl jsem očividně první.
Tenkrát, zhruba před 13 lety, jsem si tedy založil e-mail [email protected], RK znamená Rychnov nad Kněžnou. Tenkrát mi to nevadilo, ale když ho někomu dnes diktuji, není to moc profesionální.
Doménu milansulc.cz jsem nakonec získál, ale za prvé je dlouhá a za druhé, co zvolit jako prefix, [email protected]? [email protected]? [email protected]? To snad radši ne. Tudy cesta taky nevede.
Pak jsem objevil koncovku .xyz asi za 1 $, ale už asi tušíte, proč je tak levná…
Nicméně, když se začaly rozšiřovat koncovky .io, tak jsem znovu přisel pozdě. Nakonec jsem si zaregistroval {hackerskou} doménu f3l1x.io (tady právě jste), ale jak poznamenal Honza Černý (chemix): „S tím se nikdo vypisovat nebude.“ Nuže, doufám, že backlinky odvedou svoji práci.
A konečně se dostáváme do doby zhruba 2 týdny zpět, kdy si dávám do kupy seznam domén, co si koupím. Pochopitelně felix.dev nechybí, event v kalendáři na den, kdy Google uvolňuje registrace bez navýšení mám, všechno vypadá slibně.
Dnes, 27.2.2019, pravidelně kontroluju stav domén a co nevidím. Moji, jako fakt, moji doménu felix.dev někdo koupil. Dprdl. On si to fakt někdo koupil v předprodeji, za takový prachy, kroutím hlavou.
Moje záložní doména sulc.dev je stále volná. Dnes stojí 12 $ + 125 $, asi na provoz Google serverů. Od zítra stojí jenom 12 $. Svolávám rodinný sněm. Všichni truchlí se mnou. Během pár minut máme jasno, nebudeme váhat a koupíme si za 3000,- Kč sulc.dev. Protože přece [email protected] je ultra cool. Right?
</off-topic>
Pojďme se podívat, co to ten ZEIT je a s čím nám může pomoci. Nutno dodat, že jsem si prošel přes Azure, AWS až ke GCP, ale ZEIT je pro mě jasnej objev roku 2018.
Azure, AWS i GCP mají vlastní HW/SW. Vy si můžete koupit nějakou službu nebo výkon a přes jejich admin nástroje/konzole ho spravovat. ZEIT stojí bokem, resp. nad těmito cloudy a pomocí svého API je ovládá. Vy jen říkáte, že chcete nahrát někam svůj statický obsah nebo třeba kus PHP/JS/Go/Python kódu, ale už se nestaráte, jestli je to realně hostované u GCP nebo třeba u AWS. To za vás řeší ZEIT a řeší to opravdu pěkně. Tím myslím vývojářsky, přes konzoli.
Nejdříve nainstalujeme nástroj now, jak radí dokumentace. Vytvoříme účet, přihlásíme, atd.
npm install -g now
now loginTakhle vypadá now -h.
$ now -h
  𝚫 now [options] <command | path>
  Commands:
    Cloud
      deploy               [path]      Performs a deployment (default)
      ls | list            [app]       Lists deployments
      rm | remove          [id]        Removes a deployment
      ln | alias           [id] [url]  Configures aliases for deployments
      inspect              [id]        Displays information related to a deployment
      domains              [name]      Manages your domain names
      certs                [cmd]       Manages your SSL certificates
      secrets              [name]      Manages your secret environment variables
      dns                  [name]      Manages your DNS records
      logs                 [url]       Displays the logs for a deployment
      scale                [args]      Scales the instance count of a deployment
      init                 [example]   Initialize an example project
      help                 [cmd]       Displays complete help for [cmd]
    Administrative
      billing | cc         [cmd]       Manages your credit cards and billing methods
      upgrade | downgrade  [plan]      Upgrades or downgrades your plan
      teams                [team]      Manages your teams
      switch               [scope]     Switches between teams and your personal account
      login                [email]     Logs into your account or creates a new one
      logout                           Logs out of your account
      whoami                           Displays the current scope
  Options:
    -h, --help                     Output usage information
    -v, --version                  Output the version number
    -V, --platform-version         Set the platform version to deploy to
    -n, --name                     Set the project name of the deployment
    -A FILE, --local-config=FILE   Path to the local `now.json` file
    -Q DIR, --global-config=DIR    Path to the global `.now` directory
    -d, --debug                    Debug mode [off]
    -f, --force                    Force a new deployment even if nothing has changed
    -t TOKEN, --token=TOKEN        Login token
    -p, --public                   Deployment is public (`/_src` is exposed)
    -e, --env                      Include an env var during run time (e.g.: `-e KEY=value`). Can appear many times.
    -b, --build-env                Similar to `--env` but for build time only.
    -m, --meta                     Add metadata for the deployment (e.g.: `-m KEY=value`). Can appear many times.
    -C, --no-clipboard             Do not attempt to copy URL to clipboard
    -T, --team                     Set a custom team scope
    --regions                      Set default regions to enable the deployment on
  > NOTE: To view the usage information for Now 1.0, run `now help deploy-v1`
  Examples:
  – Deploy the current directory
    $ now
  – Deploy a custom path
    $ now /usr/src/project
  – Deploy with environment variables
    $ now -e NODE_ENV=production -e SECRET=@mysql-secret
  – Show the usage information for the sub command `list`
    $ now help listDoménu máme, chceme ji přidat do správy ZEIT. Proč?
- Bude hostovaná na rychlé infrastruktuře, kterou ZEIT provozuje s CloudFlare.
- DNS spravujete přes konzoli, ne admin rozhraní, fakt přes terminál, jako pravej geek.
- ZEIT má velmi štědrý free tarif, idealní na prototypování nebo vlastní web.
Přidáme doménu přes terminál.
$ now domains add sulc.devŽe se vše podařilo, víte hned.
> Success! Domain sulc.dev added correctly. [3s]
> WARN! The domain was added but it is not verified. To verify it, you should either:
  a) Change your domain nameservers to the following intended set: [recommended]
     Intended Nameservers    Current Nameservers
     b.zeit-world.co.uk      dns1.registrar-servers.com    ✘
     d.zeit-world.org        dns2.registrar-servers.com    ✘
     e.zeit-world.net        -                             ✘
     f.zeit-world.com        -                             ✘
  b) Add a DNS TXT record with the name and value shown below.
     name        type        value
     _now        TXT         **HASH**
  We will run a verification for you and you will receive an email upon completion.
  If you want to force running a verification, you can run `now domains verify <domain>`
  Read more: https://err.sh/now-cli/domain-verificationJak je vidět, ZEIT doporučuje změnit NS na jejich servery, abyste doménu mohli pohodlně spravovat. Lze nasměrovat i CNAME, ale doporučuju změnit komplet NS, ničemu to nevadí.
Potom, co je doména připojena k vašemu účtu, se čeká na verifikaci, kdy ZEIT ověřuje, že jste správně nastavili NS záznamy.
Jakmile dojde k verifikaci, můžete svoji doménu ovládat kompletně přes terminál. Např. nastavit si MX záznamy.
Zobrazíme si nápovědu přes now help dns.
$ now help dns
  𝚫 now dns [options] <command>
  Commands:
    add     [details]             Add a new DNS entry (see below for examples)
    import  [domain] [zonefile]   Import a DNS zone file (see below for examples)
    rm      [id]                  Remove a DNS entry using its ID
    ls      [domain]              List all DNS entries for a domain
  Options:
    -h, --help                     Output usage information
    -A FILE, --local-config=FILE   Path to the local `now.json` file
    -Q DIR, --global-config=DIR    Path to the global `.now` directory
    -d, --debug                    Debug mode [off]
    -t TOKEN, --token=TOKEN        Login token
    -T, --team                     Set a custom team scope
  Examples:
  – Add an A record for a subdomain
      $ now dns add <DOMAIN> <SUBDOMAIN> <A | AAAA | ALIAS | CNAME | TXT>  <VALUE>
      $ now dns add zeit.rocks api A 198.51.100.100
  – Add an MX record (@ as a name refers to the domain)
      $ now dns add <DOMAIN> '@' MX <RECORD VALUE> <PRIORITY>
      $ now dns add zeit.rocks '@' MX mail.zeit.rocks 10
  – Add an SRV record
      $ now dns add <DOMAIN> <NAME> SRV <PRIORITY> <WEIGHT> <PORT> <TARGET>
      $ now dns add zeit.rocks '@' SRV 10 0 389 zeit.party
  – Add a CAA record
      $ now dns add <DOMAIN> <NAME> CAA '<FLAGS> <TAG> "<VALUE>"'
      $ now dns add zeit.rocks '@' CAA '0 issue "zeit.co"'
  – Import a Zone file
      $ now dns import <DOMAIN> <FILE>
      $ now dns import zeit.rocks ./zonefile.txtA přidáme MX záznamy.
$ now dns add sulc.dev '@' MX mx1.example.com 10
> Success! DNS record for domain sulc.dev (rec_0123456789abcdefg1) created under f3l1x [1m]
$ now dns add sulc.dev '@' MX mx2.example.com 20
> Success! DNS record for domain sulc.dev (rec_0123456789abcdefg2) created under f3l1x [1m]Takhle jednoduché to je. Znáte ZEIT? Používáte ho na něco? Podělte se do diskuze.