Skip to content

viatsko/lyn

Repository files navigation

Lyn

Build Status Dependency Status devDependency Status Hex Version Hex docs PayPal donate button

DEVELOPMENT IS IN PROGRESS. If you have ideas, suggestions, questions, please join #lyn slack channel in Elixir's slack (read about chat below)

This is an Elixir CMS. Aims to be the great open-source ecommerce and/or startup solution for those who are searching for a performance and stability on top of modern technologies like React and Elixir.

In order to run, Lyn requires Elixir 1.2 or higher, PostgreSQL 9.4 or higher and NodeJS 4 or higher.

Please check ROADMAP on progress.

Introduction

Lyn is a CMS written in Elixir. It combines CRUD and Object Tree models, which means that all of the site structure in kept in single tree of objects and provides Flux-like API backend, while you still can use CRUD for building REST-API for admin panels or providing ability of editing stuff easily in the front-end.

Elixir is chosen as the back-end language because of speed and hot-load. I strongly believe Elixir is the future of CMS building.

Features

  • React Server-Side render using heavily modified Reaxt source-code under the hood

Before You Begin

Before you begin we recommend you read about the basic building blocks that assemble a Lyn application:

Quick Install

  • Install dependencies with mix deps.get
  • Create and migrate your database with mix ecto.create && mix ecto.migrate
  • Install Node.js dependencies with npm install

The last step might take a very long time since we are using some dependencies from github (like Bootstrap 4).

Configuration

You can create #{ENV}.config.exs files in config/ directories, they will be included after running initial config files: config.exs and #{ENV}.config.exs.

Running

Start Phoenix endpoint with mix phoenix.server

Now you can visit localhost:4000 from your browser.

Notice currently I didn't include scripts to install starter database, but make sure you at least created some languages in admin panel (/admin/languages) before working with objects tree. Installation scripts coming soon once object tree will be ready.

Deploying

Ready to run in production? Please check Phoenix Framework deployment guides.

SSL/TLS

Use scripts/generate-ssl-certs.sh to generate self-signed certificate if you need to.

In config/prod.exs you will find an example with :https directive, uncomment it and put there paths to your certificates as well as intermediate certificate if you have one.

FAQ & Chat

This project moves fast and has an active community, so if you have a question that is not answered below please visit #lyn channel on Elixir-lang Slack or file an issue.

Contributing

I am more than happy to accept external contributions to the project in the form of feedback, bug reports and even better - pull requests.

If you would like to submit a pull request, please make an effort to follow the guide in CONTRIBUTING.md.

Credits

Main author and active maintainer is Valerii Iatsko, feel free to follow:

Based on some code from these projects:

License

MIT