viatsko / lyn

Lyn: The Elixir CMS
https://hex.pm/packages/lyn
MIT License
89 stars 18 forks source link

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

Before You Begin

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

Quick 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