转 聊天服务器
|-转 /opt/jitsimeet/.env 文件生成成功 [ERROR] ❌ /opt/jitsimeet/.env 文件中以下变量未正确设置: DOMAIN DATA
还有那个data方法没有用的,因为那个原文件里面就没有data那个参数,所以你怎么替换都没有用,必须在最后面再生成一条,就是你要判断,如果查不到那个的话,就要去查不到那个data那个参数的话,就在那个配置文件里查,不查不到的话就要自己去生成,生成一在最后生成一条。
您完全正确!如果原文件中根本没有 DATA这个参数,单纯的 sed替换确实不会生效。我们需要先检查参数是否存在,不存在则追加到文件末尾。以下是完善后的解决方案:
智能化的配置方案
修改后的 setup_jitsimeet_files()函数关键部分
 [✅] RocketChat 配置就绪
[2025-09-28 21:59:57] [INFO] [SETUP] 初始化 Jitsi Meet 配置文件...
[2025-09-28 21:59:57] [INFO] [DOWNLOAD] 下载 docker-compose.yml
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 17521  100 17521    0     0  13077      0  0:00:01  0:00:01 --:--:-- 13075
[2025-09-28 21:59:59] [INFO] [OK] /opt/jitsimeet/docker-compose.yml 下载完成
[2025-09-28 21:59:59] [INFO] [GENERATE] 生成 /opt/jitsimeet/.env 文件
[2025-09-28 21:59:59] [INFO] [OK] /opt/jitsimeet/.env 文件生成成功
[ERROR] ❌ /opt/jitsimeet/.env 文件中以下变量未正确设置: DOMAIN DATA
[ERROR] 请删除 /opt/jitsimeet/.env 并重新运行安装
~/s/shell_factory ❯❯❯  
---------------------------------------------------
/o/jitsimeet ❯❯❯ ll
total 36K
drwxr-xr-x 5 root root 4.0K Sep 28 18:51 config
drwxr-xr-x 3 root root 4.0K Sep 28 18:51 data
-rw-r--r-- 1 root root  18K Sep 28 21:59 docker-compose.yml
-rw-r--r-- 1 root root 6.4K Sep 28 21:24 env.example
/o/jitsimeet ❯❯❯cat env.example
# shellcheck disable=SC2034
################################################################################
################################################################################
# Welcome to the Jitsi Meet Docker setup!
#
# This sample .env file contains some basic options to get you started.
# The full options reference can be found here:
# https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker
################################################################################
################################################################################
#
# Basic configuration options
#
# Directory where all configuration will be stored
CONFIG=~/.jitsi-meet-cfg
# Exposed HTTP port (will redirect to HTTPS port)
HTTP_PORT=8000
# Exposed HTTPS port
HTTPS_PORT=8443
# System time zone
TZ=UTC
# Public URL for the web service (required)
# Keep in mind that if you use a non-standard HTTPS port, it has to appear in the public URL
#PUBLIC_URL=https://meet.example.com:${HTTPS_PORT}
# Media IP addresses and ports to advertise by the JVB
# This setting deprecates DOCKER_HOST_ADDRESS, and supports a comma separated list of IPs
# See the "Running behind NAT or on a LAN environment" section in the Handbook:
# https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker#running-behind-nat-or-on-a-lan-environment
#JVB_ADVERTISE_IPS=192.168.1.1,1.2.3.4,192.168.178.1#12000,fe80::1#12000
#
# Memory limits for Java components
#
#JICOFO_MAX_MEMORY=3072m
#VIDEOBRIDGE_MAX_MEMORY=3072m
#
# JaaS Components (beta)
# https://jaas.8x8.vc
#
# Enable JaaS Components (hosted Jigasi)
# NOTE: if Let's Encrypt is enabled a JaaS account will be automatically created, using the provided email in LETSENCRYPT_EMAIL
#ENABLE_JAAS_COMPONENTS=0
#
# Let's Encrypt configuration
#
# Enable Let's Encrypt certificate generation
#ENABLE_LETSENCRYPT=1
# Domain for which to generate the certificate
#LETSENCRYPT_DOMAIN=meet.example.com
# E-Mail for receiving important account notifications (mandatory)
#LETSENCRYPT_EMAIL=alice@atlanta.net
# Use the staging server (for avoiding rate limits while testing)
#LETSENCRYPT_USE_STAGING=1
# Set ACME server. Default is zerossl, you can peek one at https://github.com/acmesh-official/acme.sh/wiki/Server
#LETSENCRYPT_ACME_SERVER="letsencrypt"
#
# Etherpad integration (for document sharing)
#
# Set the etherpad-lite URL in the docker local network (uncomment to enable)
#ETHERPAD_URL_BASE=http://etherpad.meet.jitsi:9001
# Set etherpad-lite public URL, including /p/ pad path fragment (uncomment to enable)
#ETHERPAD_PUBLIC_URL=https://etherpad.my.domain/p/
#
# Whiteboard integration
#
# Set the excalidraw-backend URL in the docker local network (uncomment to enable)
#WHITEBOARD_COLLAB_SERVER_URL_BASE=http://whiteboard.meet.jitsi
# Set the excalidraw-backend public URL (uncomment to enable)
#WHITEBOARD_COLLAB_SERVER_PUBLIC_URL=https://whiteboard.meet.my.domain
#
# Basic Jigasi configuration options (needed for SIP gateway support)
#
# SIP URI for incoming / outgoing calls
#JIGASI_SIP_URI=test@sip2sip.info
# Password for the specified SIP account as a clear text
#JIGASI_SIP_PASSWORD=passw0rd
# SIP server (use the SIP account domain if in doubt)
#JIGASI_SIP_SERVER=sip2sip.info
# SIP server port
#JIGASI_SIP_PORT=5060
# SIP server transport
#JIGASI_SIP_TRANSPORT=UDP
#
# Authentication configuration (see handbook for details)
#
# Enable authentication (will ask for login and password to join the meeting)
#ENABLE_AUTH=1
# Enable guest access (if authentication is enabled, this allows for users to be held in lobby until registered user lets them in)
#ENABLE_GUESTS=1
# Select authentication type: internal, jwt, ldap or matrix
#AUTH_TYPE=internal
# JWT authentication
#
# Application identifier
#JWT_APP_ID=my_jitsi_app_id
# Application secret known only to your token generator
#JWT_APP_SECRET=my_jitsi_app_secret
# (Optional) Set asap_accepted_issuers as a comma separated list
#JWT_ACCEPTED_ISSUERS=my_web_client,my_app_client
# (Optional) Set asap_accepted_audiences as a comma separated list
#JWT_ACCEPTED_AUDIENCES=my_server1,my_server2
# LDAP authentication (for more information see the Cyrus SASL saslauthd.conf man page)
#
# LDAP url for connection
#LDAP_URL=ldaps://ldap.domain.com/
# LDAP base DN. Can be empty
#LDAP_BASE=DC=example,DC=domain,DC=com
# LDAP user DN. Do not specify this parameter for the anonymous bind
#LDAP_BINDDN=CN=binduser,OU=users,DC=example,DC=domain,DC=com
# LDAP user password. Do not specify this parameter for the anonymous bind
#LDAP_BINDPW=LdapUserPassw0rd
# LDAP filter. Tokens example:
# %1-9 - if the input key is user@mail.domain.com, then %1 is com, %2 is domain and %3 is mail
# %s - %s is replaced by the complete service string
# %r - %r is replaced by the complete realm string
#LDAP_FILTER=(sAMAccountName=%u)
# LDAP authentication method
#LDAP_AUTH_METHOD=bind
# LDAP version
#LDAP_VERSION=3
# LDAP TLS using
#LDAP_USE_TLS=1
# List of SSL/TLS ciphers to allow
#LDAP_TLS_CIPHERS=SECURE256:SECURE128:!AES-128-CBC:!ARCFOUR-128:!CAMELLIA-128-CBC:!3DES-CBC:!CAMELLIA-128-CBC
# Require and verify server certificate
#LDAP_TLS_CHECK_PEER=1
# Path to CA cert file. Used when server certificate verify is enabled
#LDAP_TLS_CACERT_FILE=/etc/ssl/certs/ca-certificates.crt
# Path to CA certs directory. Used when server certificate verify is enabled
#LDAP_TLS_CACERT_DIR=/etc/ssl/certs
# Wether to use starttls, implies LDAPv3 and requires ldap:// instead of ldaps://
# LDAP_START_TLS=1
#
# Security
#
# Set these to strong passwords to avoid intruders from impersonating a service account
# The service(s) won't start unless these are specified
# Running ./gen-passwords.sh will update .env with strong passwords
# You may skip the Jigasi and Jibri passwords if you are not using those
# DO NOT reuse passwords
#
# XMPP password for Jicofo client connections
JICOFO_AUTH_PASSWORD=
# XMPP password for JVB client connections
JVB_AUTH_PASSWORD=
# XMPP password for Jigasi MUC client connections
JIGASI_XMPP_PASSWORD=
# XMPP password for Jigasi transcriber client connections
JIGASI_TRANSCRIBER_PASSWORD=
# XMPP recorder password for Jibri client connections
JIBRI_RECORDER_PASSWORD=
# XMPP password for Jibri client connections
JIBRI_XMPP_PASSWORD=
#
# Docker Compose options
#
# Container restart policy
#RESTART_POLICY=unless-stopped
# Jitsi image version (useful for local development)
#JITSI_IMAGE_VERSION=latest
/o/jitsimeet ❯❯❯
===========  code1 ========================================
# ? 基础路径:统一使用 /opt
# ========================
BASE_DIR="${BASE_DIR:-/opt}"
# ? 配置与数据目录(使用下划线命名,你喜欢的风格)
CONFIG_DIR="${CONFIG_DIR:-$BASE_DIR/jitsimeet_config}"
DATA_DIR="${DATA_DIR:-$BASE_DIR/jitsimeet_data}"
mkdir -p "$CONFIG_DIR" # 20250928 2146
mkdir -p "$DATA_DIR" # 20250928 2146
# ========================
# ?️ 服务目录(扁平结构,不再嵌套 docker-jitsi-meet)
# ========================
RC_DIR="${RC_DIR:-$BASE_DIR/$CHAT_SERVICE_NAME}"
JM_DIR="${JM_DIR:-$BASE_DIR/$MEET_SERVICE_NAME}"   # 扁平:/opt/jitsimeet
# compose 执行目录
RC_COMPOSE_DIR="$RC_DIR"
JM_COMPOSE_DIR="$JM_DIR"
# 关键文件
COMPOSE_FILE="docker-compose.yml"
RC_ENV_FILE="$RC_DIR/.env"
JM_ENV_FILE="$JM_DIR/.env"   # 明确区分
# 容器名称
RC_CONTAINER_NAME="rocketchat"
JM_WEB_CONTAINER="web"
JM_PROSODY_CONTAINER="prosody"
JM_JICOFO_CONTAINER="jicofo"
JM_JVB_CONTAINER="jvb"
JM_JVB_COLIBRI_PORT="8888"     
============================ code2 =========     
#!/usr/bin/env bash
# libs/setup_jitsimeet.sh
#==========================================
# 安装/配置 Jitsi Meet 
#==========================================
setup_jitsimeet_files() {
    log "[SETUP] 初始化 Jitsi Meet 配置文件..."
    # 检查必要变量是否已设置
    if [[ -z "$JM_DIR" || -z "$CONFIG_DIR" || -z "$DATA_DIR" || -z "$JM_DOMAIN" ]]; then
        error "必要变量未设置: JM_DIR=$JM_DIR, CONFIG_DIR=$CONFIG_DIR, DATA_DIR=$DATA_DIR, JM_DOMAIN=$JM_DOMAIN"
        return 1
    fi
    # 创建必要的目录
    mkdir -p "$JM_DIR" "$CONFIG_DIR"/{web,prosody,jicofo,jvb} "$DATA_DIR"/transcripts
    # 下载 docker-compose.yml
    local compose_file="$JM_DIR/docker-compose.yml"
    sudo rm -f "$compose_file" # 删除旧文件
    if [[ ! -f "$compose_file" ]]; then
        log "[DOWNLOAD] 下载 docker-compose.yml"
        if ! curl -o "$compose_file" -L https://raw.githubusercontent.com/jitsi/docker-jitsi-meet/master/docker-compose.yml ; then
            error "下载 $compose_file 失败,请检查网络"
            return 1
        fi
        log "[OK] $compose_file 下载完成"
    fi
    # 生成 .env 文件
    local env_file="$JM_DIR/.env"
    local env_example="$JM_DIR/env.example"
    sudo rm -f "$env_file" # 删除旧文件
    if [[ ! -f "$env_file" ]]; then
        log "[GENERATE] 生成 $env_file 文件"
        # 下载 env.example
        if [[ ! -f "$env_example" ]]; then
            if ! curl -f -o "$env_example" -L https://raw.githubusercontent.com/jitsi/docker-jitsi-meet/master/env.example ; then
                error "下载 $env_example 失败"
                return 1
            fi
        fi
        sudo cp "$env_example" "$env_file" || {
            error "cp $env_example  $env_file 失败"
            return 1
        }
        # 生成随机密码
        local jicofo_pwd=$(openssl rand -hex 16)
        local jvb_pwd=$(openssl rand -hex 16)
        # 批量替换
        sed -i "s|HTTP_PORT=8000|HTTP_PORT=$JM_HOST_HTTP_PORT|" "$env_file" || { error "替换 HTTP_PORT 失败"; rm -f "$env_file"; return 1; }
        sed -i "s|HTTPS_PORT=8443|HTTPS_PORT=$JM_HOST_HTTPS_PORT|" "$env_file" || { error "替换 HTTPS_PORT 失败"; rm -f "$env_file"; return 1; }
        sed -i "s|DOMAIN=meet.jitsi|DOMAIN=$JM_DOMAIN|" "$env_file" || { error "替换 DOMAIN 失败"; rm -f "$env_file"; return 1; }
        sed -i "s|CONFIG=.*|CONFIG=$CONFIG_DIR|" "$env_file" || { error "替换 CONFIG 失败"; rm -f "$env_file"; return 1; }
        sed -i "s|DATA=.*|DATA=$DATA_DIR|" "$env_file" || { error "替换 DATA 失败"; rm -f "$env_file"; return 1; }
        sed -i "s|JICOFO_AUTH_PASSWORD=.*|JICOFO_AUTH_PASSWORD=$jicofo_pwd|" "$env_file" || { error "替换 JICOFO_AUTH_PASSWORD 失败"; rm -f "$env_file"; return 1; }
        sed -i "s|JVB_AUTH_PASSWORD=.*|JVB_AUTH_PASSWORD=$jvb_pwd|" "$env_file" || { error "替换 JVB_AUTH_PASSWORD 失败"; rm -f "$env_file"; return 1; }
        chmod 644 "$env_file"
        log "[OK] $env_file 文件生成成功"
    else
        log "[SKIP] $env_file 已存在"
    fi
    if [[ ! -f "$env_file" ]]; then
      error "$env_file 生成成功 is wrong, $env_file 生成失败"
      return 1
    fi
    # 验证 .env 文件中所有关键变量是否已替换
    local missing_vars=()
    grep -q "^HTTP_PORT=$JM_HOST_HTTP_PORT" "$env_file" || missing_vars+=("HTTP_PORT")
    grep -q "^HTTPS_PORT=$JM_HOST_HTTPS_PORT" "$env_file" || missing_vars+=("HTTPS_PORT")
    grep -q "^DOMAIN=$JM_DOMAIN" "$env_file" || missing_vars+=("DOMAIN")
    grep -q "^CONFIG=$CONFIG_DIR" "$env_file" || missing_vars+=("CONFIG")
    grep -q "^DATA=$DATA_DIR" "$env_file" || missing_vars+=("DATA")
    grep -q "^JICOFO_AUTH_PASSWORD=$jicofo_pwd" "$env_file" || missing_vars+=("JICOFO_AUTH_PASSWORD")
    grep -q "^JVB_AUTH_PASSWORD=$jvb_pwd" "$env_file" || missing_vars+=("JVB_AUTH_PASSWORD")
    if [[ ${#missing_vars[@]} -gt 0 ]]; then
        error "❌ $env_file 文件中以下变量未正确设置: ${missing_vars[*]}"
        error "请删除 $env_file 并重新运行安装"
        return 1
    fi
    log "[✅] Jitsi Meet 配置就绪: $JM_DIR"
}
20250928 20\209 ...
浏览更多内容请先登录。
            立即注册
			
			更新于:2025-09-28 22:39:01
			
					相关内容
Xampp安装后apache启动失败报错 www.example.com:443:0 server certificate...
win7电脑TrustedInstaller.exe占用内存很大如何解决
推荐内容
		