%
% sqlitemanager.tex
% Last update: $Id$
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Kapitel SQLiteManager %%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Das SQLiteManager-Paket}
\index{SQLiteManager}


\section{Die Einleitung}

    \glqq{}SQLiteManager\grqq{} stellt eine WebOberfl"ache auf Basis PHP bereit, es
    lassen sich SQLite Datenbanken anlegen, bearbeiten und verwalten.

    Erforderlich ist daf"ur das \eisfair Paket Apache2.

    Die WebOberfl"ache unterst"utzt mehrere Sprachen, die Einstellung erfolgt
    in der WebOberfl"ache.

    SQLite verf"ugt nicht "uber eine eigene Benutzerverwaltung, wie z.B.
    MariaDB/MySQL oder PostgreSQL.


\section{Der Webzugriff}

    Das \eisfair SQLiteManager Paket l"asst sich auf verschiedene Arten zur
    Benutzung konfigurieren.


    Der Zugriff kann "uber eine Subdomain \

    \texttt{http\{s\}://SQLiteManager.meine.de}  \

    oder in eine bestehende Domain \

    \texttt{http\{s\}://www.meine.de/SQLiteManager} \


    erfolgen. Es ist auch beides gleichzeitig m"oglich, also "uber die
    Subdomain und in der bestehenden Domain.

    Der https Zugriff f"ur die Subdomain wird "uber die \eisfair SQLiteManager
    Konfiguration eingestellt, f"ur den https Zugriff in der bestehenden Domain
    muss das SSL Zertifikat von der Domain bereitgestellt werden.

    In der Konfiguration des Apache WebServers m"ussen keine Parameter
    Einstellungen vorgenommen werden.


\section{Die Anmeldung}

    Der SQLiteManager kann auch ohne Anmeldung benutzt werden, diese Art
    sollte nur in Umgebungen gew"ahlt werden, die als absolut sicher gelten,
    generell wird davon abgeraten.

    F"ur die Anmeldung bestehen mehrere M"oglichkeiten, welche die bessere
    ist, vermag ich nicht zu sagen, dass sollte jeder selber pr"ufen.

    Der SQLiteManager bringt intern eine \jump{SQLITEACCESSINTERN}{Benutzerverwaltung}
    mit, die es erlaubt den Benutzern Rechte zuzuweisen oder Rechte zu
    entziehen, als Standard sind die Benutzer admin, user und guest
    angelegt, die sich dann in der WebOberf"ache entsprechend anpassen lassen.

    Als Standard sind vorgegeben

    \begin{tabular}{lll}
    & login : admin  & passwd : admin \\
    & login : data   & passwd : data \\
    & login : guest  & passwd : guest \\
    \end{tabular}

    diese Passw"orter sollten nach der ersten Anmeldung unbedingt neu
    gesetzt werden. Dies geschieht als admin.

    Bei Auswahl dieser Anmeldungsart ist es zus"atzlich m"oglich den Zugriff
    "uber

    \begin{tabular}{lll}
     & IP   & \pfeil 192.168.6.15 \\
     & NETZ & \pfeil 192.168.2 \\
    \end{tabular}

    \jump{SQLITEACCESSIP}{einzuschr"anken}.

    Bei der Anmeldung ohne die interne Benutzerverwaltung, wird der Zugriff
    "uber die htaccess Regeln des Apache ausgef"uhrt.


    Der \glqq{}SQLiteManager\grqq{} ist als Modul im Apache2 Men"u zu finden.


\section{Das Men"u im Setup-Programm}

    Das Men"u im Setup-Programm ist wie folgt aufgebaut:

    \mbox{}

    \begin{tabular}{lll}
    & x. & Service administration \\
    \end{tabular}
\eline
    \begin{tabular}{p{1cm}lll}
    & x. & Apache2 Webserver \\
    \end{tabular}
\eline
    \begin{tabular}{p{2cm}lll}
    & x. & Configuration
    \end{tabular}
\eline
    \begin{tabular}{p{3cm}lll}
    & x. & Modules configuration \\
    \end{tabular}
\eline
    \begin{tabular}{p{4cm}lll}
    & x. & SQLiteManager administration \\
    \end{tabular}
\eline
    \begin{tabular}{p{5cm}lll}
    & 1. & View documentation \\
    & 2. & Edit configuration \\
    & 3. & \jump{SQLITEMANAGERDATABASE}{Database handling} \\
    & 4. & Logfile view (hat nur Inhalt bei Subdomain) \\
    & 5. & Advanced configuration file handling\\
    & 6. & \jump{SQLITEMANAGERWEBACCESS}{User handling for web access} \\
%    & 0. & Exit \\
    \end{tabular}

    \mbox{}


\section{Die "Anderung der Konfiguration}

    Die Konfiguration kann "uber den Men"upunkt \glqq{}Edit
    configuration\grqq{} ge"andert werden.

\section{Die Konfigurationsdatei}

    In der Konfigurationsdatei, die "uber das Men"u zug"anglich ist, sind
    folgende Parameter vorhanden; wer sie von Hand editieren will, findet
    sie unter \\
    \texttt{/etc/config.d/sqlitemanager}.



\subsection{Allgemeine Einstellungen}


\begin{description}

\config{START\_SQLITEMANAGER}
{START\_SQLITEMANAGER}
{STARTSQLITEMANAGER}
{
    F"ur die Aktivierung des SQLiteManager muss diese Variable
    lediglich auf den Wert \glqq{}yes\grqq{} gestellt werden. Die
    Einstellung \glqq{}no\grqq{} schaltet SQLiteManager ab.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{START\_SQLITEMANAGER='no'}
}

\end{description}


\subsection{Einstellungen f"ur eine Subdomain}


\begin{description}

\config{SQLITEMANAGER\_SUBDOMAIN}
{SQLITEMANAGER\_SUBDOMAIN}
{SQLITEMANAGERSUBDOMAIN}
{
    Hier wird angegeben, ob SQLiteManager in einer Subdomain
    ausgef"uhrt werden soll. (sqlitemanager.meine.de)

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SQLITEMANAGER\_SUBDOMAIN='no'}
}


\config{SQLITEMANAGER\_SUBDOMAIN\_NAME}
{SQLITEMANAGER\_SUBDOMAIN\_NAME}
{SQLITEMANAGERSUBDOMAINNAME}
{
    Hier wird der Komplette Name der Domain eingegeben

    Beispiel: \pfeil  \{http\{s\}://\}sqlitemanager.meine.de

    G"ultige Werte: Qualifizierter Domain Name

    Standardeinstellung: \texttt{SQLITEMANAGER\_SUBDOMAIN\_NAME=''}
}


\config{SQLITEMANAGER\_SUBDOMAIN\_PORT}
{SQLITEMANAGER\_SUBDOMAIN\_PORT}
{SQLITEMANAGERSUBDOMAINPORT}
{
    Hier wird der Port f"ur die HTTP Verbindung eingegeben.

    G"ultige Werte: Port

    Standardeinstellung: \texttt{SQLITEMANAGER\_SUBDOMAIN\_PORT='80'}
}


\config{SQLITEMANAGER\_SUBDOMAIN\_ADMIN}
{SQLITEMANAGER\_SUBDOMAIN\_ADMIN}
{SQLITEMANAGERSUBDOMAINADMIN}
{
    Hier wir die Mail Adresse des Server Admin angegeben

    G"ultige Werte: Mail Adresse

    Standardeinstellung: \texttt{SQLITEMANAGER\_SUBDOMAIN\_ADMIN=''}
}


\config{SQLITEMANAGER\_SUBDOMAIN\_FORCE\_SSL}
{SQLITEMANAGER\_SUBDOMAIN\_FORCE\_SSL}
{SQLITEMANAGERSUBDOMAINFORCESSL}
{
    Soll der Zugriff immer mit https erfolgen.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SQLITEMANAGER\_SUBDOMAIN\_FORCE\_SSL='no'}
}


\config{SQLITEMANAGER\_SUBDOMAIN\_SSL\_PORT}
{SQLITEMANAGER\_SUBDOMAIN\_SSL\_PORT}
{SQLITEMANAGERSUBDOMAINSSLPORT}
{
    Hier wird der Port f"ur die HTTPS Verbindung eingegeben.

    G"ultige Werte: Port

    Standardeinstellung: \texttt{SQLITEMANAGER\_SUBDOMAIN\_SSL\_PORT='443'}
}


\config{SQLITEMANAGER\_SUBDOMAIN\_SSL\_CERT}
{SQLITEMANAGER\_SUBDOMAIN\_SSL\_CERT}
{SQLITEMANAGERSUBDOMAINSSLCERT}
{
    Hier wird das Server Zertifikat f"ur die SSL Verbindung angegeben.

    In der Konfiguration des Certs und Certs\_dehydrated Pakets m"ussen
    keine Parameter Einstellungen vorgenommen werden.

    G"ultige Werte: Zertifikat

    Standardeinstellung: \texttt{SQLITEMANAGER\_SUBDOMAIN\_SSL\_CERT=''}
}

\end{description}


\subsection{Einstellungen f"ur einen Host}


\begin{description}

\config{SQLITEMANAGER\_HOST}
{SQLITEMANAGER\_HOST}
{SQLITEMANAGERHOST}
{
    Hier wird angegeben, ob SQLiteManager in einem Host ausgef"uhrt
    werden soll. \\
    (www.meine.de/sqlitemanager)

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SQLITEMANAGER\_HOST='yes'}
}


\config{SQLITEMANAGER\_HOST\_NAME}
{SQLITEMANAGER\_HOST\_NAME}
{SQLITEMANAGERHOSTNAME}
{
    Hier wird der Host(Servername) angegeben, in dem SQLiteManager
    ausgef"uhrt werden soll. Im Normalfall ist dies der APACHE2\_SERVER\_NAME.

    G"ultige Werte: Servername

    Standardeinstellung: \texttt{SQLITEMANAGER\_HOST\_NAME='APACHE2\_SERVER\_NAME'}
}


\config{SQLITEMANAGER\_HOST\_ALIAS}
{SQLITEMANAGER\_HOST\_ALIAS}
{SQLITEMANAGERHOSTALIAS}
{
    Hier wird der Alias angegeben, "uber den SQLiteManager angesprochen
    werden soll.

    Beispiel: \pfeil  \{http\{s\}://\}www.meine.de/sqlitemanager

    G"ultige Werte: jeder g"ultige Name

    Standardeinstellung: \texttt{SQLITEMANAGER\_HOST\_ALIAS='sqlitemanager'}
}


\config{SQLITEMANAGER\_HOST\_FORCE\_SSL}
{SQLITEMANAGER\_HOST\_FORCE\_SSL}
{SQLITEMANAGERHOSTFORCESSL}
{
    Soll der Zugriff immer mit https erfolgen.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SQLITEMANAGER\_HOST\_FORCE\_SSL='no'}
}

\end{description}


\subsection{Einstellungen f"ur die Anmeldung}


\begin{description}

\config{SQLITEMANAGER\_ACCESS\_ALL}
{SQLITEMANAGER\_ACCESS\_ALL}
{SQLITEMANAGERACCESSALL}
{
    Hier ist der Zugriff f"ur alle erlaubt, Weltweit.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SQLITEMANAGER\_ACCESS\_ALL='no'}
}


\marklabel{SQLITEACCESSINTERN}{}
\config{SQLITEMANAGER\_ACCESS\_INTERN}
{SQLITEMANAGER\_ACCESS\_INTERN}
{SQLITEMANAGERACCESSINTERN}
{
    Hier erfolgt der Zugriff "uber die interne Anmeldefunktion des
    SQLiteManager.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SQLITEMANAGER\_ACCESS\_INTERN='no'}
}


\config{SQLITEMANAGER\_ACCESS\_AUTH}
{SQLITEMANAGER\_ACCESS\_AUTH}
{SQLITEMANAGERACCESSAUTH}
{
    Hier ist der Zugriff mit Benutzername und Passwort erlaubt.
    Benutzer m"ussen daf"ur "uber den Men"upunkt
    \glqq{}User handling for web access\grqq{} in der SQLiteManager
    administration ein Passwort erhalten.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SQLITEMANAGER\_ACCESS\_AUTH='no'}
}


\config{SQLITEMANAGER\_ACCESS\_AUTH\_SEND\_MAIL\_FROM}
{SQLITEMANAGER\_ACCESS\_AUTH\_SEND\_MAIL\_FROM}
{SQLITEMANAGERACCESSAUTHSENDMAILFROM}
{
    Bei der Einstellung   \texttt{SQLITEMANAGER\_ACCESS\_AUTH} muss hier
    eine Mail Adresse angeben werden, die als Absender benutzt
    werden soll. Bleibt sie leer wird keine Mail versandt

    G"ultige Werte: leer, Mail Adresse

    Standardeinstellung: \texttt{SQLITEMANAGER\_ACCESS\_AUTH\_SEND\_MAIL\_FROM=''}
}


\config{SQLITEMANAGER\_ACCESS\_HOST}
{SQLITEMANAGER\_ACCESS\_HOST}
{SQLITEMANAGERACCESSHOST}
{
    Hier ist der Zugriff mit Hostname erlaubt.
    Es d"urfen mehrere durch ein Leerzeichen getrennt angegeben
    werden.

    G"ultige Werte: Hostname, Domain

    Standardeinstellung: \texttt{SQLITEMANAGER\_ACCESS\_HOST=''}
}


\marklabel{SQLITEACCESSIP}{}
\config{SQLITEMANAGER\_ACCESS\_IP}
{SQLITEMANAGER\_ACCESS\_IP}
{SQLITEMANAGERACCESSIP}
{
    Hier ist der Zugriff von der IP Adresse erlaubt.
    Es d"urfen mehrere durch ein Leerzeichen getrennt angegeben
    werden.

    Beispiel: 10 192.168.6 192.168.6.1 192.168.6.0/24

    G"ultige Werte: IP Adresse

    Standardeinstellung: \texttt{SQLITEMANAGER\_ACCESS\_IP=''}
}


\config{SQLITEMANAGER\_ACCESS\_LOCAL}
{SQLITEMANAGER\_ACCESS\_LOCAL}
{SQLITEMANAGERACCESSLOCAL}
{
    Hier ist der Zugriff local erlaubt.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SQLITEMANAGER\_ACCESS\_LOCAL='yes'}
}

\end{description}


\marklabel{SQLITEMANAGERDATABASE}{\section{Einstellungen f"ur die Datenbanken - Database handling}}

    Damit der SQLiteManager mit den Datenbanken arbeiten kann, m"ussen
    die Datenbanken aktiviert werden und in die interne Datenbank
    eingetragen werden.

    Die Datenbanken werden hinzugef"ugt und k"onnen auch wieder aus der
    internen Datenbank entfernt werden.

    Das Datenbanken Verzeichnis befindet sich unter /srv/sqliteDB, die
    Datenbanken m"ussen nicht in diesem Verzeichnis liegen, es wird dann
    ein Symlink gesetzt sodass der SQLiteManager damit arbeiten kann.

    \begin{tabular}{lll}
    & 1. & Add a new database to SQLiteManager config \\
    & 2. & Remove database from SQLiteManager and folder '/srv/sqliteDB' \\
    \end{tabular}


\marklabel{SQLITEMANAGERWEBACCESS}{\section{Einstellungen f"ur den Webzugriff - User handling for web access}}

    Wenn \texttt{SQLITEMANAGER\_ACCESS\_AUTH='yes'} gesetzt ist
    werden hier die Benutzer verwaltet.

    Angelegt, entfernt und mit einem Passwort berechtigt.

