Go to file
nek0 5521e1a01d first drafts 2016-11-27 16:46:42 +01:00
Handler wörk 2016-11-19 10:42:56 +01:00
Migrations version bump 2016-09-06 17:38:03 +02:00
Settings changed modes 2015-10-03 05:55:55 +02:00
app changed modes 2015-10-03 05:55:55 +02:00
config Fix #14 2016-10-23 03:26:30 +02:00
deploy changed modes 2015-10-03 05:55:55 +02:00
messages changed modes 2015-10-03 05:55:55 +02:00
src first drafts 2016-11-27 16:46:42 +01:00
static min width to 100% max! 2016-09-10 12:13:44 +02:00
templates Fix #14 2016-10-23 03:26:30 +02:00
tests changed modes 2015-10-03 05:55:55 +02:00
.gitignore first drafts 2016-11-27 16:46:42 +01:00
Application.hs making things work 2016-09-09 21:38:11 +02:00
Foundation.hs Merge branch 'about' 2016-09-09 21:42:54 +02:00
Helper.hs cleaning accepted types 2016-10-21 23:20:22 +02:00
Import.hs making things work 2016-09-09 21:38:11 +02:00
LICENSE.md changed modes 2015-10-03 05:55:55 +02:00
Makefile first drafts 2016-11-27 16:46:42 +01:00
Model.hs removing remnants 2016-09-06 17:30:41 +02:00
README.md unnneeded dependencies 2016-10-25 20:28:49 +02:00
Settings.hs making things work 2016-09-09 21:38:11 +02:00
bower.json first drafts 2016-11-27 16:46:42 +01:00
devel.hs changed modes 2015-10-03 05:55:55 +02:00
eidolon.cabal wörk 2016-11-19 10:42:56 +01:00

README.md

#eidolon

##Introduction

A image gallery service written in Haskell as a yesod webapp.

Visit the test instance at eidolon.nek0.eu

##Installation

###Dependencies

####Build dependencies

A working Haskell capable environment. For that you will need cabal-install, which you can install with:

sudo apt-get install cabal-install

Now you can set up your cabal with cabal update and follow its instructions. with this you will have also installed the latest GHC Haskell compiler on your system.

Additionally to Haskell and its dependencies you will need the following software and libraries:

  • alex
  • happy
  • libpq-dev
  • postgresql
  • libfftw3-dev

which can be installed through

sudo apt-get install alex happy libpq-dev postgresql

####Elasticsearch dependencies

WARNING: THIS SECTION IS ONLY VALID FOR VERSIONS >= 0.0.5 and < 0.1.0.0

Since version 0.0.5 there is an Elasticsearch integration for Eidolon. To Be able to run eidolon , you need to install elasticsearch additionally with:

sudo apt-get install elasticsearch

On how to configure your elasticsearch server, look into the elasticsearch documentation.

###Building

get the source with

git clone https://github.com/nek0/eidolon.git

build your sandbox with

cabal sandbox init

build the source with

cabal build

Everything should work automagically from there.

##Deploying

After compiling you will find an executable called eidolon in dist/build/eidolon/eidolon. Copy or link it anywhere you want. The executable needs to be accompanied by the folders config and static and their contents. It's best to copy them to your desired destination.

Also check config/settings.yml and set the values there accrding to your configuration. The field contactEmail is optional, you can comment it out, but be aware. In certain jurisdictions you are required to give some contact information.

It may also be necessery to create a reverse proxy to your gallery. I would recommend using nginx.

##Customizing

Unfortunately the gallery is not highly customizable, but you can change most of its appearance by changing the files static/css/main.css. Especially the default background image can be changed by replacing static/css/img/bg.jpg.

##Starting

You can start the gallery now by running the executable. You need to provide a settings file as argument, normally found in config/settings.yml

Since eidolon will block your console, I recommend wrapping a init-script around it. how you can do that is written in my blog.

##Migrations

###0.0.3-0.0.4

  • do not start or restart your eidolon service before migration
  • run migration script from your run location (where your static folder with all the images is located)
    • if you are building in a sandbox run runghc -package-db/full/path/to/sandbox/XXX-ghc-version-packages.conf.d /path/to/eidolon/Migrations/0.0.3-0.0.4/Migration.hs
      • Note: No space between the option -package-db and its argument
    • without sandbox: runghc /path/to/eidolon/Migrations/0.0.3-0.0.4/Migration.hs
  • start or restart your eidolon service

###0.0.4-0.0.5

  • run migration script from your run location (where your static folder with all the images is located)
    • if you are building in a sandbox run runghc -package-db/full/path/to/sandbox/XXX-ghc-version-packages.conf.d /path/to/eidolon/Migrations/0.0.4-0.0.5/Migration.hs
      • Note: No space between the option -package-db and its argument
    • without sandbox: runghc /path/to/eidolon/Migrations/0.0.4-0.0.5/Migration.hs
  • start or restart your eidolon service

###0.0.7-0.1.0.0

You have two options to accomplish the migration:

  1. Build the migration binary with cabal exec -- ghc --make Migrations/0.0.7-0.1.0.0/Migration.hs and run the executable in your run location.
  2. Link the static/data/ folder from your link location in the same location in the project directory and run cabal exec -- runghc Migrations/0.0.7-0.1.0.0/Migration.hs

###0.1.2.4-0.1.3.0

  • Stop Eidolon
  • Log into your database and issue this command: ALTER TABLE "comment" DROP COLUMN "author_slug";
  • Start Eidolon

##Acknowledgements: