afro-systems / lxc-guac-setup

Proxmox - Debian 10 LXC Apache Guacamole
https://guacamole.apache.org/
45 stars 7 forks source link

Updated instructions #2

Open lenaxia opened 2 years ago

lenaxia commented 2 years ago

First off, your instructions totally saved me from a disastrous day.

But I did have to make some tweaks to get it to work, possibly because things have changed a bit over 2 years. I was working with Proxmox 7.2, and the below command doesn't work on Debian 10 anymore.

add-apt-repository ppa:remmina-ppa-team/freerdp-daily

Doesn't add properly in Debian 10, I kept getting a stack trace error. I specifically was using the debian-10-standard_10.7-1_amd64.tar.gz template.

Instead, based on instructions provided by MysticRyuujin who wrote the guac-installer script, this is the command set that should be used:

apt update && apt upgrade
apt install software-properties-common gnupg sudo
sudo bash -c 'echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list.d/backports.list'
sudo apt update && sudo apt -y -t buster-backports install freerdp2-dev libpulse-dev freerdp2-x11
adduser remotegod
usermod -aG sudo remotegod
systemctl reboot

Also, in your instructions you didn't mention either setting the container to DHCP or defining a static IP and Gateway, so took me a bit to figure out why my container didn't have a network connection. (This was my first time spinning up an LXC container)

And incase you want to add some more ways to ingress, here's the Kubernetes Traefik ingress that I use

---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: guacamole
  namespace: networking
  annotations:
    coredns.io/hostname: "guac.${SECRET_DEV_DOMAIN}"
    cert-manager.io/cluster-issuer: letsencrypt-production
    traefik.ingress.kubernetes.io/router.entrypoints: "websecure"
    traefik.ingress.kubernetes.io/router.middlewares: networking-chain-guacamole@kubernetescrd
spec:
  ingressClassName: traefik
  rules:
    - host: &host "guac.${SECRET_DEV_DOMAIN}"
      http:
        paths:
          - backend:
              service:
                name: guacamole
                port:
                  number: 80
            path: /
            pathType: Prefix
  tls:
    - hosts:
        - *host
      secretName: *host
---
apiVersion: v1
kind: Service
metadata:
  name: guacamole
  namespace: networking
spec:
  ports:
    - port: 80
      protocol: TCP
      targetPort: 8080
---
apiVersion: v1
kind: Endpoints
metadata:
  name: guacamole
  namespace: networking
subsets:
  - addresses:
      - ip: "192.168.xxx.xxx"
    ports:
      - port: 8080
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: middlewares-guacamole-addprefix
  namespace: networking
spec:
  addPrefix:
    prefix: "/guacamole"
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: chain-guacamole
  namespace: networking
spec:
  chain:
    middlewares:
      - name: middlewares-guacamole-addprefix  # this might not be needed for 1.4.0
afro-systems commented 1 year ago

I'll update this soon. I switched to unRAID.. but I bet the instructions are similar now that unRAID has lxc support.