{ config, pkgs, lib, ... }: { services.jitsi-meet = { enable = true; nginx.enable = true; hostName = "jitsi.rory.gay"; interfaceConfig = { APP_NAME = "Rory&'s Jitsi Meet Instance"; AUDIO_LEVEL_PRIMARY_COLOR = "rgba(255,0,255,0.5)"; AUDIO_LEVEL_SECONDARY_COLOR = "rgba(255,0,255,0.25)"; AUTO_PIN_LATEST_SCREEN_SHARE = true; BRAND_WATERMARK_LINK = "https://rory.gay"; CLOSE_PAGE_GUEST_HINT = false; DEFAULT_BACKGROUND = "#000000"; DEFAULT_WELCOME_PAGE_LOGO_URL = ""; DISABLE_DOMINANT_SPEAKER_INDICATOR = true; DISABLE_JOIN_LEAVE_NOTIFICATIONS = true; DISABLE_PRESENCE_STATUS = true; DISABLE_TRANSCRIPTION_SUBTITLES = true; DISABLE_VIDEO_BACKGROUND = true; DISABLE_WELCOME_FOOTER = false; DISPLAY_WELCOME_PAGE_ADDITIONAL_CARD = false; DISPLAY_WELCOME_PAGE_CONTENT = false; DISPLAY_WELCOME_PAGE_TOOLBAR_ADDITIONAL_CONTENT = false; ENABLE_DIAL_OUT = false; FILM_STRIP_MAX_HEIGHT = 80; HIDE_INVITE_MORE_HEADER = true; JITSI_WATERMARK_LINK = ""; LANG_DETECTION = false; LOCAL_THUMBNAIL_RATIO = 16 / 9; MAXIMUM_ZOOMING_COEFFICIENT = 2; MOBILE_APP_PROMO = false; OPTIMAL_BROWSERS = [ "firefox" ]; POLICY_LOGO = ""; PROVIDER_NAME = "Rory&'s Jitsi Meet Instance"; SETTINGS_SECTIONS = [ "devices" "language" "moderator" "profile" "calendar" "sounds" "more" ]; SHARING_FEATURES = [ "url" "embed" ]; SHOW_BRAND_WATERMARK = true; SHOW_CHROME_EXTENSION_BANNER = false; SHOW_JITSI_WATERMARK = false; SHOW_POWERED_BY = false; SHOW_PROMOTIONAL_CLOSE_PAGE = false; VERTICAL_FILMSTRIP = true; VIDEO_LAYOUT_FIT = "nocrop"; VIDEO_QUALITY_LABEL_DISABLED = false; }; config = { #hosts.domain = "jitsi.rory.gay"; testing = { assumeBandwidth = false; noAutoPlayVideo = false; callStatsTreshold = 100; }; disableModeratorIndicator = false; disableReactions = false; disableReactionsModeration = false; disablePolls = false; disableSelfView = false; disableSelfViewSettings = false; screenshotCapture = { enabled = true; mode = "always"; }; disableAudioLevels = false; audioLevelsInterval = 12; enableNoAudioDetection = true; enableSaveLogs = false; disableShowMoreStats = false; enableNoisyMicDetection = false; startAudioOnly = false; startAudioMuted = 100; startSilent = false; enableOpusRed = true; audioQuality = { stereo = false; opusMaxAverageBitrate = 51000; enableOpusDtx = true; }; resolution = 720; disableRemoveRaisedHandOnFocus = false; speakerStats = { disabled = false; disableSearc = false; order = [ "role" "name" "left" ]; }; maxFullResolutionParticipants = 10; constraints = { video = { height = { ideal = 720; max = 1080; min = 144; }; }; }; disableSimulcast = false; startVideoMuted = 50; startWithVideoMuted = false; desktopSharingFrameRate = { min = 5; max = 5; }; recordingService.enabled = false; localRecording = { disable = true; notifyAllParticipants = true; disableSelfRecording = true; }; transcription.enabled = false; connectionIndicators = { autoHide = false; autoHideTimeout = 5000; disabled = false; disableDetails = false; inactiveDisabled = false; }; videoQuality = { codecPreferenceOrder = [ "VP9" "VP8" "H264" ]; maxBitratesVideo = { H264 = { low = 200000; # 200 kbps standard = 500000; # 500 kbps high = 700000; # 700 kbps }; VP8 = { low = 200000; # 200 kbps standard = 500000; # 500 kbps high = 700000; # 700 kbps }; VP9 = { low = 200000; # 200 kbps standard = 500000; # 500 kbps high = 700000; # 700 kbps }; }; }; notificationTimeouts = { short = 2000; moderate = 4000; long = 600; }; disableRtx = false; disableBeforeUnloadHandler = false; # UI settings disableResponsiveTiles = false; enableWebHID = true; welcomePage = { disabled = true; customUrl = "https://jitsi.rory.gay/null"; }; lobby = { autoKnock = true; enableChat = true; }; securityUi = { hideLobbyButton = false; disableLobbyPassword = false; }; disableShortcuts = true; disableInitialGUM = true; enableClosePage = false; disable1On1Mode = true; defaultLocalDisplayName = "User"; defaultRemoteDisplayName = "Other User"; hideDisplayName = false; hideDominantSpeakerBadge = false; disableProfile = false; hideEmailInSettings = false; roomPasswordNumberOfDigits = false; enableCalendarIntegration = false; prejoinConfig = { enabled = true; hideDisplayName = false; hideExtraJoinButtons = ["by-phone"]; }; openSharedDocumentOnJoin = false; enableInsecureRoomNameWarning = false; enableAutomaticUrlCopy = false; toolbarButtons = [ "camera" "chat" #"closedcaptions" "desktop" "download" "embedmeeting" #"etherpad" #"feedback" "filmstrip" "fullscreen" "hangup" #"help" "highlight" "invite" #"linktosalesforce" "livestreaming" "microphone" "noisesuppression" "participants-pane" "profile" "raisehand" #"recording" "security" "select-background" "settings" "shareaudio" "sharedvideo" "shortcuts" "stats" "tileview" "toggle-camera" "videoquality" #"whiteboard" ]; toolbarConfig = { alwaysVisible = true; }; gatherStats = true; pcStatsInterval = 1000; enableDisplayNameInStats = true; feedbackPercentage = 0; p2p = { enabled = false; }; analytics.disabled = true; remoteVideoMenu = { disabled = false; disableKick = false; disableGrantModerator = false; disablePrivateChat = false; }; disableRemoteMute = false; enableLipSync = true; participantsPane = { hideModeratorSettingsTab = false; hideMoreActionsButton = false; hideMuteAllButton = false; }; breakoutRooms = { hideAddRoomButton = true; hideAutoAssignButton = true; hideJoinRoomButton = true; }; disableVirtualBackground = true; disableAddingBackgroundImages = true; disableScreensharingVirtualBackground = true; backgroundAlpha = 0.5; hideConferenceTimer = false; hideConferenceSubject = false; hideParticipantsStats = false; displayJids = true; requireDisplayName = true; disableChatSmileys = true; }; }; networking.firewall.allowedTCPPorts = [ 80 443 5349 ]; networking.firewall.allowedUDPPorts = [ 10000 ]; services.nginx.virtualHosts."jitsi.rory.gay" = { enableACME = true; addSSL = true; forceSSL = false; }; system.stateVersion = "22.11"; # DO NOT EDIT! }