t_cal
Version, currently main branch1 version
- main branchlatestOct 21, 2026
github.com/digitalcora/t-cal
Calendar of planned disruptions on MBTA rapid transit
Installation
# Add this to your shard.yml
dependencies:
t_cal:
github: digitalcora/t-cal
branch: mainmain is a branch, not a release, so this tracks it rather than pinning a version.
Then run:
shards installshard.yml
- Crystal
~> 1.16.0- License
- MIT
- Author
- Cora Grant
- Targets
amebafrom lib/ameba/bin/ameba.crserverfrom src/main.crraven.crash_handlerfrom lib/raven/src/crash_handler.cr
Dependencies
Runtime Dependencies
- markd~> 0.6.0github: icyleaf/markd
- raven*github: Sija/raven.cr, branch: master
- tasker~> 3.1.0github: spider-gazelle/tasker
- memory_cache~> 0.4.1github: kostya/memory_cache
Development Dependencies
- ameba~> 1.7.0github: crystal-ameba/amebadev
README
TCal
A calendar of planned service disruptions on MBTA rapid transit, provided as a web page and an iCal feed. See the live site at: https://tcal.digitalcora.net
Setup
Install Crystal using a supported method for your operating system.
The currently-used version is declared in .tool-versions, but using e.g.
asdf to install it is not recommended,
since it may not install the system-level packages Crystal depends on.
Development
- Run the server:
shards run server - Generate docs:
crystal docs(then opendocs/index.html) - Lint the code:
shards run ameba
Production
To build a standalone binary bin/server:
shards build server --production --release --static
The current production instance runs on Fly, using the
fly.toml included in the repo.
Configuration
The server supports these environment variables:
-
HOST— The network address to listen on. Default value is127.0.0.1, meaning the server will only be accessible from localhost. Use0.0.0.0to listen on all addresses. -
PORT— The TCP port to listen on. Default value is8080. -
ORIGIN— The canonical origin (scheme + host + optional port) of the site. When a request includes aHostand it is not the canonical origin's host, it will be redirected to the same path at the canonical origin. Default value ishttp://localhostplus the configuredPORT. -
LOG_LEVEL— The log level. Default value isinfo. See theLogdocumentation for valid log levels. -
LOG_TIME— If set totrue, logs are prefixed with timestamps. Default value istrue. -
SENTRY_DSN— If set, unhandled exceptions will be reported to Sentry. -
SENTRY_ENVIRONMENT— The environment string used for Sentry reports, if enabled. Default value isdefault.
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This branch
- Branch
main- Seen
- Oct 21, 2026
- Crystal
~> 1.16.0- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/digitalcora/t-cal
Metadata
- Created
- Aug 12, 2026
- Updated
- Oct 22, 2026
- Synced
- Oct 22, 2026
- Versions
- 1