Skip to content

Server Configuration

If you want to change the Open Web Calendar to serve your needs, this is well possible. You can choose to

  • Change how the default calendar looks.
  • Change how the server works.

Configuring the Default Calendar

The configuration of all calendars is rooted in the default_specification.yml. All those values can be changed through a copy of this file hosted on the web through the calendar parameter specification_url. Each parameter should be documented in default_specification.yml.

If you modify the default specification, you modify all calendars that are hosted at your instance. Calendars still override some values for their configuration. Those which they do not override are affected. Not all values are exposed to the configuration page to be changed. Those values can still be changed in the default_specification.yml and the query parameters.

You might want to change the following values.

title

The title of your website.

language

This is the default language. You might want to change this to serve the configuration page better to a local audience.

favicon

This is a link to the website icon.

source_code

If you made changes, you are legally required to disclose them to visitors. Please adjust the link or contribute them back to the main project.

contributing

If you want to redirect to contribute to your project.

privacy_policy

If you host this service yourself, you can use the default privacy policy.

If for some reason you decide to collect data i.e. in the HTTPS proxy or log IP-addresses, then you need to create your own privacy policy. You can link to the one of this project.

More Values

There are loads more values that can be changed. Please refer to the default_specification.yml. These values are all documented.

See also:

Configuring the Server

Environment variables only influence the running of the server. These environment variables can be used to configure the service:

ALLOWED_HOSTS

default empty

The hosts divided by comma that the Open Web Calendar permits. This is required to mitigate the Host Header Injection vulnerability.
You will see this text if the host is not allowed:

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

Examples:

  • permit one host: ALLOWED_HOSTS=localhost
  • permit several hosts: ALLOWED_HOSTS=open-web-calendar.hosted.quelltext.eu,192.168.0.42
  • permit all hosts (vulnerable): ALLOWED_HOSTS=

PORT

default 5000, default 80 in the Docker container

The port that the service is running on.

Examples:

  • Serve on HTTP port: PORT=80

WORKERS

default 4, only for the Docker container

The number of parallel workers to handle requests.

Examples:

  • Only use one worker: WORKERS=1

CACHE_REQUESTED_URLS_FOR_SECONDS

default 600

Seconds to cache the calendar files that get downloaded to reduce bandwidth and delay.

Examples:

  • Refresh fast: CACHE_REQUESTED_URLS_FOR_SECONDS=10

APP_DEBUG

default true, values true or false, always false in the Docker container

Set the debug flag for the app.

Further Configuration

The Open Web Calendar uses libraries whose behavior can be further customized.

SSRF Protection with a Proxy Server

The Open Web Calendar can be used to access the local network behind a firewall, see Issue 250. This free access is intended to show calendars from everywhere. Since requests is used by the Open Web Calender, it can use a proxy as described in the requests documentation. The proxy can then handle the filtering.

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"

See also:

Comments