Apache/Guacamole/Docker: Unterschied zwischen den Versionen
Erscheinungsbild
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
'''Apache/Guacamole/Docker''' - Installation mit Docker Compose | |||
== Beschreibung == | |||
1. Vorbereitung des Arbeitskatalogs | 1. Vorbereitung des Arbeitskatalogs | ||
| Zeile 179: | Zeile 179: | ||
* Die Weboberfläche ist unter folgender Adresse erreichbar: ''http://<IP_or_Domain_Name>:8080/'' | * Die Weboberfläche ist unter folgender Adresse erreichbar: ''http://<IP_or_Domain_Name>:8080/'' | ||
== Installation == | |||
<syntaxhighlight lang="bash" highlight="1" line copy> | |||
</syntaxhighlight> | |||
== Aufruf == | |||
<syntaxhighlight lang="bash" highlight="1" line copy> | |||
</syntaxhighlight> | |||
=== Optionen === | |||
{| class="wikitable sortable options gnu big" | |||
|- | |||
! Unix !! GNU !! Parameter !! Beschreibung | |||
|- | |||
| || || || | |||
|- | |||
|} | |||
=== Parameter === | |||
=== Umgebungsvariablen === | |||
=== Exit-Status === | |||
{| class="wikitable options col1center big" | |||
|- | |||
! Wert !! Beschreibung | |||
|- | |||
| 0 || Erfolg | |||
|- | |||
| >0 || Fehler | |||
|} | |||
== Anwendung == | |||
<syntaxhighlight lang="bash" highlight="1" line copy> | |||
</syntaxhighlight> | |||
<!-- output --> | |||
<syntaxhighlight lang="bash" highlight="" line> | |||
</syntaxhighlight> | |||
=== Problembehebung === | |||
== Konfiguration == | |||
=== Dateien === | |||
{| class="wikitable options big" | |||
|- | |||
! Datei !! Beschreibung | |||
|- | |||
| || | |||
|- | |||
| || | |||
|} | |||
<noinclude> | |||
== Anhang == | |||
=== Siehe auch === | |||
<div style="column-count:2"> | |||
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree> | |||
</div> | |||
---- | |||
{{Special:PrefixIndex/{{BASEPAGENAME}}/}} | |||
=== Dokumentation === | |||
<!-- | |||
; Man-Page | |||
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)] | |||
; Info-Pages | |||
--> | |||
=== Links === | |||
==== Projekt ==== | |||
==== Weblinks ==== | |||
[[Kategorie:Apache/Guacamole]] | [[Kategorie:Apache/Guacamole]] | ||
</noinclude> | |||
Aktuelle Version vom 26. November 2025, 10:14 Uhr
Apache/Guacamole/Docker - Installation mit Docker Compose
Beschreibung
1. Vorbereitung des Arbeitskatalogs
mkdir /opt/guacamole-docker && cd /opt/guacamole-docker
2. Zunächst muss eine Datei namens docker-compose.yml mit folgendem Inhalt erstellt werden:
services:
db:
image: mariadb:latest
container_name: guac-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: "ROOT_SUPER_SECRET"
MYSQL_DATABASE: "guacamole_db"
MYSQL_USER: "guacamole_user"
MYSQL_PASSWORD: "GUAC_DB_PASSWORD"
volumes:
- db-data:/var/lib/mysql
- ./initdb.sql:/docker-entrypoint-initdb.d/initdb.sql:ro
networks:
- guac-net
guacd:
image: guacamole/guacd:latest
container_name: guacd
restart: unless-stopped
networks:
- guac-net
guacamole:
image: guacamole/guacamole:latest
container_name: guacamole
restart: unless-stopped
depends_on:
- guacd
- db
environment:
GUACD_HOSTNAME: guacd
GUACD_PORT: "4822"
MYSQL_ENABLED: "true"
MYSQL_HOSTNAME: db
MYSQL_PORT: "3306"
MYSQL_DATABASE: "guacamole_db"
MYSQL_USERNAME: "guacamole_user"
MYSQL_PASSWORD: "GUAC_DB_PASSWORD"
WEBAPP_CONTEXT: "ROOT"
networks:
- guac-net
labels:
- "traefik.enable=true"
- "traefik.http.routers.guac.rule=Host(`guacamole.example.com`)"
- "traefik.http.routers.guac.entrypoints=websecure"
- "traefik.http.routers.guac.tls.certresolver=letsencrypt"
- "traefik.http.services.guac.loadbalancer.server.port=8080"
traefik:
image: traefik:latest
container_name: traefik
restart: unless-stopped
command:
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
# HTTP > HTTPS
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entryPoint.scheme=https"
# Let's Encrypt ACME HTTP challenge
- "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.letsencrypt.acme.email=admin@example.com"
- "--certificatesresolvers.letsencrypt.acme.storage=/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./acme.json:/acme.json
networks:
- guac-net
volumes:
db-data:
networks:
guac-net:
ENV
In docker-compose.yml festgelegte Umgebungsvariablen:
| Variable | Wert | Beschreibung |
|---|---|---|
| MYSQL_ROOT_PASSWORD | ROOT_SUPER_SECRET | Root-Passwort des MariaDB-Servers |
| MYSQL_DATABASE | guacamole_db | Name der Guacamole-Datenbank, die vom MariaDB-Container erstellt und vom Guacamole-Server verwendet wird |
| MYSQL_USER | guacamole_user | Datenbankbenutzer für Guacamole (wird im MariaDB-Container angelegt und vom Guacamole-Server genutzt) |
| MYSQL_PASSWORD | GUAC_DB_PASSWORD | Passwort des Guacamole-Datenbankbenutzers |
| GUACD_HOSTNAME | guacd | Hostname bzw. Docker-Servicename des guacd-Dienstes |
| GUACD_PORT | 4822 | TCP-Port, auf dem guacd Verbindungen annimmt |
| MYSQL_ENABLED | true | Aktiviert die MySQL-/MariaDB-Authentifizierung im Guacamole-Server |
| MYSQL_HOSTNAME | db | Hostname bzw. Docker-Servicename des MariaDB-Servers |
| MYSQL_PORT | 3306 | TCP-Port des MariaDB-Servers |
| MYSQL_USERNAME | guacamole_user | Datenbankbenutzername, den der Guacamole-Server für Verbindungen verwendet |
| MYSQL_PASSWORD | GUAC_DB_PASSWORD | Passwort des von Guacamole verwendeten Datenbankbenutzers |
| WEBAPP_CONTEXT | ROOT | Kontextpfad der Guacamole-Webanwendung; ROOT platziert die Anwendung direkt unter / anstatt unter /guacamole |
3. Jetzt muss die Struktur der Guacamole-Datenbank vorbereitet werden.
docker run --rm guacamole/guacamole:latest /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
- Dieser Befehl generiert das SQL-Schema Guacamole, ohne das die Datenbank die erforderlichen Tabellen und Anfangsdatensätze nicht erstellen kann
4. Um das Zertifikat zu erhalten, müssen Sie außerdem die Datei acme.json erstellen
touch acme.json && chmod 600 acme.json
5. Start der Container
docker compose up -d
- Die Weboberfläche ist unter folgender Adresse erreichbar: http://<IP_or_Domain_Name>:8080/
Installation
Aufruf
Optionen
| Unix | GNU | Parameter | Beschreibung |
|---|---|---|---|
Parameter
Umgebungsvariablen
Exit-Status
| Wert | Beschreibung |
|---|---|
| 0 | Erfolg |
| >0 | Fehler |
Anwendung
Problembehebung
Konfiguration
Dateien
| Datei | Beschreibung |
|---|---|
Anhang
Siehe auch
Dokumentation
Links
Projekt
Weblinks