Update install
continuous-integration/drone/tag Build is passing Details

This commit is contained in:
Philipp Lang 2023-07-20 22:58:51 +02:00
parent b383a7a515
commit ddebe7cc3c
6 changed files with 73 additions and 30 deletions

13
.docker/horizon-entrypoint Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
set -e
# ------------------------- check for database access -------------------------
function wait_for_db {
while true; do
echo "waiting for Database init"
php -r 'new PDO("mysql:host='$DB_HOST';dbname='$DB_DATABASE'", "'$DB_USERNAME'", "'$DB_PASSWORD'");' > /dev/null && return 0
done
}
php artisan horizon

View File

@ -5,7 +5,7 @@ RUN npm install && npm run prod && npm run img && rm -R node_modules
FROM nginx:1.21.6-alpine as nginx
WORKDIR /app
COPY --from=node . /app
COPY --from=node /app /app
COPY ./.docker/nginx/nginx.conf /etc/nginx/nginx.conf
EXPOSE 80

25
.docker/php-entrypoint Executable file
View File

@ -0,0 +1,25 @@
#!/bin/bash
set -e
# --------------------------- ensure appkey is set ----------------------------
if [ $APP_KEY = "YOUR_APP_KEY" ]; then
echo "----------------------- Keinen APP KEY gefunden. Key wird generiert: $(php artisan key:generate --show) ----------------------- Füge diesen Key als APP_KEY ein ---------------------"
exit 1
fi
# ------------------------- check for database access -------------------------
function wait_for_db {
while true; do
echo "waiting for Database init"
php -r 'new PDO("mysql:host='$DB_HOST';dbname='$DB_DATABASE'", "'$DB_USERNAME'", "'$DB_PASSWORD'");' > /dev/null && return 0
sleep 1
done
}
wait_for_db
php -r '$connection = new PDO("mysql:host='$DB_HOST';dbname='$DB_DATABASE'", "'$DB_USERNAME'", "'$DB_PASSWORD'"); $connection->query("DESCRIBE migrations");' > /dev/null || php artisan migrate --seed --force
php artisan migrate --force
php-fpm -F -R -O

View File

@ -18,6 +18,10 @@ RUN pecl install redis && docker-php-ext-enable redis
COPY --chown=www-data:www-data . /app
COPY --chown=www-data:www-data --from=node /app/public /app/public
COPY --chown=www-data:www-data --from=composer /app/vendor /app/vendor
COPY ./.docker/php-entrypoint /bin/php-entrypoint
COPY ./.docker/horizon-entrypoint /bin/horizon-entrypoint
EXPOSE 9000
CMD ["php-fpm", "-F", "-R", "-O"]
CMD /bin/php-entrypoint

View File

@ -32,31 +32,45 @@ Außerdem ist AdReMa auch problemlos auf Handys und Tablets bedienbar ("mobiles
# Installation
Submodules updaten:
## App Key generieren
```
git submodule update --init
```
Example env erstellen:
Kopiere .app.env.example nach .app.env
```
cp .app.env.example .app.env
```
Container bauen
Services starten:
```
docker-compose build
docker compose up
```
Key generieren
Es wird die ein App Key generiert: ``Keinen APP KEY gefunden. Key wird generiert: base64:..........``
```
docker-compose run php php artisan key:generate --show
```
Kopiere diesen App key und setze in in .app.env als APP_KEY ein (APP_KEY=base64:........).
Ersetze nun "YOUR_APP_KEY" in .app.env mit dem generierten Key (base64:qzX....).
## Einstellungen
Passe in der .app.env dann folgende Einstellungen an:
### APP_URL
Hier sollte die URL (mit HTTPS) stehen, unter der Adrema erreichbar sein soll (z.B. https://adrema.stamm-bipi.de)
### Mail
Setze nun die Einstellungen für den Mail-Versand ein. Du solltest mindestens MAIL_PORT, MAIL_HOST, MAIL_USERNAME, MAIL_PASSWORD und MAIL_ENCRYPTION setzen.
MAIL_FROM_NAME ist der Name, der als Absender von E-Mails gesetzt wird. z.B. "Stamm Bipi Service".
MAIL_FROM_ADDRESS die dazu gehörige E-Mail-Adresse, die natürlich erreichbar sein sollte (z.B. "vorstand@stamm-bipi.de").
### DB Passwort
Setze die beiden letzten Variablen (da wo "secret_db_password" steht) auf ein generiertes sicheres Passwort. Bei beiden Variablen muss der gleiche Wert eingestellt werden (also so wie vorher, nur sicherer :D )
## Starten
Führe nun den DB Container aus, um eine erste Version der Datenbank zu erstellen.
@ -64,24 +78,11 @@ Führe nun den DB Container aus, um eine erste Version der Datenbank zu erstelle
docker-compose up db -d
```
Migrations ausführen
```
docker-compose run php php artisan migrate --seed
```
Alles stoppen, dann alles neu starten
```
docker-compose stop
docker-compose up -d
```
Nun kannst du auf localhost:8000 die App öffnen, einen LB verwenden, den Port mit CLI Optionen ändern, etc.
## Standard Login
Wenn du die Seeder ausführst ("--seed", siehe oben), wird ein Benutzer mit folgenden Zugangsdaten erstellt:
Beim ersten Starten wird ein Benutzer mit folgenden Zugangsdaten erstellt:
* E-Mail-Adresse: admin@example.com
* Passwort: admin

View File

@ -27,7 +27,7 @@ services:
depends_on:
- db
- php
command: php artisan horizon
command: /bin/horizon-entrypoint
env_file:
- .app.env
environment: