{ 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; # disableSearch = 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! }