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 login
Takhle 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 list
Domé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-verification
Jak 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.txt
A 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.