README.md
June 29, 2026 ยท View on GitHub
View of all repositories on Github and Gitlab that have Crystal code in them.
Installation
- Install Crystal
- Clone this repository
- Install dependencies
shards install - Rename
.env.exampleto.env, and set variables. - Run Web server as
crystal src/web.cr
Development
psql -c 'CREATE DATABASE shards_info_development;' -U postgres
crystal src/cli.cr migrate
Database Operations (Makefile)
We use a Makefile to automate database schema dumps and restoration. Available commands:
Dump database schema and migrations
make db-dump
This dumps both the schema and migration metadata (__lustra_metadatas table) into src/db/structure.sql.
Dump schema only
make db-dump-schema
Dump migrations metadata only
make db-dump-migrations
Restore from dump
make db-restore
Using a different database
make db-dump DB_NAME=your_database_name
make db-restore DB_NAME=your_database_name
View all available commands
make help
Frontend
Install depencencies:
npm install
After modifications run npm run build, npm run oxlint, and npm run oxfmt.
Specs
Specs create and migrate their own PostgreSQL test database via spec/initdb.cr.
The default connection settings are:
DATABASE_URL=postgres://postgres:postgres@localhost/shards_info_test
POSTGRES_HOST=localhost
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=postgres
Redis must also be running locally for cache/session/Mosquito/Defense dependencies. The app uses these defaults in test:
REDIS_URL=redis://localhost:6379/0
SESSION_REDIS_URL=redis://localhost:6379/1
MOSQUITO_REDIS_URL=redis://localhost:6379/2
DEFENSE_REDIS_URL=redis://localhost:6379/3
Run specs with:
KEMAL_ENV=test crystal spec
To only recreate the test database:
KEMAL_ENV=test crystal spec/initdb.cr
Special thanks
- Crystal language
- Lustra - Advanced ORM between PostgreSQL and Crystal
- Kemal - Web microframework for Crystal
- Mosquito - A generic background task runner for Crystal applications
- raven.cr - Crystal client for Sentry
- cr-cmark-gfm - Crystal C bindings for cmark-gfm
- noir - Syntax Highlight Library for Crystal
- Logo icon taken from Game Icons pack under CC BY 3.0 license.
Contributing
- Fork it (https://github.com/mamantoha/shards-info/fork)
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Contributors
- mamantoha Anton Maminov - creator, maintainer