-
Notifications
You must be signed in to change notification settings - Fork 2
Einrichtung eines Webservers
_sudo apt-get install mariadb-server_
_sudo systemctl start mariadb.service_
(Standart setup-script zur Einrichtung; Fragen nach gebrauch beantworten)
_sudo mysql_secure_installation_
_sudo mariadb_
(öffnet MariaDB Konsole) (neuen localhost user zum benutzen der Datenbank erstellen)
Folgenden command eingeben:
_GRANT ALL ON . TO 'hier kommt der username'@'localhost' IDENTIFIED BY 'hier das PW' WITH GRANT OPTION;_
(Anmeldung: mysql -u hier kommt der username -p (mit Anschließender passwd-Eingabe) (-u option für Angabe eines users; -p option für Angabe des Passworts; passwd nicht im Command benutzen, da ‘bad practice’; commands und dadurch passwd könnte eventuell in log files eingesehen werden)
beim erstellten mysql-nutzer anmelden, die neue Datenbank erstellen und setup.sql und initial.sql ausführen:
_mysql -u hierDerBenutzername -p_
_create database name der Datenbenk;_
_use name der Datenbank;_
_source ./relative/path/to/setup.sql;_
_source ./relative/path/to/initial.sql;_
(setup.sql und initial.sql sind in notion)
Es werden Java und JDK benötigt
_sudo apt install openjdk-17-jdk_
prüfen ob vorhanden mit:
_java -version_
Maven installieren (zum bauen der .jar)
_sudo apt-get install maven_
Bevor man die .jar baut:
Code von Git auf Server in opt-Verzeichnis klonen
application.properties anlegen und in WebBaKI-Order ablegen
pom.xml bearebeiten (siehe Notion WEB-Deployment PDF)
mit maven die .jar bauen
sudo mvn clean package
jar ausführen:
java -jar NameDerJar.jar
in webbaki-admin:
sudo nano autodeploy.sh
systemctl stop webbaki
apt-get update
apt get upgrade -y
cd /opt/webbaki-admin
rm -rf WebBaKi
git clone https://<<your_access_token_goes_here>>@github.com/THB-webbaki/WebBaKI
cp application.properties /opt/webbaki-admin/WebBaKI/WeBBAKI/src/main/resources
cd /opt/webbaki-admin/WebBaKI/WeBBAKI
rm -rf target/WeBBAKI-0.0.1-SNAPSHOT.jar
mvn clean package
systemctl start webbaki
sudo apt-get install nginx
nginx anpassen unter /etc/nginx/conf.d/
webbaki.conf anlegen:
server{
# ssl config
listen 443 ssl;
include snippets/snakeoil.conf;
server_name webbakiPNT.th-brandenburg.de;
#root /home/webbaki/WeBBAKI_2.0/WeBBAKI;
location / {
proxy_pass <http://localhost:8080/>;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header X-Forwarded-Proto $scheme;
#proxy_set_header X-Forwarded-Port $server_port;
}
}
nach Fehlern prüfen
sudo nginx -t
und nginx neu starten
sudo systemctl restart nginx
sudo nano /etc/systemd/system/webbaki.service
[Unit]
Description=Spring Boot WeBBAKI
After=syslog.target
After=network.target
[Service]
User=root
Type=simple
ExecStart=/usr/bin/java -jar /opt/webbaki-admin/WebBaKI/WeBBAKI/target/WeBBAKI-0.0.1-SNAPSHOT.jar
Restart=always
StandardOutput=journal
StandardError=journal
SyslogIdentifier=webbaki
[Install]
WantedBy=multi-user.target
dann:
sudo systemctl daemon-reload
(wird dieser command nach einer Servicefile-Änderung nicht ausgeführt, wird die Änderung nicht übernommen)
sudo systemctl start webbaki
sudo systemctl enable webbaki
Vorgehen auch hier beschrieben (https://wiki.ubuntuusers.de/ssl-cert/).
sudo apt-get install ssl-cert
sudo make-ssl-cert generate-default-snakeoil
Alternativ kann auch "Lets Encrypt" genutzt werden.
sudo crontab -e
0 * * * * /opt/webbaki-admin/autodeploy.sh
m h dom mon dow command
cron syntax: "<Minute> <Hour> <DayOfMonth> <Month> <DayOfWeek> <command>"
"*" entspricht "immer"
z.B. 0 * * * * /opt/webbaki-admin/autodeploy.sh -> minute null, jede Stunde, jeden Tag im Monat, ...
system Error Log:
sudo cat /var/log/syslog
(clear the error log: sudo truncate -s 0 /var/log/syslog)
mögliche nginx Error bei:
sudo cat /var/log/nginx/error.log