GithubHelp home page GithubHelp logo

vinefiner / feather Goto Github PK

View Code? Open in Web Editor NEW

This project forked from feathercms/feather

0.0 0.0 0.0 5.08 MB

Feather is a modern Swift-based content management system powered by Vapor 4.

Home Page: https://theswiftdev.com

License: Other

Swift 91.74% Makefile 8.26%

feather's Introduction

Feather CMS

Feather CMS 🪶

Feather is a modern Swift-based content management system powered by Vapor 4.

Requirements

To use Feather it is recommended to install Swift 5.3 or greater.

If you need help installing Swift, then you should follow the instructions on swift.org.

Installation

  • Clone or download the source files.
git clone https://github.com/BinaryBirds/feather.git
  • Setup the .env.development file using the make env command or config the following values by hand:
# the base url of your web server
BASE_URL="http://localhost:8080"

# the base path (absolute) of the working directory
BASE_PATH="/path/to/feather/" 
  • Run the make run command from the project directory (aka. working directory).

Using Xcode

  • Make sure that you open the project by double clicking the Package.swift file.
  • Set the custom working directory for the Run scheme to the root of the project directory.
  • If needed setup a post-action script to automatically shut-down previous server instances.
  • Build and run the project as usual and enjoy your Feather powered site.

Configuration

Using nginx as a reverse proxy

Setup nginx as a reverse proxy server.

If you prefer nginx as a static file server for your public files, you can disable the file middleware inside the configure.swift file.

Please note that nginx is the preferred way of hosting Feather-based apps.

Database drivers

By default Feather uses the SQLite driver, but it is possible to use PostgreSQL, MySQL (MariaDB) or even MongoDB as your database through the Fluent framework.

You should follow the instructions using the official Vapor docs to setup the right driver, but please note that the preferred drivers are PosgreSQL and SQLite for really small projects and development purposes.

File storage drivers

The Liquid framework is an abstract file storage library that works with a local file storage driver, but it is also possible to use Amazon S3 as a cloud-based solution.

You can replace the default local driver with the S3 driver, which is powered by the Soto for AWS SDK.

Modules

Feather is a modular CMS system, this means that you can add new modules as Swift Package dependencies and build custom ones using the Feather Core framework.

Feather core gives you just a few standard modules that you can also disable (e.g you only need an API, without web frontend or admin interface), but it is recommended to keep them around.

  • System - This module is responsible for the system functionalities.

  • Menu - This module is responsible for the standard menu system.

  • User - This module is responsible for user authentication.

  • Api - This module is responsible for the API endpoints.

  • Admin - This module is responsible for the web-based admin interface.

  • Frontend - This module is responsible for the web-based frontend layout including page contents.

Every other module can be completely removed (just alter the SPM dependency & configuration file), feel free to build your own configuration for your needs.

Using Feather CMS

Admin credentials

You can log in to the admin interface using the [email protected] & FeatherCMS account. For security reasons, please change the default email & password using the admin user menu ASAP.

Feather modules

There is an official GitHub organization.

The following Feather modules are currently available:

  • Redirect - This module is responsible for dynamic URL redirects.
  • Blog - This module is responsible for providing a simple blog platform.
  • Static - This module is responsible for the displaying static pages.
  • Markdown - This module is responsible for displaying markdown via a content filter.
  • Swifty - This module is responsible for Swift related syntax highlights using a content filter.
  • Sponsor - This module is responsible for displaying a sponsorship box.
  • Analytics - This module is reponsible for providing basic analytics for Feather.

Feel free to build & share your own modules to extend the functionality of the core system.

Contributions and support

Feather is an open source software and your contributions are more than welcome.

If you wish to make a change, please open a Pull Request.

Please don't hesitate to send your feedbacks, thoughts and ideas about Feather.

Known issues

Bcrypt segfault (running from cli using Swift 5.2 & macOS)

When running the app using the command line under macOS Catalina & Swift 5.2 the install process fails with a segmentation fault error. Some users were able to install the system, but the login method caused the exact same error message, these issues are related to a Swift bug.

Please check this issue for more details.

Debugging Feather

If you see a Segmentation fault: 11 error or something similar, you can start the server through the lldb debugger to find out the reason.

lldb ./.build/debug/Run
process launch serve

# print backtrace
bt
# look up a symbol
image lookup -a 0x1000 

Start the debugger and launch the serve command. Then try to repeat the steps that caused the crash. You can print out the backtrace using the bt command, this can help you to identify the problem.

Credits

License

WTFPL

feather's People

Contributors

clsource avatar ledenmcleden avatar macintosh-hd avatar matthofmann avatar mcritz avatar tib avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.