aboutsummaryrefslogtreecommitdiff

λύω-trainer

A simple app to practice the Ancient Greek verbal system.

See luo.camilstaps.nl

Installation

git clone https://git.camilstaps.nl/clone/luo-parsetrainer.git
cd luo-parsetrainer
composer install
npm ci
npm run dev

Configuration

First, create a MySQL database and a user that can connect to it. In this example, we'll use luo_db, luo_user and luo_pass.

Create a .env file in the root directory with at least the following options:

APP_ENV=production
APP_DEBUG=false
APP_KEY= # a 32-char random string
APP_URL=https://example.org/luo/ # e.g., use your own URL here

APP_LOCALE=en
APP_FALLBACK_LOCALE=en

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=luo_db
DB_USERNAME=luo_user
DB_PASSWORD=luo_pass

CACHE_DRIVER=memchached
SESSION_DRIVER=memcached
QUEUE_DRIVER=database

Return to the root directory and run:

php artisan migrate --seed

Nginx

You need to enable PHP and redirect everything to server.php. Configuration on the root of a site is straightforward:

server {
    listen [::]:80;
    server_name myhostname;
    root /.../luo;
    index index.php index.html index.htm;
    charset utf-8;

    location / {
        autoindex off;
        try_files $uri $uri/ /server.php$is_args$query_string;
    }

    location ~ \.php$ {
        # whatever you do to make PHP work
    }

    location ~ /\. {
        deny all;
    }
}

In a subdirectory, we need to enforce trailing slashes and do some special things. This configures nginx to handle the trainer from /luo/:

server {
    listen [::]:80;
    server_name myhostname;
    root /...;
    index index.php index.html index.htm;
    charset utf-8;

    rewrite ^([^.]*[^/])$ $1/ permanent;

    location ~ ^/luo/(.*)\.php$ {
        try_files $uri $uri/ /luo/server.php$is_args$query_string;

        # whatever you do to make PHP work
    }

    rewrite /luo/?$ /luo/public/index.php;
    location /luo {
        try_files $uri $uri/ /luo/server.php$is_args$query_string;
    }

    location / {
        autoindex off;
    }

    location ~ /\. {
        deny all;
    }
}

License

Copyright 2015–present Camil Staps. Licensed under GPL v3.0, see the LICENSE file.

This project uses the SBL Greek font which is licensed under the SBL Font User Agreement.