# Erstellen eines LXC-Container

Wir nutzen als Beispiel die ID **110**.

* **Allgemein:** Vergib ID, Hostname und Passwort. Optional kannst du deinen öffentlichen SSH-Key hinzufügen.
* **Template:** Ubuntu 24.04
* **Festplatten:** Mindestens 8 GB. Empfohlen: 32 GB oder 48 GB, wenn du viele Dateien oder Bilder speichern willst.
* **CPU:** 1 Kern reicht; 2 Kerne sind bei höherer Last empfehlenswert.
* **Arbeitsspeicher:** Mindestens 512 MB RAM + 512 MB Swap. Wenn möglich, erhöhe den RAM auf 1024 MB.
* **Netzwerk:**
  * IPv4: Statische IP, z. B. `192.168.100.110/24`
  * Gateway: Das Gateway deines Hosts, z. B. `192.168.100.1`
  * IPv6: Deaktiviert
* **DNS:** Nutze die Einstellungen des Hosts oder passe sie bei Bedarf an.
* **Bestätigen:** Schau dir alle Einstellungen nochmal genau an. Aktiviere **Nach Erstellung starten** und klick auf **Fertigstellen**.

Nach der Erstellung gehst du auf den Reiter **Konsole** und meldest dich als `root` an.  
Falls nur ein Cursor zu sehen ist, klick einfach ins Konsolenfenster und drück Enter – dann erscheint die Eingabeaufforderung.  
Melde dich mit `root` und deinem Passwort an.

System aktualisieren und upgraden:

```bash
apt update -qqy && apt upgrade -y
```

Nach Abschluss des Upgrades einmal neu starten.

Einen administrativen Benutzer anlegen und sudo-Rechte geben:

```bash
adduser admin
usermod -aG sudo admin
```

Ab jetzt kannst du entweder hier weitermachen oder in ein externes Terminal wechseln.

## PostgreSQL Installation

Diesen Schritt kannst du als `admin` oder `root` machen. Beispiel als `admin`:

```bash
sudo apt update
sudo apt install postgresql postgresql-contrib -y
# Zum postgres-Benutzer wechseln
sudo -u postgres psql
# Innerhalb von psql:
CREATE DATABASE wikijs;
CREATE USER wikiuser WITH PASSWORD 'your_secure_password';
GRANT ALL PRIVILEGES ON DATABASE wikijs TO wikiuser;
\q
```

## Node Installation

Folge den Anweisungen von der Node.js-Website:

```bash
sudo apt install curl -y
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt install nodejs -y
node -v
npm -v
# npm auf die im Terminal angezeigte Version bringen
sudo npm install -g npm@11.6.2
```

## Wiki.js System-Benutzer anlegen

Erstelle einen dedizierten System-Benutzer für den Wiki.js-Dienst:

```bash
sudo useradd -r -s /usr/sbin/nologin wikijs
sudo mkdir -p /var/www/wiki
sudo chown wikijs:wikijs /var/www/wiki
```

## Wiki.js Installation

Basierend auf der offiziellen Dokumentation: [https://docs.requarks.io/install/linux](https://docs.requarks.io/install/linux)

### Installation

1. Neueste Wiki.js-Version herunterladen:

   ```bash
   wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
   ```

2. Dateien entpacken:

   ```bash
   mkdir wiki
   tar xzf wiki-js.tar.gz -C ./wiki
   cd ./wiki
   ```

3. Beispiel-Konfiguration umbenennen:

   ```bash
   mv config.sample.yml config.yml
   ```

4. Konfiguration bearbeiten:

   ```bash
   nano config.yml
   ```

5. *(Nur bei SQLite-Installationen)*:

   ```bash
   npm rebuild sqlite3
   ```

6. Wiki.js starten:

   ```bash
   node server
   ```

7. Warte auf die Setup-Meldung und öffne die angegebene URL in deinem Browser.

8. Den Setup-Wizard durchlaufen.

### Als Systemdienst (systemd) einrichten

1. Service-Datei erstellen:

   ```bash
   sudo nano /etc/systemd/system/wiki.service
   ```

2. Folgenden Inhalt einfügen (Pfade bei Bedarf anpassen):

   ```ini
   [Unit]
   Description=Wiki.js
   After=network.target

   [Service]
   Type=simple
   ExecStart=/usr/bin/node server
   Restart=always
   User=nobody
   Environment=NODE_ENV=production
   WorkingDirectory=/var/wiki

   [Install]
   WantedBy=multi-user.target
   ```

3. Speichern und schließen.

4. systemd neu laden:

   ```bash
   sudo systemctl daemon-reload
   ```

5. Dienst starten:

   ```bash
   sudo systemctl start wiki
   ```

6. Autostart aktivieren:

   ```bash
   sudo systemctl enable wiki
   ```

Logs kannst du so anschauen:

```bash
journalctl -u wiki
```