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=
aleboALLOWED_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é.
- Flask má **Viac premenných prostredia ** k dispozícii na konfiguráciu, ako aplikácia slúži obsahu.
- Requests sa používa dostať
.ics
súbory. Môžete configure a proxy.
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
aleboapache
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
alebocaddy
. - 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