diff --git a/communication/altus.yaml b/communication/altus.yaml deleted file mode 100644 index 98f9b64..0000000 --- a/communication/altus.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: stream.space/v1alpha1 -kind: Template -metadata: - name: altus - namespace: workspaces - annotations: - streamspace.dev/image-status: pending-migration -spec: - displayName: Altus - description: Altus is an Electron-based WhatsApp client with themes and multiple - account support. - category: Chat - baseImage: lscr.io/linuxserver/altus:latest - defaultResources: - memory: 2Gi - cpu: 1000m - ports: - - name: http - containerPort: 8080 - protocol: TCP - env: - - name: PUID - value: '1000' - - name: PGID - value: '1000' - - name: TZ - value: America/New_York - volumeMounts: - - name: user-home - mountPath: /config - capabilities: - - Network - - Clipboard - tags: - - altus - - chat diff --git a/communication/ferdium.yaml b/communication/ferdium.yaml deleted file mode 100644 index fe1848e..0000000 --- a/communication/ferdium.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: stream.space/v1alpha1 -kind: Template -metadata: - name: ferdium - namespace: workspaces - annotations: - streamspace.dev/image-status: pending-migration -spec: - displayName: Ferdium - description: Ferdium is a desktop app that helps you organize how you use your favourite - apps by combining them into one application. - category: Chat,Social - baseImage: lscr.io/linuxserver/ferdium:latest - defaultResources: - memory: 2Gi - cpu: 1000m - ports: - - name: vnc - containerPort: 3000 - protocol: TCP - env: - - name: PUID - value: '1000' - - name: PGID - value: '1000' - - name: TZ - value: America/New_York - volumeMounts: - - name: user-home - mountPath: /config - capabilities: - - Network - - Clipboard - tags: - - ferdium - - chatsocial diff --git a/communication/pidgin.yaml b/communication/pidgin.yaml deleted file mode 100644 index 8e0503d..0000000 --- a/communication/pidgin.yaml +++ /dev/null @@ -1,37 +0,0 @@ -apiVersion: stream.space/v1alpha1 -kind: Template -metadata: - name: pidgin - namespace: workspaces - annotations: - streamspace.dev/image-status: pending-migration -spec: - displayName: Pidgin - description: Pidgin is a chat program which lets you log into accounts on multiple - chat networks simultaneously. This means that you can be chatting with friends - on XMPP and sitting in an IRC channel at the same time. - category: IRC,Chat - baseImage: lscr.io/linuxserver/pidgin:latest - defaultResources: - memory: 2Gi - cpu: 1000m - ports: - - name: http - containerPort: 8080 - protocol: TCP - env: - - name: PUID - value: '1000' - - name: PGID - value: '1000' - - name: TZ - value: America/New_York - volumeMounts: - - name: user-home - mountPath: /config - capabilities: - - Network - - Clipboard - tags: - - pidgin - - ircchat diff --git a/communication/webcord.yaml b/communication/webcord.yaml deleted file mode 100644 index 38fd52c..0000000 --- a/communication/webcord.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: stream.space/v1alpha1 -kind: Template -metadata: - name: webcord - namespace: workspaces - annotations: - streamspace.dev/image-status: pending-migration -spec: - displayName: Webcord - description: WebCord can be summarized as a pack of security and privacy hardenings, - Discord features reimplementations, Electron / Chromium / Discord bugs workarounds, - stylesheets, internal pages and wrapped https://discord.com page, designed to - conform with ToS as much as it is possible (or hide the changes that might violate - it from Discord's eyes). - category: Chat - baseImage: lscr.io/linuxserver/webcord:latest - defaultResources: - memory: 2Gi - cpu: 1000m - ports: - - name: http - containerPort: 8080 - protocol: TCP - env: - - name: PUID - value: '1000' - - name: PGID - value: '1000' - - name: TZ - value: America/New_York - volumeMounts: - - name: user-home - mountPath: /config - capabilities: - - Network - - Clipboard - tags: - - webcord - - chat diff --git a/images/altus-selkies/Dockerfile b/images/altus-selkies/Dockerfile new file mode 100644 index 0000000..62e8158 --- /dev/null +++ b/images/altus-selkies/Dockerfile @@ -0,0 +1,35 @@ +# StreamSpace Altus with Selkies-GStreamer (WebRTC) +# +# Altus is a third-party WhatsApp Web desktop client (multiple +# accounts, themes, tray notifications). Distributed only as +# AppImage from amanharwara/altus GitHub releases (no .deb). + +FROM ghcr.io/streamspace-dev/selkies-base:latest + +LABEL org.opencontainers.image.title="StreamSpace Altus" +LABEL org.opencontainers.image.description="Altus WhatsApp Web client with Selkies-GStreamer (WebRTC) streaming for StreamSpace" +LABEL org.opencontainers.image.version="1.0.0" +LABEL org.opencontainers.image.vendor="StreamSpace" +LABEL org.opencontainers.image.source="https://github.com/streamspace-dev/streamspace-templates" + +USER root +ARG DEBIAN_FRONTEND=noninteractive + +RUN set -eux; \ + img_url="$(curl -fsSL https://api.github.com/repos/amanharwara/altus/releases/latest \ + | jq -r '.assets[] | select(.name | test("^Altus-.*\\.AppImage$")) | .browser_download_url' \ + | head -1)"; \ + if [ -z "${img_url}" ]; then echo "Could not resolve Altus AppImage URL" >&2; exit 1; fi; \ + cd /tmp; \ + curl -fsSL -o altus.AppImage "${img_url}"; \ + chmod +x altus.AppImage; \ + ./altus.AppImage --appimage-extract >/dev/null; \ + if [ -d squashfs-root ] && [ ! -L squashfs-root ]; then \ + mv squashfs-root /opt/altus; \ + else \ + mv AppDir /opt/altus; \ + fi; \ + rm -rf altus.AppImage AppDir squashfs-root + +USER user +CMD ["/opt/altus/AppRun", "--no-sandbox"] diff --git a/images/altus-selkies/PLATFORMS b/images/altus-selkies/PLATFORMS new file mode 100644 index 0000000..303dc7a --- /dev/null +++ b/images/altus-selkies/PLATFORMS @@ -0,0 +1 @@ +linux/amd64 diff --git a/images/ferdium-selkies/Dockerfile b/images/ferdium-selkies/Dockerfile new file mode 100644 index 0000000..87f7d95 --- /dev/null +++ b/images/ferdium-selkies/Dockerfile @@ -0,0 +1,29 @@ +# StreamSpace Ferdium with Selkies-GStreamer (WebRTC) +# +# Ferdium is a multi-platform messenger aggregator (Franz successor). +# Electron-based; .deb from ferdium/ferdium-app GitHub releases. + +FROM ghcr.io/streamspace-dev/selkies-base:latest + +LABEL org.opencontainers.image.title="StreamSpace Ferdium" +LABEL org.opencontainers.image.description="Ferdium multi-messenger aggregator with Selkies-GStreamer (WebRTC) streaming for StreamSpace" +LABEL org.opencontainers.image.version="1.0.0" +LABEL org.opencontainers.image.vendor="StreamSpace" +LABEL org.opencontainers.image.source="https://github.com/streamspace-dev/streamspace-templates" + +USER root +ARG DEBIAN_FRONTEND=noninteractive + +RUN set -eux; \ + deb_url="$(curl -fsSL https://api.github.com/repos/ferdium/ferdium-app/releases/latest \ + | jq -r '.assets[] | select(.name | test("Ferdium-linux-.*-amd64\\.deb$")) | .browser_download_url' \ + | head -1)"; \ + if [ -z "${deb_url}" ]; then echo "Could not resolve Ferdium .deb URL" >&2; exit 1; fi; \ + curl -fsSL -o /tmp/ferdium.deb "${deb_url}"; \ + apt-get update; \ + apt-get install -y --no-install-recommends /tmp/ferdium.deb; \ + rm -f /tmp/ferdium.deb; \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +USER user +CMD ["ferdium", "--no-sandbox"] diff --git a/images/ferdium-selkies/PLATFORMS b/images/ferdium-selkies/PLATFORMS new file mode 100644 index 0000000..303dc7a --- /dev/null +++ b/images/ferdium-selkies/PLATFORMS @@ -0,0 +1 @@ +linux/amd64 diff --git a/images/pidgin-selkies/Dockerfile b/images/pidgin-selkies/Dockerfile new file mode 100644 index 0000000..8da437b --- /dev/null +++ b/images/pidgin-selkies/Dockerfile @@ -0,0 +1,21 @@ +# StreamSpace Pidgin with Selkies-GStreamer (WebRTC) +# +# Multi-protocol IM client (XMPP, IRC, etc). Plugins for additional +# protocols can be installed at runtime if needed. + +FROM ghcr.io/streamspace-dev/selkies-base:latest + +LABEL org.opencontainers.image.title="StreamSpace Pidgin" +LABEL org.opencontainers.image.description="Pidgin multi-protocol IM client with Selkies-GStreamer (WebRTC) streaming for StreamSpace" +LABEL org.opencontainers.image.version="1.0.0" +LABEL org.opencontainers.image.vendor="StreamSpace" +LABEL org.opencontainers.image.source="https://github.com/streamspace-dev/streamspace-templates" + +USER root +ARG DEBIAN_FRONTEND=noninteractive +RUN apt-get update && \ + apt-get install -y --no-install-recommends pidgin && \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +USER user +CMD ["pidgin"] diff --git a/images/pidgin-selkies/PLATFORMS b/images/pidgin-selkies/PLATFORMS new file mode 100644 index 0000000..303dc7a --- /dev/null +++ b/images/pidgin-selkies/PLATFORMS @@ -0,0 +1 @@ +linux/amd64 diff --git a/images/webcord-selkies/Dockerfile b/images/webcord-selkies/Dockerfile new file mode 100644 index 0000000..c8e9fb7 --- /dev/null +++ b/images/webcord-selkies/Dockerfile @@ -0,0 +1,31 @@ +# StreamSpace WebCord with Selkies-GStreamer (WebRTC) +# +# WebCord is a privacy-focused unofficial Discord client (Electron +# wrapper around discord.com web app, with extra hardening). Useful +# alternative to discord-selkies for users avoiding Discord's native +# tracking. + +FROM ghcr.io/streamspace-dev/selkies-base:latest + +LABEL org.opencontainers.image.title="StreamSpace WebCord" +LABEL org.opencontainers.image.description="WebCord privacy-focused Discord client with Selkies-GStreamer (WebRTC) streaming for StreamSpace" +LABEL org.opencontainers.image.version="1.0.0" +LABEL org.opencontainers.image.vendor="StreamSpace" +LABEL org.opencontainers.image.source="https://github.com/streamspace-dev/streamspace-templates" + +USER root +ARG DEBIAN_FRONTEND=noninteractive + +RUN set -eux; \ + deb_url="$(curl -fsSL https://api.github.com/repos/SpacingBat3/WebCord/releases/latest \ + | jq -r '.assets[] | select(.name | test("^webcord_.*_amd64\\.deb$")) | .browser_download_url' \ + | head -1)"; \ + if [ -z "${deb_url}" ]; then echo "Could not resolve WebCord .deb URL" >&2; exit 1; fi; \ + curl -fsSL -o /tmp/webcord.deb "${deb_url}"; \ + apt-get update; \ + apt-get install -y --no-install-recommends /tmp/webcord.deb; \ + rm -f /tmp/webcord.deb; \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +USER user +CMD ["webcord", "--no-sandbox"] diff --git a/images/webcord-selkies/PLATFORMS b/images/webcord-selkies/PLATFORMS new file mode 100644 index 0000000..303dc7a --- /dev/null +++ b/images/webcord-selkies/PLATFORMS @@ -0,0 +1 @@ +linux/amd64 diff --git a/selkies/altus-selkies.yaml b/selkies/altus-selkies.yaml new file mode 100644 index 0000000..85d8546 --- /dev/null +++ b/selkies/altus-selkies.yaml @@ -0,0 +1,48 @@ +apiVersion: stream.space/v1alpha1 +kind: Template +metadata: + name: altus-selkies + namespace: workspaces + labels: + app.kubernetes.io/name: altus-selkies + app.kubernetes.io/component: template + streamspace.io/category: communication + streamspace.io/streaming-protocol: selkies + annotations: + streamspace.dev/image-status: published +spec: + displayName: Altus + description: Altus third-party WhatsApp Web client (multi-account, themes, tray notifications) streamed via Selkies-GStreamer (WebRTC). + category: Communication + icon: https://raw.githubusercontent.com/streamspace-dev/streamspace/main/ui/public/icons/altus.svg + baseImage: ghcr.io/streamspace-dev/altus-selkies:latest + streamingProtocol: selkies + defaultResources: + requests: + memory: 2Gi + cpu: 1000m + limits: + memory: 2Gi + cpu: 2000m + ports: + - name: selkies + containerPort: 8080 + protocol: TCP + env: + - name: TZ + value: UTC + - name: DISPLAY_SIZEW + value: '1920' + - name: DISPLAY_SIZEH + value: '1080' + - name: SELKIES_ENABLE_AUDIO + value: 'true' + capabilities: + - Network + - Audio + - Clipboard + tags: + - communication + - whatsapp + - altus + - selkies diff --git a/selkies/ferdium-selkies.yaml b/selkies/ferdium-selkies.yaml new file mode 100644 index 0000000..5250fef --- /dev/null +++ b/selkies/ferdium-selkies.yaml @@ -0,0 +1,48 @@ +apiVersion: stream.space/v1alpha1 +kind: Template +metadata: + name: ferdium-selkies + namespace: workspaces + labels: + app.kubernetes.io/name: ferdium-selkies + app.kubernetes.io/component: template + streamspace.io/category: communication + streamspace.io/streaming-protocol: selkies + annotations: + streamspace.dev/image-status: published +spec: + displayName: Ferdium + description: Ferdium multi-platform messenger aggregator (Franz successor) streamed via Selkies-GStreamer (WebRTC). + category: Communication + icon: https://raw.githubusercontent.com/streamspace-dev/streamspace/main/ui/public/icons/ferdium.svg + baseImage: ghcr.io/streamspace-dev/ferdium-selkies:latest + streamingProtocol: selkies + defaultResources: + requests: + memory: 2Gi + cpu: 1000m + limits: + memory: 2Gi + cpu: 2000m + ports: + - name: selkies + containerPort: 8080 + protocol: TCP + env: + - name: TZ + value: UTC + - name: DISPLAY_SIZEW + value: '1920' + - name: DISPLAY_SIZEH + value: '1080' + - name: SELKIES_ENABLE_AUDIO + value: 'true' + capabilities: + - Network + - Audio + - Clipboard + tags: + - communication + - messenger-aggregator + - ferdium + - selkies diff --git a/selkies/pidgin-selkies.yaml b/selkies/pidgin-selkies.yaml new file mode 100644 index 0000000..1f7c08e --- /dev/null +++ b/selkies/pidgin-selkies.yaml @@ -0,0 +1,50 @@ +apiVersion: stream.space/v1alpha1 +kind: Template +metadata: + name: pidgin-selkies + namespace: workspaces + labels: + app.kubernetes.io/name: pidgin-selkies + app.kubernetes.io/component: template + streamspace.io/category: communication + streamspace.io/streaming-protocol: selkies + annotations: + streamspace.dev/image-status: published +spec: + displayName: Pidgin + description: Pidgin multi-protocol IM client (XMPP, IRC, etc) streamed via Selkies-GStreamer (WebRTC). + category: Communication + icon: https://raw.githubusercontent.com/streamspace-dev/streamspace/main/ui/public/icons/pidgin.svg + baseImage: ghcr.io/streamspace-dev/pidgin-selkies:latest + streamingProtocol: selkies + defaultResources: + requests: + memory: 1Gi + cpu: 500m + limits: + memory: 1Gi + cpu: 1000m + ports: + - name: selkies + containerPort: 8080 + protocol: TCP + env: + - name: TZ + value: UTC + - name: DISPLAY_SIZEW + value: '1920' + - name: DISPLAY_SIZEH + value: '1080' + - name: SELKIES_ENABLE_AUDIO + value: 'true' + capabilities: + - Network + - Audio + - Clipboard + tags: + - communication + - chat + - xmpp + - irc + - pidgin + - selkies diff --git a/selkies/webcord-selkies.yaml b/selkies/webcord-selkies.yaml new file mode 100644 index 0000000..d46b09c --- /dev/null +++ b/selkies/webcord-selkies.yaml @@ -0,0 +1,50 @@ +apiVersion: stream.space/v1alpha1 +kind: Template +metadata: + name: webcord-selkies + namespace: workspaces + labels: + app.kubernetes.io/name: webcord-selkies + app.kubernetes.io/component: template + streamspace.io/category: communication + streamspace.io/streaming-protocol: selkies + annotations: + streamspace.dev/image-status: published +spec: + displayName: WebCord + description: WebCord privacy-focused unofficial Discord client streamed via Selkies-GStreamer (WebRTC). + category: Communication + icon: https://raw.githubusercontent.com/streamspace-dev/streamspace/main/ui/public/icons/webcord.svg + baseImage: ghcr.io/streamspace-dev/webcord-selkies:latest + streamingProtocol: selkies + defaultResources: + requests: + memory: 2Gi + cpu: 1000m + limits: + memory: 2Gi + cpu: 2000m + ports: + - name: selkies + containerPort: 8080 + protocol: TCP + env: + - name: TZ + value: UTC + - name: DISPLAY_SIZEW + value: '1920' + - name: DISPLAY_SIZEH + value: '1080' + - name: SELKIES_ENABLE_AUDIO + value: 'true' + capabilities: + - Network + - Audio + - Clipboard + tags: + - communication + - chat + - discord + - privacy + - webcord + - selkies