source: main/waeup.kofa/trunk/docs/INSTALL.txt @ 17959

Last change on this file since 17959 was 17282, checked in by uli, 22 months ago

Fix wrong path in INSTALL.txt.

File size: 6.0 KB
RevLine 
[11381]1Installation of Kofa
2####################
[10120]3
[17263]4These are generic installation instructions for the WAeUP.Kofa
[11381]5student information portal and customized versions thereof.
[10120]6
[11381]7For specific aspects of this package please refer to the local README
8file.
[10120]9
[11381]10Please note, that **only Linux-based installs** are described and actively
11supported. We recommend use of Debian_ / Ubuntu_.
[11323]12
[11381]13.. note:: This means we do not actively support Windows(tm)!
[11323]14
[12864]15.. contents:: Table of Contents
16   :local:
[11323]17
[11384]18
[11381]19Prerequisites
20*************
[11323]21
[17264]22Installing `kofa` from sources on a local system involves many steps to meet
23all requirements, dependencies, etc. For quick setup we provide `docker`_
24based installs which ease the whole setup procedure very much.
25
26There are, however, a few things, you should be aware of. Most important:
27`kofa` stores persistent data on disk, in an own `var/` directory. This
28directory keeps all files, database data and also log files. You must keep this
29directory if you want to keep your data.
30
31Starting with version 1.8, each release of `kofa` contains a `Dockerfile` in
32the sources root. You can use this file to build a dockerized version of
33`kofa`. But you can also use this file as a reference, how to build `kofa` from
34sources.
35
36Good to know and very important if you want to install the manual way:
[11381]37The Kofa packages are based on `Grok`_, which is a Python_
[13075]38framework for agile web application development. Grok_ itself is based
[11381]39on `Zope`_.
[11323]40
[17264]41Both, Grok_ and Zope_, are written in the `Python`_ programming language (with
42parts written in C). For a source install you therefore have to have `Python`_
43installed (including `Python`_ headers) in version 2.7 (Python 3.x is currently
44not supported).
[11323]45
[17264]46If you want to install using `docker` you of course need `docker` installed on
47your system. Please refer to your system documentation or to https://docker.com
48for details.
[11323]49
50
[17264]51Quick Install (dockerized)
52**************************
[11323]53
[17264]54The Dockerfiles contained in our releases fetch sources from the central Python
55package repository `https://pypi.org/`. Visit the Dockerfile to learn, how you
56can build kofa from a local source tree.
[11323]57
[17264]58Go to the directory with the `Dockerfile` (we assume here, it is called
59`waeup.kofa`)::
[11323]60
[17264]61  $ cd waeup.kofa
[11323]62
[17264]63Build `kofa` and tag the build, so you can tell different versions apart later
64on::
[11527]65
[17264]66  $ docker build -t kofa:latest .
[13690]67
[17264]68Please note the separated dot at the end of the command.
[11323]69
[17264]70Replace `kofa:latest` with any tag you find useful. Usual alternative tags
71would be: `kofa:1.8.1.dev0` or similar. But also `mybuild:foo` or just
72`mybuild` are valid tags.
[11323]73
[17264]74This command will take a lot of time and will perform all the steps, you would
75need to do to install `kofa` natively.
[11323]76
[17264]77If all works well, you can start a new `kofa` instance in foreground like this::
[11323]78
[17264]79  $ docker run --rm -it -p 8080:8080 -v kofadata1:/home/kofa/waeup.kofa/var kofa:latest
[11323]80
[17264]81Use the tag you picked before (here: `kofa:latest`) and connect to the running instance
82
83https://localhost:8080/
84
85Your username and password will be `grok` and `grok`.
86
87Enter the credentials (username 'grok', password 'grok' by default)
88and name and add a `University`.
89
90Congratulations, you got Kofa running.
91
92
93What else can I do with `kofa` and Docker?
94******************************************
95
96Some remarks about the last `docker` command:
97`-v kofadata1:/home/kofa/waeup.kofa` keeps a persistent volume named `kofadata1` on
98your host. You do not have to know where this volume resides on your machine
99(while you can, if you insist). The containers using this volume can be
100discarded after use and you can of course keep multiple volumes in parallel on
101your system.
102
103You can stop the instance running in foreground pressing `CTRL-C`.
104
105Passing `--rm` to `docker` means to dispose a container after it stopped.
106
107
[17273]108Run `kofa` daemonized
109*********************
[17264]110
111If you want to run `kofa` daemonized, use this::
112
113  $ docker run --rm -d -p 8080:8080 -v kofadata1:/home/kofa/waeup.kofa/var kofa:latest
114
115Instead of interactive (`-it`) we now use daemonized mode (`-d`). We also
116tunnel the containers port 8080 to our hosts port 8080 because otherwise we
117could not reach `kofa`. For security reasons it binds to containers localhost
118address by default.
119
120You can stop this instance with::
121
122   $ docker stop kofa:latest
123
124which will stop and destroy the running container. If you create a new
125container with the same volume data, all objects from the last run should be
126visible and usable.
127
128
129Enter the `kofa` filesystem inside container
130********************************************
131
[17273]132If an instance is running, you can enter the filesystem with for instance::
[17264]133
134   $ docker run --rm -it -v kofadata1:/home/kofa/waeup.kofa/var kofa:latest /bin/bash
135
136which will drop you into a shell inside the container. Your system credentials
137are by default `kofa` and `kofa`.
138
139
140Copy data in and out of the container
141*************************************
142
143For backups etc. it is essential that you can copy data from or to the
144container. To do this, we mount a second local directory into the container and
[17273]145use that for transmitting data::
[17264]146
147  $ mkdir mybackup
[17282]148  $ docker run --rm -it -v kofadata1:/home/kofa/waeup.kofa/var -v `pwd`/mybackup:/data kofa:latest cp -ar /home/kofa/waeup.kofa/var /data
[17264]149
150which will copy the whole container-internal `var/`-directory into our local
151`mybackup` dir.
152
153
154How to start/stop `kofa` when running the native setup
155******************************************************
156
[17273]157Startup Kofa in foreground::
[11323]158
[17263]159  $ bin/kofactl fg
160  # press CTRL-D to stop the kofa server
[11323]161
[17273]162Startup Kofa in background::
[13830]163
[17263]164  $ bin/kofactl start
165  $ bin/kofactl status  # check status, running or not
166  $ bin/kofactl stop    # stop running instance (also 'restart' possible)
[13830]167
[17264]168That should start you.
[13830]169
[17264]170Have fun with Kofa!
[13830]171
172
[17264]173.. _Debian: https://www.debian.org/
174.. _docker: https://
[11381]175.. _Grok: http://grok.zope.org/
[17264]176.. _Python: https://www.python.org/
177.. _Subversion: https://subversion.apache.org/
178.. _Ubuntu: https://www.ubuntu.com/
179.. _virtualenv: https://www.virtualenv.org/en/latest/
[11381]180.. _WAeUP: https://www.waeup.org/
[17264]181.. _Zope: https://www.zope.org/
182.. _zc.buildout: https://pypi.org/project/zc.buildout
[17263]183
Note: See TracBrowser for help on using the repository browser.