ops: paivana and caddy config refresh
This commit is contained in:
parent
d8dbc6242b
commit
56f814a6de
74 changed files with 4517 additions and 79 deletions
55
configs/meet/Containerfile
Normal file
55
configs/meet/Containerfile
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
# koopa-meet-web — Jitsi Meet web assets on CachyOS
|
||||
# Build: bash ~/koopa-admin-log/scripts/meet/build.sh → localhost/koopa-meet-web:cachyos
|
||||
#
|
||||
# Full Meet needs prosody + jicofo + jvb (see compose.yml). This image serves
|
||||
# the static web UI via nginx from Arch/CachyOS packages + upstream meet tarball.
|
||||
# Signaling/media containers are separate services in the same compose.
|
||||
|
||||
ARG CACHYOS_IMAGE=docker.io/cachyos/cachyos:latest
|
||||
FROM ${CACHYOS_IMAGE}
|
||||
|
||||
ARG JITSI_MEET_VERSION=stable
|
||||
ARG JITSI_MEET_URL=https://download.jitsi.org/jitsi-meet/src/jitsi-meet-1.0.0.tar.bz2
|
||||
|
||||
ENV TZ=Europe/Zurich
|
||||
|
||||
RUN pacman -Syu --noconfirm --needed \
|
||||
bash curl ca-certificates catatonit tar nginx \
|
||||
&& pacman -Scc --noconfirm \
|
||||
&& rm -rf /var/cache/pacman/pkg/* /tmp/*
|
||||
|
||||
# CachyOS/Arch nginx.conf embeds a default server and does NOT include http.d/.
|
||||
# Replace it with a minimal conf that serves the branded landing.
|
||||
RUN mkdir -p /usr/share/jitsi-meet /etc/nginx/http.d \
|
||||
&& printf '%s\n' \
|
||||
'worker_processes 1;' \
|
||||
'events { worker_connections 1024; }' \
|
||||
'http {' \
|
||||
' include mime.types;' \
|
||||
' default_type application/octet-stream;' \
|
||||
' sendfile on;' \
|
||||
' keepalive_timeout 65;' \
|
||||
' server {' \
|
||||
' listen 80 default_server;' \
|
||||
' server_name _;' \
|
||||
' root /usr/share/jitsi-meet;' \
|
||||
' index index.html;' \
|
||||
' location / { try_files $uri $uri/ /index.html; }' \
|
||||
' }' \
|
||||
'}' > /etc/nginx/nginx.conf \
|
||||
&& printf '%s\n' \
|
||||
'<!doctype html><html lang=en><meta charset=utf-8>' \
|
||||
'<meta name=viewport content="width=device-width,initial-scale=1">' \
|
||||
'<title>meet.hacktivism.ch</title>' \
|
||||
'<style>body{font-family:system-ui,sans-serif;max-width:40rem;margin:3rem auto;padding:0 1rem;line-height:1.5}' \
|
||||
'code{background:#f2f2f2;padding:.1rem .35rem;border-radius:4px}</style>' \
|
||||
'<h1>meet.hacktivism.ch</h1>' \
|
||||
'<p>Jitsi Meet <strong>web</strong> (CachyOS). Signaling/media (prosody / jicofo / jvb) is Phase 2 — see compose + README.</p>' \
|
||||
'<p>HTTP OK on host port <code>9031</code>. Full rooms need UDP/JVB after Phase 2.</p>' \
|
||||
> /usr/share/jitsi-meet/index.html
|
||||
|
||||
COPY entrypoint.sh /docker-entrypoint.sh
|
||||
RUN chmod 755 /docker-entrypoint.sh
|
||||
|
||||
EXPOSE 80
|
||||
ENTRYPOINT ["/usr/bin/catatonit", "--", "/docker-entrypoint.sh"]
|
||||
23
configs/meet/README.md
Normal file
23
configs/meet/README.md
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# Meet (Jitsi) — CachyOS web stub (koopa)
|
||||
|
||||
| Item | Value |
|
||||
|------|--------|
|
||||
| Public site | `meet.hacktivism.ch` |
|
||||
| Public port | **9031** (`koopa-paivana-meet`) |
|
||||
| Backend | `127.0.0.1:19131` (`koopa-meet-web`) |
|
||||
| Image (web) | `localhost/koopa-meet-web:cachyos` |
|
||||
| Live dir | `/home/hernani/koopa-meet/` |
|
||||
|
||||
Phase 1 = Caddy vhost + branded nginx landing on CachyOS (`koopa-meet-web`) behind Paivana (GOA:42).
|
||||
Phase 2 = prosody + jicofo + jvb — scaffold in `compose.phase2.yml` (`profiles: [phase2]`); images under `configs/meet/phase2/` still TODO. Not `docker-jitsi-meet` Debian by default.
|
||||
UDP/JVB and TURN need VeciGate once rooms work (range TBD in `ports.md`).
|
||||
|
||||
## Caddy
|
||||
|
||||
Caddy stays on `127.0.0.1:9031` (paywall). App bind is loopback `19131` only.
|
||||
|
||||
```bash
|
||||
sudo bash /path/to/koopa-admin-log/scripts/caddy/caddy-apply.sh \
|
||||
--snippet …/configs/caddy/meet.hacktivism.ch.caddy \
|
||||
--site meet.hacktivism.ch --port 9031 --label meet
|
||||
```
|
||||
49
configs/meet/compose.phase2.yml
Normal file
49
configs/meet/compose.phase2.yml
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
# Phase-2 stubs — NOT started by default.
|
||||
# Usage (after images exist):
|
||||
# cd ~/koopa-meet && podman-compose -f compose.yml -f compose.phase2.yml up -d
|
||||
#
|
||||
# Do not pull official docker-jitsi-meet Debian images as the default base.
|
||||
# Build CachyOS (or pinned binary) images under configs/meet/phase2/ when ready.
|
||||
|
||||
services:
|
||||
prosody:
|
||||
profiles: ["phase2"]
|
||||
image: localhost/koopa-meet-prosody:cachyos
|
||||
container_name: koopa-meet-prosody
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- TZ=Europe/Zurich
|
||||
# ports / volumes: fill when Containerfile exists
|
||||
labels:
|
||||
org.hacktivism.service: meet-prosody
|
||||
org.hacktivism.site: meet.hacktivism.ch
|
||||
org.hacktivism.phase: "2"
|
||||
|
||||
jicofo:
|
||||
profiles: ["phase2"]
|
||||
image: localhost/koopa-meet-jicofo:cachyos
|
||||
container_name: koopa-meet-jicofo
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- TZ=Europe/Zurich
|
||||
depends_on:
|
||||
- prosody
|
||||
labels:
|
||||
org.hacktivism.service: meet-jicofo
|
||||
org.hacktivism.site: meet.hacktivism.ch
|
||||
org.hacktivism.phase: "2"
|
||||
|
||||
jvb:
|
||||
profiles: ["phase2"]
|
||||
image: localhost/koopa-meet-jvb:cachyos
|
||||
container_name: koopa-meet-jvb
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- TZ=Europe/Zurich
|
||||
# UDP host publish TBD in ports.md when allocated
|
||||
depends_on:
|
||||
- prosody
|
||||
labels:
|
||||
org.hacktivism.service: meet-jvb
|
||||
org.hacktivism.site: meet.hacktivism.ch
|
||||
org.hacktivism.phase: "2"
|
||||
26
configs/meet/compose.yml
Normal file
26
configs/meet/compose.yml
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# koopa-meet — Jitsi Meet (CachyOS web stub + follow-up signaling/media)
|
||||
# Live: /home/hernani/koopa-meet/
|
||||
# Public :9031 = koopa-paivana-meet (shared paivana image).
|
||||
# Backend loopback only — Paivana DEST → 127.0.0.1:19131
|
||||
#
|
||||
# Next: add prosody / jicofo / jvb services (CachyOS images or pinned binaries).
|
||||
# Official docker-jitsi-meet is Debian-based — do not pull those as default here.
|
||||
services:
|
||||
meet-web:
|
||||
image: localhost/koopa-meet-web:cachyos
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Containerfile
|
||||
container_name: koopa-meet-web
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- TZ=Europe/Zurich
|
||||
ports:
|
||||
- "127.0.0.1:${BACKEND_PORT:-19131}:80"
|
||||
labels:
|
||||
org.hacktivism.service: meet
|
||||
org.hacktivism.backend_port: "${BACKEND_PORT:-19131}"
|
||||
org.hacktivism.site: meet.hacktivism.ch
|
||||
org.hacktivism.managed_by: koopa-admin
|
||||
org.hacktivism.port_status: backend-19131-paywall-9031
|
||||
org.hacktivism.image_base: cachyos
|
||||
3
configs/meet/entrypoint.sh
Executable file
3
configs/meet/entrypoint.sh
Executable file
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
exec nginx -g 'daemon off;'
|
||||
Loading…
Add table
Add a link
Reference in a new issue