Synchronizační repozitář pro soubory hostované na data.cesko.digital.
Pro přidání nového souboru na data.cesko.digital je nutné:
- Soubor nahrát do složky
content
(například pro obrázek na blog, jdi do složky "img" a dej "add a file" a "Upload files")
- Do "Commit changes" napiš název obrázku a dej "Commit changes"
- Vytvořit pull request a proveď kontrolu pomocí přidání jednoho z reviwers Karmi, Zoul, Martin Wenish (pull request by měl obsahovat změny pouze ve složce
content
, viz sekce Změna infrastruktury)
- jakmile bude pull request schválen (přijde Ti to emailem), klikni na zelené tlačítko v pull requestu "Rebase and Merge"
Cesta k souboru kopíruje strukturu repozitáře, tedy soubor content/prirucka.pdf
bude k dispozici na adrese data.cesko.digital/prirucka.pdf
.
Distribuce na data.cesko.digital umožňuje vracet obrázky s jinou požadovanou šířkou. Stačí zavolat URL https://data.cesko.digital/resize.
Funkce má následující query parametry:
src
povinný parametr - relativní adresa k obrázku (origin je natvrdo nastaven na data.cesko.digital)width
povinný parametr - požadovaná výsledná šířka obrázku (poměr stran je zachován)
Příklad výsledného volání: https://data.cesko.digital/resize?src=/img/show-and-tell-1.png&width=500
Součástí definice infrastruktury je i bucket pro automatizovaná data jako je např. derisking-handbook.
Nahrávání do tohoto bucketu je řešeno odděleně, ale požadavek je přesměrován na tento "automatizovaný bucket" pokud soubor není nalezen v primárním bucketu.
Pro nastavení AWS S3 a Cloudfront lze využít Terraform konfiguraci.
Nejprve je nutné spustit lokálně terraform apply
pro tuto část:
provider "aws" {
region = "eu-central-1"
}
resource "aws_s3_bucket" "infrastructure_bucket" {
bucket = "cd-assets-infrastructure"
acl = "private"
}
Potom spustit terraform init
pro přidanou část:
terraform {
backend "s3" {
bucket = "cd-assets-infrastructure"
key = "terraform.tfstate"
region = "eu-central-1"
}
}
Pak už stačí nastavit tyto GitHub secrets a zbylá infrastruktura bude nasazena pomocí GitHub Action:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
DISTRIBUTION_ID
(Bude vygenerováno pomocí Terraform)DOMAIN
SSL_CERTIFICATE_ARN
(Nutné vygenerovat pomocí AWS Certificate Manager)
Veškeré změny infrastruktury by měly probíhat odděleně od změn obsahu. Tedy nejprve vytvořit pull request se změnou konfigurace infrastruktury, počkat na aplikování a poté vytvořit nový pull request pro obsah.
Konfigurace AWS a zdroje pro synchronizaci jsou zveřejněny pod licencí MIT. Na obsah ve složce content
se může vztahovat jiná licence.
Tech leads: Tomáš Znamenáček, Martin Wenisch