summaryrefslogtreecommitdiff
path: root/README.md
blob: 0cac7ebf4b226fd7d147421ecbc696f4c5556d80 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
[![pipeline status](https://chaos.expert/engelsystem/engelsystem/badges/master/pipeline.svg)](https://chaos.expert/engelsystem/engelsystem/commits/master)
[![coverage report](https://chaos.expert/engelsystem/engelsystem/badges/master/coverage.svg)](https://chaos.expert/engelsystem/engelsystem/commits/master)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/20b3b0b4e93344a29da6bec77f329e7a)](https://www.codacy.com/app/engelsystem/engelsystem)
[![GPL](https://img.shields.io/github/license/engelsystem/engelsystem.svg?maxAge=2592000)](LICENSE)

# Engelsystem
Please visit [engelsystem.de](https://engelsystem.de) for a feature list.

To report bugs use [engelsystem/issues](https://github.com/engelsystem/engelsystem/issues).

Since the Engelsystem is open source, you can help improving it.
We really love to get pull requests containing fixes or improvements.
Please read the [CONTRIBUTING.md](CONTRIBUTING.md) and [DEVELOPMENT.md](DEVELOPMENT.md) before you start.

## Installation
The Engelsystem may be installed manually or by using the provided [docker setup](#docker).

### Requirements
 * PHP >= 7.2
   * Required modules:
     * dom
     * json
     * mbstring
     * PDO
       * mysql
     * tokenizer
     * xml/libxml/SimpleXML
     * xmlwriter
 * MySQL-Server >= 5.7.8 or MariaDB-Server >= 10.2.2
 * Webserver, i.e. lighttpd, nginx, or Apache

### Download
 * Go to the [Releases](https://github.com/engelsystem/engelsystem/releases) page and download the latest stable release file.
 * Extract the files to your webroot and continue with the directions for configurations and setup.

### Configuration and Setup
 * The webserver must have write access to the ```storage``` directory and read access for all other directories
 * The webserver must point to the ```public``` directory.
 * The webserver must read the ```.htaccess``` file and ```mod_rewrite``` must be enabled

 * Recommended: Directory Listing should be disabled.
 * There must a be MySQL database created with a user who has full rights to that database.
 * If necessary, create a ```config/config.php``` to override values from ```config/config.default.php```.
   * To remove values from the `footer_items`, `available_themes`, `locales`, `tshirt_sizes` or `headers` lists the config file has to be renamed.
 * To import the database the ```bin/migrate``` script has to be called. If you are not allowed to execute scripts, then execute the ```install-<version>.sql``` script. Download at [Releases](https://github.com/engelsystem/engelsystem/releases) page.
 * In the browser, login with credentials ```admin``` : ```asdfasdf``` and change the password.

The Engelsystem can now be used.

### Session Settings
 * Make sure the config allows for sessions.
 * Both Apache and Nginx allow for different VirtualHost configurations.

### Docker
To build the `es_nginx` and the `es_php_fpm` containers:
```bash
cd docker
docker-compose build
```

or to build the containers separately
```bash
docker build -f docker/nginx/Dockerfile . -t es_nginx
docker build -f docker/Dockerfile . -t es_php_fpm
```

Import database
```bash
docker exec -it engelsystem_es_php_fpm_1 bin/migrate
```

### Scripts
#### bin/deploy.sh
The `bin/deploy.sh` script can be used to deploy the Engelsystem. It uses rsync to deploy the application to a server over ssh.

For usage see `./bin/deploy.sh -h`

#### bin/migrate
The `bin/migrate` script can be used to import and update the database of the Engelsystem.

For more information on how to use it call `./bin/migrate help`