diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 82 |
1 files changed, 65 insertions, 17 deletions
@@ -3,36 +3,36 @@ travelynx - Railway Travel Logger [travelynx](https://finalrewind.org/projects/travelynx/) allows checking into and out of individual trains, thus providing a log of your railway journeys -annotated with real-time delays and service messages. At the moment, it only -supports german railways and trains which are exposed by the Deutsche Bahn -[IRIS Interface](https://finalrewind.org/projects/Travel-Status-DE-IRIS/). +annotated with real-time delays and service messages. It supports german +railways and trains exposed by the Deutsche Bahn [IRIS +Interface](https://finalrewind.org/projects/Travel-Status-DE-IRIS/) as well as +local transit and some trains outside of germany exposed by the Deutsche Bahn +[HAFAS Interface](https://finalrewind.org/projects/Travel-Status-DE-DeutscheBahn/). + +You can use the public instance on [travelynx.de](https://travelynx.de) or +host your own. See the Installation and Setup notes below. Dependencies --- - * perl >= 5.20 - * carton or cpanminus + * perl ≥ 5.20 + * carton * build-essential * libpq-dev * git -Perl Dependencies +Installation --- travelynx depends on a set of Perl modules which are documented in `cpanfile`. -After installing the dependencies mentioned above, you can use carton or -cpanminus to install Perl depenencies locally. - -In the project root directory (where `cpanfile` resides), run either - -``` -carton install -``` +After installing the dependencies mentioned above, you can use carton to +install Perl depenencies locally. You may alsobe able to use cpanminus; +however this method is untested. -or +In the project root directory (where `cpanfile` resides), run ``` -cpanm --installdeps . +carton install --deployment ``` and set `PERL5LIB=.../local/lib/perl5` before executing any travelynx @@ -88,6 +88,7 @@ or not. ``` git pull +carton install --deployment # if you are using carton: update dependencies chmod -R a+rX . # only needed if travelynx is running under a different user if perl index.pl database has-current-schema; then systemctl reload travelynx @@ -100,9 +101,47 @@ fi Note that this is subject to change -- the application may perform schema updates automatically in the future. If you used carton for installation, -use `carton exec perl ...` in the snippet above; if you used cpanm, export +use `carton exec perl ...` in the snippet above; otherwise, export `PERL5LIB=.../local/lib/perl5`. +Setup with Docker +--- + +Note that travelynx Docker support is experimental and, in its current form, +far from best practices. Pull requests are appreciated. + +First, you need to set up a PostgreSQL database so that travelynx can store +user accounts and journeys. It must be at least version 9.4 and must use a +UTF-8 locale. See above (or `examples/docker/postgres-init.sh`) for database +initialization. You do not need to perform the `database migrate` step. + +Next, you need to prepare three files that will be mounted into the travelynx +container: travelynx configuration, e-mail configuration, and imprint and +privacy policy. For the sake of this readme, we assume that you are using the +`local/` directory to store these + +* `mkdir local` +* copy examples/travelynx.conf to local/travelynx.conf and configure it. +* copy examples/docker/email-transport.sh to local/email-transport.sh and configure it. + The travelynx container does not contain a mail server, so it needs a + separate SMTP server to send mail. It does not receive mail. +* create local/imprint.html.ep and enter imprint as well as privacy policy data. +* Configure your web server to reverse-provy requests to the travelynx + instance. See `examples/nginx-site` for an nginx config. + +travelynx consists of two runtimes: the web application and a background +worker. Your service supervisor (or docker compose / docker stack / kubernetes +setup) should orchestrate them somewhere along these lines. + +* `docker pull derfnull/travelynx:latest` +* Start web application: `docker run -p 8093:8093 -v ${PWD}/local:/local:ro travelynx:latest` +* Wait until localhost:8093 responds to requests +* Start worker: `docker run -v ${PWD}/local:/local:ro travelynx:latest worker` + +To install an update: stop worker and web application, update the travelynx +image, and start them again. Database migrations will be performed +automatically. Note that downgrades are not supported. + Usage --- @@ -173,3 +212,12 @@ both for personal/internal and public use, under the following conditions. The easiest way of making changes available is by maintaining a public fork of the Git repository. A tarball is also acceptable. Please change the `source` ref in travelynx.conf if you are using a fork with custom changes. + +References +--- + +Mirrors of the travelynx repository are maintained at the following locations: + +* [Chaosdorf](https://chaosdorf.de/git/derf/travelynx) +* [git.finalrewind.org](https://git.finalrewind.org/travelynx/) +* [GitHub](https://github.com/derf/travelynx) |