/planet_ex

:books: Blog aggregator

Primary LanguageElixirGNU Affero General Public License v3.0AGPL-3.0

PlanetEx

CircleCI

PlanetEx is an Elixir application for aggregating employee and SharePoint blogs.

Getting started

Prerequisites

You'll need to install the following dependencies first:

Installing

If you have asdf installed, simply run asdf install in the root directory.

Run the bootstrap script to install the remaining dependencies and create your development database:

$ cd planet
$ bin/setup

To run the server: mix phx.server.

Running the tests, formatter, and linter

$ mix verify

==> mix format --check-formatted
==> mix credo
==> mix test.all

Releasing and Deployment

PlanetEx uses Distillery and Docker to build Erlang releases targeted for Ubuntu.

Prerequisites

  • Docker
  • Server provisioned with the following
    • Postgres 10
      • Can be hosted on the same machine as the release or seperately.
    • xvfb
    • Google Chrome
    • ChromeDriver

Release

  • bin/docker-build - builds your Docker container.
    • You only need to do this once.
  • bin/release - builds your Distillery release.
    • Build artifacts are located in /rel/artifacts

Deployment

Environment Variables

Required
  • PORT
  • DOMAIN
  • POOL_SIZE
  • SECRET_KEY_BASE
    • Can be generated using mix phx.gen.secret
  • DATABASE_URL
Optional
  • SHAREPOINT_CREDS
    • In order to aggregate blogs from protected SharePoint sites, you must supply credentials in the form of username:password

Deliver to remote host

  • scp rel/artifacts/<your release> user@host:/path/to/release - Move release tar ball to the server.
  • tar -xvf /path/to/release - unpack the release.

Start the server

  • /path/to/release/bin/yourapp start - start the server in the background as a daemon
    • To stop the server - /path/to/release/bin/yourapp stop or
  • /path/to/release/bin/yourapp foreground - start the server in the foreground (analogous to mix phx.server)

Database migrations

PlanetEx comes with a migration release task.

On the remote server, run /path/to/release/bin/yourapp migrate []

Built With

Contributors


Powered by SEP logo

PlanetEx is supported by SEP: a Software Product Design + Development company. If you'd like to join our team, don't hesitate to get in touch!