Preskočiť na obsah

Konfigurácia servera

Ak chcete zmeniť Open Web Calendar slúžiť vašim potrebám, je to dobre možné. Môžete si vybrať

  • Zmeniť, ako vyzerá predvolený kalendár.
  • Zmeniť, ako funguje server.

Konfigurácia kalendára Default

Konfigurácia všetkých kalendárov je založená na default_specification. Všetky tieto hodnoty je možné zmeniť prostredníctvom kópie tohto súboru hostovaného na webe pomocou parametra kalendára specification_url. Každý parameter by mal byť zdokumentovaný v default_specification.

Ak chcete upraviť všetky kalendáre hostované na vašej inštancii, použite premennú prostredia OWC_SPECIFICATION. Kalendáre stále prepíšu niektoré hodnoty pre svoju konfiguráciu. Tie, ktoré neprepíšu, sú ovplyvnené predvolenou špecifikáciou. Nie všetky hodnoty sú zobrazené na konfiguračnej stránke na zmenu. Tieto hodnoty je stále možné zmeniť v specification_url a parametroch dotazu.

Možno budete chcieť zmeniť nasledujúce hodnoty.

title

Názov vašej webovej stránky.

language

Toto je predvolený jazyk. Možno ho budete chcieť zmeniť, aby sa konfiguračná stránka lepšie zobrazovala lokálnemu publiku.

favicon

Toto je odkaz na ikonu webovej stránky.

source_code

Ak ste vykonali zmeny, máte zo zákona povinnosť ich zverejniť návštevníkom. Upravte odkaz alebo ich vráťte späť do hlavného projektu.

contributing

Ak chcete presmerovať, aby ste prispeli k svojmu projektu.

privacy_policy

Ak túto službu hostujete sami, môžete použiť predvolené privacy policy.

Ak sa z nejakého dôvodu rozhodnete zhromažďovať údaje, napr. na HTTPS proxy alebo zaznamenávať IP adresy, musíte si vytvoriť vlastné zásady ochrany osobných údajov. Môžete odkazovať na zásady tohto projektu.

Viac hodnôt

Existuje oveľa viac hodnôt, ktoré je možné zmeniť. Pozrite si, prosím, default_specification. Všetky tieto hodnoty sú zdokumentované. Na ich zmenu použite, prosím, premennú prostredia OWC_SPECIFICATION.

Pozri tiež:

Konfigurácia servera

Premenné prostredia ovplyvňujú iba chod servera. Tieto premenné prostredia môžu byť použité na konfiguráciu služby:

ALLOWED_HOSTS

predvolené prázdne

Klienti oddelení čiarkou, ktorí majú povolený prístup k Open Web Calendar. Tento text sa zobrazí, ak sa pokúsite o prístup k službe a nemáte povolený prístup:

Forbidden: You don’t have the permission to access the requested resource. It is either read-protected or not readable by the server.*

Príklady:

  • povoliť iba ten istý počítač: ALLOWED_HOSTS=localhost
  • povoliť viacero hostiteľov: ALLOWED_HOSTS=192.168.0.1,192.168.2,api.myserver.com
  • povoliť prístup k serveru každému (predvolené): ALLOWED_HOSTS= alebo ALLOWED_HOSTS=*

Túto funkcionalitu poskytuje flask-allowed-hosts.

APP_DEBUG

predvolená hodnota false, hodnoty true alebo false, v kontajneri Docker vždy false

Nastaviť debug vlajku pre aplikáciu.

CACHE_ADRESÁR

predvolená hodnota je dočasný adresár (napr. v /tmp/)

Open Web Calendar ukladá súbory potrebné na zobrazenie kalendárov v tomto adresári do vyrovnávacej pamäte, aby sa urýchlilo načítanie. Ak adresár neexistuje, bude vytvorený.

CACHE_VEĽKOSŤ_SÚBORU

predvolené 20 (MB)

Toto je maximálna veľkosť jedného súboru vo vyrovnávacej pamäti. Keď je vyrovnávacia pamäť plná, najmenej naposledy použitý súbor sa odstráni.

Príklady:

  • Povoliť iba malé súbory s veľkosťou 4KB: CACHE_FILE_SIZE=0.004
  • Povoliť ľubovoľnú veľkosť: CACHE_FILE_SIZE="$CACHE_SIZE"
  • Zakázať ukladanie do vyrovnávacej pamäte: CACHE_FILE_SIZE=0

Veľkosť vyrovnávacej pamäte

predvolená hodnota 200 (MB)

Toto je maximálna veľkosť vyrovnávacej pamäte v megabajtoch. Táto veľkosť je obmedzená na 200 MB, aby sa zmiernilo zapĺňanie súborového systému vyrovnávacou pamäťou alebo v prípade /tmp/ aj pamäte RAM.

Príklady:

  • Použite 1 GB na ukladanie do vyrovnávacej pamäte: CACHE_SIZE=1024
  • Neobmedzená vyrovnávacia pamäť: CACHE_SIZE=neobmedzená
  • Zakázať ukladanie do vyrovnávacej pamäte: CACHE_SIZE=0

CACHE_REQUESTED_URLS_FOR_SECONDS

predvolená hodnota 600 (sekúnd)

Po druhé vyrovnávanie kalendárových súborov, ktoré sa stiahli na zníženie šírky pásma a oneskorenie.

Príklady:

  • Obnoviť rýchlo: CACHE_RESTED_URLS_FOR_SECONDS=10
  • Zakázať ukladanie do vyrovnávacej pamäte: CACHE_REQUESTED_URLS_FOR_SECONDS=0

OWC_ENCRYPTION_KEYS

predvolené prázdne

Toto je zoznam šifrovacích kľúčov oddelených čiarkami. Tieto kľúče možno použiť na skrytie citlivých informácií z adries URL.

Príklady:

  • Zakázať šifrovanie (predvolené): OWC_ENCRYPTION_KEYS=
  • Použite jeden kľúč: OWC_ENCRYPTION_KEYS='Pj...48='
  • Použitie viacerých kľúčov: OWC_ENCRYPTION_KEYS='Pj...48=,cx...Fw=' Ak použijete viacero kľúčov, dáta zašifruje iba prvý. Ostatné sa použijú iba na dešifrovanie dát.

Nový kľúč môžete vygenerovať návštevou vašej inštancie Open Web Calendar na stránke /new-key alebo spustením tohto príkazu:

python3 -m open_web_calendar.new_key

Pozri tiež:

OWC_SPECIFICATION

OWC_SPECIFICATION je voliteľná premenná prostredia.

  • Môže to byť cesta k súboru obsahujúcemu platný YAML alebo JSON.
  • Môže to byť reťazec obsahujúci platný YAML alebo JSON.

Nastavenie OWC_SPECIFICATION vám umožňuje nahradiť predvolené hodnoty pre všetky kalendáre.

Poznámka

Nové verzie Open Web Calendar môžu pridávať nové konfiguračné parametre. Umiestnením zmien do tejto premennej namiesto zmeny súboru default_specification zabezpečíte, že v budúcej verzii nebude Open Web Calendar poškodený.

V nasledujúcom príklade sa zmení názov všetkých kalendárov, ktoré nemajú nastavený vlastný názov.

OWC_SPECIFICATION='{"title": "calendar"}' gunicorn open_web_calendar:app

Pozri tiež:

PORT

predvolené 5000, predvolené 80 v kontajneri Docker

Prístav, na ktorom funguje služba.

Príklady:

  • Slúžiť na HTTP port: PORT=80

WORKERS

predvolené 4, len pre kontajner Docker

Počet paralelných pracovníkov na spracovanie požiadaviek.

Príklady:

  • Používajte iba jedného pracovníka: WORKERS=1

Ďalšia konfigurácia

Open Web Calendar používa knižnice, ktorých správanie môže byť ďalej prispôsobené.

Otvorený webový kalendár sa pri týchto funkciách spolieha na proxy servery:

  • Riadenie prístupu a používatelia Ak chcete obmedziť, kto môže používať Open Web Calendar, môžete pred ním použiť nginx alebo apache ako reverzný proxy server. YuNoHost je ďalšia možnosť vlastného hostingu na obmedzenie prístupu.
  • Šifrovanie HTTPS Toto je možné vykonať pomocou nástrojov nginx, apache alebo caddy.
  • Pokročilejšie ukladanie do vyrovnávacej pamäte Základné ukladanie do vyrovnávacej pamäte zabezpečuje Open Web Calendar. Pre pokročilejšiu konfiguráciu vyrovnávacej pamäte použite proxy server, ako napríklad squid. Pozrite si dokumentáciu nižšie, ako nastaviť Open Web Calendar na prístup k webu iba prostredníctvom proxy servera.
  • Obmedzenie prístupu ku kalendárom V predvolenom nastavení Open Web Calendar neobmedzuje, ktoré kalendáre sa majú zobrazovať. Na filtrovanie kalendárov použite proxy server. Ak spustíte Open Web Calendar za firewallom s inými webovými službami, nastavenie proxy servera je potrebné na ochranu pred útokmi SSRF.

Ochrana SSRF so serverom Proxy

Otvorený webový kalendár je možné použiť na prístup k lokálnej sieti za firewallom, pozri Problém 250. Tento bezplatný prístup je určený na zobrazenie kalendárov odkiaľkoľvek. Keďže Otvorený webový kalendár používa requests, môže použiť proxy, ako je popísané v dokumentácii requests. Proxy potom dokáže spracovať filtrovanie.

export HTTP_PROXY="http://10.10.1.10:3128"
export HTTPS_PROXY="http://10.10.1.10:1080"
export ALL_PROXY="socks5://10.10.1.10:3434"

Pozri tiež:

Squid ako proxy server

Proxy a vyrovnávacia pamäť Squid sú flexibilné a konfigurovateľné. Môžete ich použiť pred Open Web Calendar na konfiguráciu prístupu a prispôsobenie vyrovnávacej pamäte.

Operačný systém

Squid je dostupný pre všetky hlavné platformy. Pre príkazy a cesty v tomto návode predpokladáme, že používate Squid na Debiane/Ubuntu. Príkazy môžu fungovať aj na iných systémoch, ale to nie je testované.

Po nainštalovaní proxy Squid pridajte tento súbor do adresára conf.d. Squid ho potom automaticky načíta.

V Linuxe vytvorte súbor /etc/squid/conf.d/open-web-calendar.conf:

## Example rule to deny access to your local networks.
## Adapt to list your (internal) IP networks from where browsing
## should be allowed
acl owc_forbidden dst 0.0.0.1-0.255.255.255  # RFC 1122 "this" network (LAN)
acl owc_forbidden dst 10.0.0.0/8             # RFC 1918 local private network (LAN)
acl owc_forbidden dst 100.64.0.0/10          # RFC 6598 shared address space (CGN)
acl owc_forbidden dst 169.254.0.0/16         # RFC 3927 link-local (directly plugged) machines
acl owc_forbidden dst 172.16.0.0/12          # RFC 1918 local private network (LAN)
acl owc_forbidden dst 192.168.0.0/16         # RFC 1918 local private network (LAN)
acl owc_forbidden dst fc00::/7               # RFC 4193 local private network range
acl owc_forbidden dst fe80::/10              # RFC 4291 link-local (directly plugged) machines

## If the Open Web Calendar runs on another machine, not localhost (127.0.0.1),
## fill in the network or IP of that machine here and allow access from it.
acl owc_host src 127.0.0.1           # Allow Access to Squid from localhost (default)
# acl owc_host src 172.16.0.0/12     # Uncomment if you run the Open Web Calendar as a docker service

## Access from owc_host is allowed to all but forbidden networks
http_access allow owc_host !owc_forbidden

## Use IPv4 for DNS
## See https://superuser.com/a/1443889
dns_v4_first on

Vyššie uvedený zoznam zakazuje prístup služby Open Web Calendar ku všetkým známym lokálnym/interným sieťam. Ak máte vlastnú lokálnu sieť (IPv4 alebo IPv6), pre istotu ju pridajte do vyššie uvedeného zoznamu.

V systéme Linux môžete súbor nainštalovať pomocou tohto príkazu:

sudo wget -O /etc/squid/conf.d/open-web-calendar.conf https://raw.githubusercontent.com/niccokunzmann/open-web-calendar/master/docs/snippets/squid/open-web-calendar.conf

Potom reštartujte proxy server squid.

sudo service squid reload

Nastavte premenné prostredia tak, aby Open Web Calendar používal proxy Squid nainštalovaný na localhost. Nastavenie tejto premennej sa mení v závislosti od spôsobu spustenia Open Web Calendar.

Ak použijete Nastavenie Pythonu, môžete nastaviť premenné prostredia pre server takto:

export HTTP_PROXY="http://localhost:3128"
export HTTPS_PROXY="http://localhost:3128"
export ALL_PROXY="http://localhost:3128"
gunicorn open_web_calendar:app

Keď sa pokúsite získať prístup k zakázanému kalendáru pomocou lokálneho open-web-calendar, napr. http://172.16.0.1/calendar.ics, zobrazí sa táto chybová správa:

403 Client Error: Forbidden for url: http://172.16.0.1/calendar.ics