Přeskočit obsah

Nastavení serveru

Je možné změnit Open Web Calendar pro vlastní potřeby. Můžete si vybrat

  • Změnit jak vypadá základní kalendář.
  • Změnit nastavení serveru.

Nastavení základního kalendáře

Konfigurace všech kalendářů vychází z [default_specification.yml]. Všechny tyto hodnoty mohou být změněny skrze kopii tohoto souboru na hostovaném webu skrze parametr kalendáře specification_url. Každý parametr by měl být zdokumentován v [default_specification.yml].

Chcete-li upravit všechny kalendáře hostované na vaší instanci, použijte proměnnou prostředí OWC_SPECIFICATION. Kalendáře stále přepíšou některé hodnoty pro jejich konfiguraci. Ty, které nejsou přepsány jsou ovlivněny výchozí specifikací. Ne všechny hodnoty jsou dostupné na stránce konfigurace. Tyto hodnoty lze změnit v specification_url a pomocí parametrů požadavků.

Můžete změnit následující hodnoty.

title

Název Vašeho webu.

language

Toto je výchozí jazyk. Pro lepší zpřístupnění konfigurační stránky místním uživatelům lze změnit.

favicon

Zde je odkaz na ikonu webu.

source_code

Pokud jste provedli změny, jste ze zákona povinni je sdělit návštěvníkům. Prosím, upravte odkaz, nebo je přispějte zpět do hlavního projektu.

contributing

Pokud chcete přesměrovat na příspěvek pro Váš projekt.

privacy_policy

Pokud službu hostujete sami, můžete použít výchozí zásady ochrany osobních údajů.

Pokud z nějakého důvodu se rozhodnete shromažďovat data, tj. v HTTPS proxy nebo uchovávat IP adresy, musíte vytvořit vlastní zásady ochrany osobních údajů. Můžete odkazovat na jeden z těchto projektů.

Více hodnot

Je plno velké množství které lze změnit. Postupujte podle default_specification. Tyto hodnoty jsou všechny zdokumentovány. Používejte proměnnou prostředí OWC_SPECIFICATION pro jejich změnu.

Viz také:

Konfigurace serveru

Proměnné prostředí ovlivňují pouze chod serveru. Tyto proměnné prostředí mohou být použity pro konfiguraci služby:

ALLOWED_HOSTS

default empty

Klienti, oddělení čárkami, kteří mají přístup k Open Web Calendar. Tento text uvidíte, pokud se pokusíte získat přístup k službě a nejste oprávněni:

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

Příklady:

  • povolit pouze stejný počítač: ALLOWED_HOSTS=localhost
  • povolit několik hostitelů: ALLOWED_HOSTS=192.168.0.1,192.168.2,api.myserver.com
  • povolit každému přístup k serveru (výchozí): ALLOWED_HOSTS= nebo ALLOWED_HOSTS=*

Tato funkce je poskytována flask-allowed-hosts.

PORT

default 5000, default 80 v Docker kontejneru

Port, na kterém služba běží.

Příklady:

  • Poskytovat na HTTP portu: PORT=80

OWC_SPECIFICATION

OWC_SPECIFICATION je volitelná proměnná prostředí.

  • Může být cesta do souboru obsahující platné YAML nebo JSON.
  • Může to být string obsahující platné YAML nebo JSON.

Nastavení OWC_SPECIFICATION umožňuje nahradit výchozí hodnoty pro všechny kalendáře.

Poznámka

Nové verze Open Web Calendar mohou přidávat nové konfigurační parametry. Uvedení změn v této proměnné namísto změny souboru default_specification zajistí, že v budoucí verzi bude Open Web Calendar funkční.

V následujícím příkladu se změní název pro všechny kalendáře, které nemají svůj vlastní titul.

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

Viz také:

WORKERS

default 4, pouze pro Docker kontejner

Počet paralelních procesů pro zpracování požadavků.

Příklady:

  • Použít pouze jeden proces: WORKERS=1

CACHE_REQUESTED_URLS_FOR_SECONDS

default 600

Kolik sekund jsou v cache kalendáře stažené soubory, pro snížení šířky pásma a zpoždění.

Příklady:

  • Rychle obnovit: CACHE_REQUESTED_URLS_FOR_SECONDS=10

APP_DEBUG

default false, hodnoty true nebo false, vždy false v Docker kontejneru

Nastavte přepínač ladění pro aplikaci.

OWC_ENCRYPTION_KEYS

default empty

Jedná se o čárkou oddělený seznam šifrovacích klíčů. To lze použít k skrytí citlivé informace v URL.

Příklady:

  • Zakázat šifrování (výchozí): OWC_ENCRYPTION_KEYS=
  • Použít jeden klíč: OWC_ENCRYPTION_KEYS='Pj...48='
  • Použít více klíčů: OWC_ENCRYPTION_KEYS='Pj...48=,cx...Fw=' Pokud používáte více klíčů, pouze první zašifruje data. Ostatní se používají pouze k dešifrování dat.

Můžete vygenerovat nový klíč navštívením své instance Open Web Calendar na stránce /new-key nebo spuštěním tohoto příkazu:

python3 -m open_web_calendar.new_key

Viz také:

Další konfigurace

Open Web Calendar využívá knihovny, jejichž chování lze hlouběji přizpůsobit.

Open Web Calendar se spoléhá na proxy servery pro tyto funkce:

  • ** Řízení přístupu a uživatelé** Chcete-li omezit, kdo může použít Open Web Calendar, můžete použít nginx nebo apache jako reverzní proxy. YuNoHost je další volba vlastního hostingu pro omezení přístupu.
  • ** HTTPS Šifrování** To lze zavést pomocí nginx, apache nebo caddy.
  • Pokročilý caching Základní caching je spravován v rámci Open Web Calendar. Pro pokročilou konfiguraci cache použijte proxy server jako squid. Podívejte se na dokumentaci níže, jak vytvořit Open Web Calendar s přístupem na web pouze prostřednictvím proxy.
  • Omezení přístupu k kalendářům Ve výchozím nastavení Open Web Calendar neomezuje, které kalendáře jsou zobrazeny. Použijte proxy server pro filtrování kalendářů. Pokud spustíte Open Web Calendar přes firewall s jinými webovými službami, nastavení proxy je nutné pro chranu před útoky SSRF.

Ochrana SSRF s proxy serverem

Open Web Calendar lze použít pro přístup k místní síti za firewallem, viz Issue 250. Tento volný přístup je určen pro zobrazení kalendáře odevšad. Vzhledem k tomu, že je použit requests v Open Web Calendar, může být proxy použita, jak je popsáno v requests dokumentaci. Proxy může potom provést filtrování.

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"

Viz také:

Squid jako proxy server

Squid Proxy a cache je flexibilní a konfigurovatelný. Můžete jej použít s Open Web Calendar pro konfiguraci přístupu a přizpůsobení cachingu.

Operační systém

Squid je dostupný pro všechny hlavní platformy. Pro příkazy a cesty tohoto návodu předpokládáme, že Squid běží na Debain/Ubuntu. Příkazy mohou pracovat na jiných systémech, ale to není testováno.

Poté, co jste nainstalovali Squid proxy, přidejte tento soubor do adresáře conf.d. Squid jej automaticky načte.

V Linuxu vytvořte /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

Seznam výše odpírá Open Web Calendar přístup ke všem známým lokálním/interním sítím. Pokud máte vlastní lokální síť (IPv4 nebo IPv6), přidejte jej do seznamu výše.

Na Linuxu můžete nainstalovat soubor tímto příkazem:

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

Poté restartujte squid proxy.

sudo service squid reload

Nastavte proměnné prostředí, které donutí Open Web Calendar použít Squid proxy nainstalováno na localhost. Nastavení této proměnné se mění v závislosti na tom, jak provozujete Open Web Calendar.

Pokud používáte Python nastavení, můžete nastavit proměnné prostředí pro server následně:

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

Když se pokusíte přistupovat k zakázanému kalendáře s lokálním open-web-calendar, např., http://172.16.0.1/calendar.ics, uvidíte tuto chybovou zprávu:

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