Aya Gemini Server

Aya is a simple Gemini server written in Crystal and released under the GNU Affero General Public License.

Wanna support Remilia? Buy me a coffee on Ko-Fi, or support me through Liberapay.

Buy Me a Coffee at ko-fi.com Donate using Liberapay

How do I get set up?

You will need Mercurial installed to clone this repository.

You will need Fossil installed to clone some of the dependencies for this repository. You will also need Shards v0.17.1 or later. If you have an earlier version of Shards, you will need to to build the latest version manually.

  1. Clone this repository
  2. Run shards (or shards --release for a release build). The binary will be in the bin/ directory.
  3. Create a configuration file by copying sample-config.yml and editing the copy. Note that Aya will automatically attempt load a file named /etc/aya/aya-config.yaml, otherwise you will need to use the --config parameter.
  4. Start Aya.

If you wish to install Aya in a system-wide way, check the INSTALL.md in the repository root.


Style info

I use a somewhat non-standard style for my code.

  • Keep lines 118 characters or shorter. Obviously sometimes you can't, but please try. Use 80 or 115 characters for Markdown files, though.
  • Please use pascalCase for variable and method names. Use CamelCase for type names. Use UPPER_SNAKE_CASE for constants.
  • Put parentheses around method parameters, except for these methods: puts, pp, p, raise, sleep, spawn, loop, and exit.
  • Always the full do |foo|...end syntax with blocks, except when it's all on one line or an anonymous function, then use { and } or the normal do |foo|...end.
  • The type name for exceptions end with Error. For example, ExternalProgramError.

How do I contribute?

  1. Go to https://osdn.net/users/yukiraven/pf/aya/ and clone the Mercurial repository.
  2. Create a new branch for your feature.
  3. Push locally to the new branch
  4. Create a ticket.


Links and Licenses

Aya is under the GNU Affero General Public License version 3.