Skip to content

EduCore-Development/eduxel-server-application-installer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Eduxel Server Application – Installer

Der Eduxel Installer ist ein vollautomatisierter Installer für die Eduxel Server Application.
Er richtet den kompletten Server-Stack ein – von Java über Datenbank bis Webserver – und startet die Anwendung produktionsbereit.

Ziel: Ein Befehl. Alles läuft.
Kein manuelles Setup, kein Copy-Paste-Chaos, kein Gefrickel.


✨ Features

• Automatische Installation von Java 25 (Eclipse Temurin)
• Download der aktuellen eduxel.jar aus GitHub Releases
• Einrichtung eines systemd-Services mit Autostart
• Eigene CLI (eduxel)
MariaDB Setup (automatisch oder manuell)
Apache & Caddy inkl. Reverse Proxy und HTTPS
DNS-Check für Domains (A-Record)
Website-Deployment (GitHub Repo → npm install → npm run build → Deploy)
• Update-fähig über GitHub Releases
• Saubere Logs und klare Statusmeldungen
� Installations-Wizard (eduxel install --wizard)
� eduxel doctor fuer Systemdiagnose
� Logrotation + eduxel logs --tail
� Auto-Updates via systemd-timer
� Canary-Updates auf separatem Port


📦 Voraussetzungen

• Linux Server (empfohlen: Ubuntu oder Debian)
• Root-Zugriff (sudo)
• Internetverbindung
• Optional: eine Domain für Web- und HTTPS-Setup


⚡ Quick Install

Der empfohlene Weg ist die Installation über den offiziellen Proxy-Endpunkt:

curl -fsSL https://edu-core.dev/i | bash

Der Installer lädt automatisch die neueste Version aus den GitHub Releases.


⚙️ Installation mit Parametern

Parameter können direkt an den Installer übergeben werden.
Alles nach dem zweiten -- wird an das Java-CLI weitergereicht.

Beispiel mit Domain und Website-Repository:

curl -fsSL https://edu-core.dev/i | bash -s -- -- --domain panel.example.com --repo https://github.com/OWNER/website.git --branch main


🔧 Installer-Optionen

Diese Optionen betreffen den Bootstrap-Installer selbst:

• --release-repo OWNER/REPO
GitHub Repository, aus dem das Release geladen wird

• --tag latest
Release-Tag (z. B. latest oder v1.0.0)

• --jar-asset eduxel.jar
Name des JAR-Assets im Release

• --user eduxel
Linux-User, unter dem der Service läuft

• --no-java-install
Überspringt die Java-Installation


🧠 Optionen für „eduxel install“

Diese Optionen werden direkt an die Java-Anwendung weitergereicht:

� --wizard
Interaktiver Wizard fuer Domain, DB, Webstack, Repo, Branch

� --app-port PORT
Port fuer den Credential Server

• --domain DOMAIN
Domain für Web- und HTTPS-Setup

• --repo URL
GitHub Repository für die Website

• --branch NAME
Branch für das Website-Deployment

• --skip-web
Überspringt das Webserver-Setup

• --skip-mariadb
Überspringt das MariaDB-Setup

• --allow-no-dns
Ignoriert DNS-Mismatch (nur Warnung)


▶️ Service & Verwaltung

Nach der Installation läuft Eduxel als systemd-Service.

Wichtige Befehle:

• systemctl status eduxel
• systemctl restart eduxel
• eduxel logs --tail

CLI verwenden:

� eduxel logs
� eduxel doctor
• eduxel info
• eduxel install
• eduxel update
• eduxel reset


📂 Wichtige Pfade

• Anwendung: /opt/eduxel/eduxel.jar
• Konfiguration: /etc/eduxel/
• Service: /etc/systemd/system/eduxel.service
• CLI: /usr/local/bin/eduxel


🔄 Updates

Automatisches Update-System

Der eduxel update Befehl prüft automatisch auf Änderungen und führt notwendige Updates durch:

eduxel update

Features:

Changelog: Release Notes vor Updates anzeigen
Config-Diff: Vergleich mit letztem Backup
Canary-Update: Startet Canary-Instanz auf separatem Port
Auto-Updates: systemd Timer fuer Updates
Versionsprüfung: Checkt ob eine neue Version verfügbar ist
Änderungserkennung: Erkennt automatisch, was sich geändert hat:

  • Landing Page (HTML/CSS/JS Updates)
  • Service-Dateien (systemd)
  • JAR-Dateien in /opt/eduxel/ • Interaktive Bestätigung: Zeigt alle Änderungen an und fragt nach Bestätigung
    Automatischer Modus: Mit --yes oder -y alle Änderungen automatisch anwenden
    Check-Only Modus: Mit --check-only nur prüfen, keine Änderungen durchführen

Beispiele:

# Auto-Updates aktivieren (taeglich)
eduxel update --enable-timer

# Auto-Updates deaktivieren
eduxel update --disable-timer

# Canary-Release auf Port 45822 starten
eduxel update --canary --canary-port 45822

# Changelog explizit anzeigen
eduxel update --show-changelog
# Interaktiv: Änderungen anzeigen und bestätigen
eduxel update

# Automatisch: Alle Updates ohne Nachfrage durchführen
eduxel update -y

# Nur prüfen: Keine Änderungen durchführen
eduxel update --check-only

Was wird geprüft:

  1. Version Check: Vergleicht lokale Version mit neuester Version auf GitHub
  2. Landing Page: Prüft ob die Landing Page mit der aktuellen Version übereinstimmt
  3. Service Files: Prüft ob systemd Service-Dateien vorhanden und aktuell sind
  4. JAR Installation: Prüft ob eduxel.jar in /opt/eduxel/ vorhanden ist

Manuelle Updates

Updates können auch manuell über GitHub Releases erfolgen:

# JAR herunterladen
wget https://github.com/OWNER/REPO/releases/latest/download/eduxel.jar -O /opt/eduxel/eduxel.jar

# Service neustarten
systemctl restart eduxel

🛡️ Sicherheitshinweis

Der Installer benötigt Root-Rechte, da Systemdienste, Benutzer und Server-Software eingerichtet werden.
Bitte nur auf vertrauenswürdigen Systemen ausführen.


❤️ EduCore

Eduxel ist ein Projekt der EduCore Development.
Feedback, Issues und Pull Requests sind willkommen.

GitHub: https://github.com/EduCore-Development

About

Server Application for EduCore

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors