skeleton

Version, currently main branch1 version
  • main branchlatestJan 19, 2023

github.com/BrainSprout/athena-skeleton

BrainSprout skeleton for Athena projects

0 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  skeleton:
    github: BrainSprout/athena-skeleton
    branch: main

main is a branch, not a release, so this tracks it rather than pinning a version.

Then run:

shards install

shard.yml

Crystal
~> 1.6
License
MIT
Targets
  • server from src/server.cr
  • console from src/console.cr

Dependencies

Runtime Dependencies

  • pg0.26.0github: will/crystal-pg
  • athena*github: athena-framework/framework, commit: 726ee942afd02de3afd6e461d35a3e28277b54e4
  • carbon*github: luckyframework/carbon
  • crecto*github: Crecto/crecto, branch: master
  • dotenv~> 1.0.0github: gdotdesign/cr-dotenv
  • carbon_smtp_adapter*github: luckyframework/carbon_smtp_adapter, branch: master

Development Dependencies

  • ameba~> 1.3.0github: crystal-ameba/amebadev
  • micrate*github: amberframework/micratedev
  • athena-spec~> 0.3.0github: athena-framework/specdev

README

BrainSprout Skeleton

A quick and dirty app skeleton for the Athena Framework, which includes:

  • A flexible directory structure
  • Pre-configured binary entrypoints for HTTP and CLI contexts
  • Development code-quality/testing dependencies + CI
  • Minimal runnable Athena Framework application
  • Dotenv for local development
  • Database integration via Crecto
  • Carbon for sending emails

Getting Started

  1. Generate a new repository using this template.
  2. Run shards install
  3. Rename MyApp module within src/main.cr to your desired name
  4. Rename skeleton shard name within shard.yml to your desired name
  5. Update ./LICENSE with your desired name/email
  6. Start creating your application!

Entrypoints

The template repository includes build targets for both the HTTP and CLI contexts. Or in other words, ./bin/console and ./bin/server binaries are created by running shards build. This makes it easy to deploy both parts of the application independently from one another.

TIP: The shards run command may be used during development to interact with each target. E.g. shards run server to start the server and shards run console -- debug:router to execute console commands.