Fantasy-Calendar is a general-purpose fantasy calendar creation and tracking software.
Well, whether you're a GM looking to track the events of a long-running Forgotten Realms campaign, an author, or simply a world-builder who likes to have wacky celestial configurations (Such as Eberron's 12 moons) with zany timekeeping systems to match, you probably need a calendar of some kind.
"Game time is of utmost importance [...] you can not have a meaningful campaign if strict time records are not kept."
-Gary Gygax
Fantasy-Calendar seeks to do it all, whether you're creating your own complicated calendar with tons of interesting edge-cases, or using presets such as the Forgotten Realms, Eberron, or Exandria for simple time-keeping.
We recommend development using Docker, as it's what we use and it makes things like setting up the PHP environment a breeze. As long as you already have Docker installed, actually getting up and running is pretty straightforward. First you'll want to run:
$ makeThat runs the default initialize_dev entry in FC's Makefile, which:
- Copies the default .env to the appropriate location
- Builds all of FC's container images
- Installs
npmdependencies - Installs
composerdependencies - Starts docker containers
- Runs
artisan migrate - Stops docker containers
We've also provided a handy aliases.sh to make some common tasks/aliases/etc., easier. So, after you've run make, we recommend source aliases.sh. I'd list all the aliases here, but ... just go read the file, it's super straightforward.
The default docker-compose up will create quite a few containers:
| Container | Purpose |
|---|---|
fc-mariadb |
MariaDB, configured to create a default database . |
fc-bref-web |
nginx web server, configured to appropriately. |
fantasy_calendar_php |
An extended php-fpm with PDO and composer installed, as well as some default environment variables for a docker setup. |
selenium |
This is a headless Chrome install used for integration tests |
fcredis |
A Redis container, used for caching and queues |
fantasy-calendar-composer-install |
This is a once-run, randomly-named container that does one thing: runs composer install . This makes it so that running a simple docker-compose up or docker-compose up -d any time you pull the latest version of this repo will make sure you have the latest versions of any composer-managed packages. |
npm |
This runs npm run dev-install-watch, which installs deps and automatically rebuilds assets as they change. |
mailhog |
Available on localhost:8025, Mailhog captures outgoing mail. |
If everything has gone smoothly, after make and docker-compose up, you should have a functional development environment available at http://localhost:9980/.
Fantasy Calendar is just a Laravel app. So you'll need the usual installation process for a Laravel application, along with two extra PHP extensions: imagick and gmp.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.