Fetches Cheshire East bin collection schedule for a Unique Property Reference Number (UPRN) and serves an auto-updating .ics
calendar at a public URL.
Disclaimer: This project is pulling data directly from Cheshire East from a non-public API, and may be unstable, or even disappear without notice.
To prevent abuse, there are a few built-in mechanisms to prevent needlessly hammering the upstream data source by default (do bin collections update that frequently?!)
You can find your Unique Property Reference Number (UPRN) in Cheshire East by following these steps:
- Use the
Address Finder
on the Cheshire East Public Map Viewer
- Search for your address, and note your UPRN
docker run -d -e UPRN="100012357047" -p 8080:8080 bbrks/cheshire-east-bin-collection-ics
-
Download the latest release binary
-
Run the service with your UPRN:
./cheshire-east-bin-collection-ics -uprn="100012357047"
-
Your public calendar URL will be logged on startup:
2019-05-28T23:32:32.614+01:00 [ALL] Serving calendar at http://[::]:8080/collections.ics 2019-05-28T23:32:34.334+01:00 [INF] req:1 <-- GET /collections.ics from [::1]:58626 2019-05-28T23:32:34.334+01:00 [INF] req:1 Fetching a fresh copy of data 2019-05-28T23:32:39.325+01:00 [INF] req:1 --> 200 (OK) in 4.991430799s 2019-05-28T23:32:42.235+01:00 [INF] req:2 <-- GET /collections.ics from [::1]:58660 2019-05-28T23:32:42.235+01:00 [DBG] req:2 Skipping update and serving data from cache 2019-05-28T23:32:42.237+01:00 [INF] req:2 --> 200 (OK) in 1.65305ms
-uprn="100012357047"
- Set the UPRN to fetch the collection schedule for
- This is intentionally not parameterised in the public URL, to prevent accidentally hosting a public service π
-updateInterval=24h
- Set how often the service looks for new data
- Range:
24h
to7d
-addr="0.0.0.0:1234"
- Change the listen address/port
There's a multi-stage dockerfile in the repo which will compile and produce a lightweight runnable image:
docker build -t cheshire-east-bin-collection-ics:latest .
With Go already installed, you can build a binary with the following command:
go build .
Issues, feature requests or improvements welcome!
This project is licensed under the MIT License.