diff --git a/flake.lock b/flake.lock index fb19844..986cb65 100644 --- a/flake.lock +++ b/flake.lock @@ -74,11 +74,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1770626770, - "narHash": "sha256-uthunhCGLWxxB6tzAajS+MP3dz3TXMK8MyLpzUMlDp0=", + "lastModified": 1770758715, + "narHash": "sha256-FlRSDJ8OlCiWX+tIAZJkQnkBAAwbO125aUdAC6VJlOk=", "owner": "9001", "repo": "copyparty", - "rev": "e8609b87af6785603a7971585d34bb06279ef33c", + "rev": "d44ea245307c06eb060b6e6f5c2cba91a759c940", "type": "github" }, "original": { @@ -268,11 +268,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1770642890, - "narHash": "sha256-XWWHZEy5ZYMOx5hVuz+oeKtKDfv7syl7dwKCBx0LqzA=", + "lastModified": 1770654520, + "narHash": "sha256-mg5WZMIPGsFu9MxSrUcuJUPMbfMsF77el5yb/7rc10k=", "owner": "nix-community", "repo": "home-manager", - "rev": "13a1beb7c9962e0d2ba35a4d5c87546509b89b7d", + "rev": "6c4fdbe1ad198fac36c320fd45c5957324a80b8e", "type": "github" }, "original": { @@ -311,11 +311,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1770329357, - "narHash": "sha256-Z5bDEg5TwVF+v7LHS6PaKO6+2eekNGc4Y6kvKHSOt6c=", + "lastModified": 1770673830, + "narHash": "sha256-m/4WPh6komkPfizenqHmEVZBzn/CpL+WAD4B7axDjqs=", "owner": "LovingMelody", "repo": "nix-citizen", - "rev": "f5f929f6b1d8c292e450f217e98e5c0a4fd5557a", + "rev": "8a7401f3ff547d4ee1a54e893a5e52d4c18cc9ff", "type": "github" }, "original": { @@ -330,11 +330,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1770631245, - "narHash": "sha256-SGPUP0Pe199/Dh3jaEOuFG6K6C0kLGkneKIitmkqTkM=", + "lastModified": 1770691919, + "narHash": "sha256-e3G2ebDGaMfNCeRRSFQivSC+iWktI7a37AEzZ9I+JZA=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "9a2002d01130ba91987a32654a2680fb5cbb0262", + "rev": "6cc488d4779f9dd15dd4831e97b15d2432ae761b", "type": "github" }, "original": { @@ -465,11 +465,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1770197578, - "narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=", + "lastModified": 1770562336, + "narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", + "rev": "d6c71932130818840fc8fe9509cf50be8c64634f", "type": "github" }, "original": { diff --git a/modules/cloudflared.nix b/modules/cloudflared.nix index 5d713a2..6cc71c3 100644 --- a/modules/cloudflared.nix +++ b/modules/cloudflared.nix @@ -21,6 +21,7 @@ in "files.bug.tools" = "http://127.0.0.1:3210"; "tube.bug.tools" = "http://127.0.0.1:3030"; "monitor.bug.tools" = "http://127.0.0.1:61208"; + "reddit.bug.tools" = "http://127.0.0.1:8975"; }; }; }; diff --git a/modules/config/invidious.yml b/modules/config/invidious.yml deleted file mode 100644 index 76f3b9d..0000000 --- a/modules/config/invidious.yml +++ /dev/null @@ -1,902 +0,0 @@ -######################################### -# -# Database configuration -# -######################################### - -## -## Database configuration with separate parameters. -## This setting is MANDATORY, unless 'database_url' is used. -## -db: - user: kemal - password: kemal - host: localhost - port: 5432 - dbname: invidious - -## -## Database configuration using a single URI. This is an -## alternative to the 'db' parameter above. If both forms -## are used, then only database_url is used. -## This setting is MANDATORY, unless 'db' is used. -## -## Note: The 'database_url' setting allows the use of UNIX -## sockets. To do so, remove the IP address (or FQDN) and port -## and append the 'host' parameter. E.g: -## postgres://kemal:kemal@/invidious?host=/var/run/postgresql -## -## Accepted values: a postgres:// URI -## Default: postgres://kemal:kemal@localhost:5432/invidious -## -#database_url: postgres://kemal:kemal@localhost:5432/invidious - -## -## Enable automatic table integrity check. This will create -## the required tables and columns if anything is missing. -## -## Accepted values: true, false -## Default: false -## -#check_tables: false - - - -######################################### -# -# Server config -# -######################################### - -# ----------------------------- -# Network (inbound) -# ----------------------------- - -## -## Port to listen on for incoming connections. -## -## Note: Ports lower than 1024 requires either root privileges -## (not recommended) or the "CAP_NET_BIND_SERVICE" capability -## (See https://stackoverflow.com/a/414258 and `man capabilities`) -## -## Accepted values: 1-65535 -## Default: 3000 -## -port: 3000 - -## -## When the invidious instance is behind a proxy, and the proxy -## listens on a different port than the instance does, this lets -## invidious know about it. This is used to craft absolute URLs -## to the instance (e.g in the API). -## -## Note: This setting is MANDATORY if invidious is behind a -## reverse proxy. -## -## Accepted values: 1-65535 -## Default: -## -#external_port: - -## -## Interface address to listen on for incoming connections. -## -## Accepted values: a valid IPv4 or IPv6 address. -## default: 0.0.0.0 (listen on all interfaces) -## -host_binding: 0.0.0.0 - -## -## Domain name under which this instance is hosted. This is -## used to craft absolute URLs to the instance (e.g in the API). -## The domain MUST be defined if your instance is accessed from -## a domain name (like 'example.com'). -## -## Accepted values: a fully qualified domain name (FQDN) -## Default: -## -domain: - -## -## Tell Invidious that it is behind a proxy that provides only -## HTTPS, so all links must use the https:// scheme. This -## setting MUST be set to true if invidious is behind a -## reverse proxy serving HTTPs. -## -## Accepted values: true, false -## Default: false -## -https_only: true - -## -## Enable/Disable 'Strict-Transport-Security'. Make sure that -## the domain specified under 'domain' is served securely. -## -## Accepted values: true, false -## Default: true -## -hsts: true - - -# ----------------------------- -# Network (outbound) -# ----------------------------- - -## -## Disable proxying server-wide. Can be disable as a whole, or -## only for a single function. -## -## Accepted values: true, false, dash, livestreams, downloads, local -## Default: false -## -#disable_proxy: false - -## -## Size of the HTTP pool used to connect to youtube. Each -## domain ('youtube.com', 'ytimg.com', ...) has its own pool. -## -## Accepted values: a positive integer -## Default: 100 -## -#pool_size: 100 - - -## -## Additional cookies to be sent when requesting the youtube API. -## -## Accepted values: a string in the format "name1=value1; name2=value2..." -## Default: -## -#cookies: - -## -## Force connection to youtube over a specific IP family. -## -## Note: This may sometimes resolve issues involving rate-limiting. -## See https://github.com/ytdl-org/youtube-dl/issues/21729. -## -## Accepted values: ipv4, ipv6 -## Default: -## -#force_resolve: - - -## -## Use Innertube's transcripts API instead of timedtext for closed captions -## -## Useful for larger instances as InnerTube is **not ratelimited**. See https://github.com/iv-org/invidious/issues/2567 -## -## Subtitle experience may differ slightly on Invidious. -## -## Accepted values: true, false -## Default: false -## -# use_innertube_for_captions: false - - -# ----------------------------- -# Logging -# ----------------------------- - -## -## Path to log file. Can be absolute or relative to the invidious -## binary. This is overridden if "-o OUTPUT" or "--output=OUTPUT" -## are passed on the command line. -## -## Accepted values: a filesystem path or 'STDOUT' -## Default: STDOUT -## -#output: STDOUT - -## -## Logging Verbosity. This is overridden if "-l LEVEL" or -## "--log-level=LEVEL" are passed on the command line. -## -## Accepted values: All, Trace, Debug, Info, Warn, Error, Fatal, Off -## Default: Info -## -#log_level: Info - - -# ----------------------------- -# Features -# ----------------------------- - -## -## Enable/Disable the "Popular" tab on the main page. -## -## Accepted values: true, false -## Default: true -## -popular_enabled: true - -## -## Enable/Disable statstics (available at /api/v1/stats). -## The following data is available: -## - Software name ("invidious") and version+branch (same data as -## displayed in the footer, e.g: "2021.05.13-75e5b49" / "master") -## - The value of the 'registration_enabled' config (true/false) -## - Number of currently registered users -## - Number of registered users who connected in the last month -## - Number of registered users who connected in the last 6 months -## - Timestamp of the last server restart -## - Timestamp of the last "Channel Refresh" job execution -## -## Warning: This setting MUST be set to true if you plan to run -## a public instance. It is used by api.invidious.io to refresh -## your instance's status. -## -## Accepted values: true, false -## Default: false -## -statistics_enabled: true - - -# ----------------------------- -# Users and accounts -# ----------------------------- - -## -## Allow/Forbid Invidious (local) account creation. Invidious -## accounts allow users to subscribe to channels and to create -## playlists without a Google account. -## -## Accepted values: true, false -## Default: true -## -registration_enabled: true - -## -## Allow/Forbid users to log-in. -## -## Accepted values: true, false -## Default: true -## -login_enabled: true - -## -## Enable/Disable the captcha challenge on the login page. -## -## Note: this is a basic captcha challenge that doesn't -## depend on any third parties. -## -## Accepted values: true, false -## Default: true -## -captcha_enabled: false - -## -## List of usernames that will be granted administrator rights. -## A user with administrator rights will be able to change the -## server configuration options listed below in /preferences, -## in addition to the usual user preferences. -## -## Server-wide settings: -## - popular_enabled -## - captcha_enabled -## - login_enabled -## - registration_enabled -## - statistics_enabled -## Default user preferences: -## - default_home -## - feed_menu -## -## Accepted values: an array of strings -## Default: [""] -## -#admins: [""] - -## -## Enable/Disable the user notifications for all users -## -## Note: On large instances, it is recommended to set this option to 'false' -## in order to reduce the amount of data written to the database, and hence -## improve the overall performance of the instance. -## -## Accepted values: true, false -## Default: true -## -enable_user_notifications: true - -# ----------------------------- -# Background jobs -# ----------------------------- - -## -## Number of threads to use when crawling channel videos (during -## subscriptions update). -## -## Notes: This setting is overridden if either "-c THREADS" or -## "--channel-threads=THREADS" is passed on the command line. -## -## Accepted values: a positive integer -## Default: 1 -## -channel_threads: 1 - -## -## Time interval between two executions of the job that crawls -## channel videos (subscriptions update). -## -## Accepted values: a valid time interval (like 1h30m or 90m) -## Default: 30m -## -#channel_refresh_interval: 30m - -## -## Forcefully dump and re-download the entire list of uploaded -## videos when crawling channel (during subscriptions update). -## -## Accepted values: true, false -## Default: false -## -full_refresh: false - -## -## Number of threads to use when updating RSS feeds. -## -## Notes: This setting is overridden if either "-f THREADS" or -## "--feed-threads=THREADS" is passed on the command line. -## -## Accepted values: a positive integer -## Default: 1 -## -feed_threads: 1 - -## -## Enable/Disable the polling job that keeps the decryption -## function (for "secured" videos) up to date. -## -## Note: This part of the code generate a small amount of data every minute. -## This may not be desired if you have bandwidth limits set by your ISP. -## -## Note 2: This part of the code is currently broken, so changing -## this setting has no impact. -## -## Accepted values: true, false -## Default: false -## -#decrypt_polling: false - - -jobs: - - ## Options for the database cleaning job - clear_expired_items: - - ## Enable/Disable job - ## - ## Accepted values: true, false - ## Default: true - ## - enable: true - - ## Options for the channels updater job - refresh_channels: - - ## Enable/Disable job - ## - ## Accepted values: true, false - ## Default: true - ## - enable: true - - ## Options for the RSS feeds updater job - refresh_feeds: - - ## Enable/Disable job - ## - ## Accepted values: true, false - ## Default: true - ## - enable: true - - -# ----------------------------- -# Miscellaneous -# ----------------------------- - -## -## custom banner displayed at the top of every page. This can -## used for instance announcements, e.g. -## -## Accepted values: any string. HTML is accepted. -## Default: -## -#banner: - -## -## Subscribe to channels using PubSubHub (Google PubSubHubbub service). -## PubSubHub allows Invidious to be instantly notified when a new video -## is published on any subscribed channels. When PubSubHub is not used, -## Invidious will check for new videos every minute. -## -## Note: This setting is recommended for public instances. -## -## Note 2: -## - Requires a public instance (it uses /feed/webhook/v1) -## - Requires 'domain' and 'hmac_key' to be set. -## - Setting this parameter to any number greater than zero will -## enable channel subscriptions via PubSubHub, but will limit the -## amount of concurrent subscriptions. -## -## Accepted values: true, false, a positive integer -## Default: false -## -#use_pubsub_feeds: false - -## -## HMAC signing key used for CSRF tokens, cookies and pubsub -## subscriptions verification. -## -## Note: This parameter is mandatory and should be a random string. -## Such random string can be generated on linux with the following -## command: `pwgen 20 1` -## -## Accepted values: a string -## Default: -## -hmac_key: "CHANGEME" - -## -## List of video IDs where the "download" widget must be -## disabled, in order to comply with DMCA requests. -## -## Accepted values: an array of string -## Default: -## -#dmca_content: - -## -## Cache video annotations in the database. -## -## Warning: empty annotations or annotations that only contain -## cards won't be cached. -## -## Accepted values: true, false -## Default: false -## -cache_annotations: false - -## -## Source code URL. If your instance is running a modified source -## code, you MUST publish it somewhere and set this option. -## -## Accepted values: a string -## Default: -## -#modified_source_code_url: "" - -## -## Maximum custom playlist length limit. -## -## Accepted values: Integer -## Default: 500 -## -playlist_length_limit: 500 - -######################################### -# -# Default user preferences -# -######################################### - -## -## NOTE: All the settings below define the default user -## preferences. They will apply to ALL users connecting -## without a preferences cookie (so either on the first -## connection to the instance or after clearing the -## browser's cookies). -## - -default_user_preferences: - - # ----------------------------- - # Internationalization - # ----------------------------- - - ## - ## Default user interface language (locale). - ## - ## Note: When hosting a public instance, overriding the - ## default (english) is not recommended, as it may - ## people using other languages. - ## - ## Accepted values: - ## ar (Arabic) - ## da (Danish) - ## de (German) - ## en-US (english, US) - ## el (Greek) - ## eo (Esperanto) - ## es (Spanish) - ## fa (Persian) - ## fi (Finnish) - ## fr (French) - ## he (Hebrew) - ## hr (Hungarian) - ## id (Indonesian) - ## is (Icelandic) - ## it (Italian) - ## ja (Japanese) - ## nb-NO (Norwegian, Bokmål) - ## nl (Dutch) - ## pl (Polish) - ## pt-BR (Portuguese, Brazil) - ## pt-PT (Portuguese, Portugal) - ## ro (Romanian) - ## ru (Russian) - ## sv (Swedish) - ## tr (Turkish) - ## uk (Ukrainian) - ## zh-CN (Chinese, China) (a.k.a "Simplified Chinese") - ## zh-TW (Chinese, Taiwan) (a.k.a "Traditional Chinese") - ## - ## Default: en-US - ## - locale: en-US - - ## - ## Default geographical location for content. - ## - ## Accepted values: - ## AE, AR, AT, AU, AZ, BA, BD, BE, BG, BH, BO, BR, BY, CA, CH, CL, CO, CR, - ## CY, CZ, DE, DK, DO, DZ, EC, EE, EG, ES, FI, FR, GB, GE, GH, GR, GT, HK, - ## HN, HR, HU, ID, IE, IL, IN, IQ, IS, IT, JM, JO, JP, KE, KR, KW, KZ, LB, - ## LI, LK, LT, LU, LV, LY, MA, ME, MK, MT, MX, MY, NG, NI, NL, NO, NP, NZ, - ## OM, PA, PE, PG, PH, PK, PL, PR, PT, PY, QA, RO, RS, RU, SA, SE, SG, SI, - ## SK, SN, SV, TH, TN, TR, TW, TZ, UA, UG, US, UY, VE, VN, YE, ZA, ZW - ## - ## Default: US - ## - region: DE - - ## - ## Top 3 preferred languages for video captions. - ## - ## Note: overriding the default (no preferred - ## caption language) is not recommended, in order - ## to not penalize people using other languages. - ## - ## Accepted values: a three-entries array. - ## Each entry can be one of: - ## "English", "English (auto-generated)", - ## "Afrikaans", "Albanian", "Amharic", "Arabic", - ## "Armenian", "Azerbaijani", "Bangla", "Basque", - ## "Belarusian", "Bosnian", "Bulgarian", "Burmese", - ## "Catalan", "Cebuano", "Chinese (Simplified)", - ## "Chinese (Traditional)", "Corsican", "Croatian", - ## "Czech", "Danish", "Dutch", "Esperanto", "Estonian", - ## "Filipino", "Finnish", "French", "Galician", "Georgian", - ## "German", "Greek", "Gujarati", "Haitian Creole", "Hausa", - ## "Hawaiian", "Hebrew", "Hindi", "Hmong", "Hungarian", - ## "Icelandic", "Igbo", "Indonesian", "Irish", "Italian", - ## "Japanese", "Javanese", "Kannada", "Kazakh", "Khmer", - ## "Korean", "Kurdish", "Kyrgyz", "Lao", "Latin", "Latvian", - ## "Lithuanian", "Luxembourgish", "Macedonian", - ## "Malagasy", "Malay", "Malayalam", "Maltese", "Maori", - ## "Marathi", "Mongolian", "Nepali", "Norwegian Bokmål", - ## "Nyanja", "Pashto", "Persian", "Polish", "Portuguese", - ## "Punjabi", "Romanian", "Russian", "Samoan", - ## "Scottish Gaelic", "Serbian", "Shona", "Sindhi", - ## "Sinhala", "Slovak", "Slovenian", "Somali", - ## "Southern Sotho", "Spanish", "Spanish (Latin America)", - ## "Sundanese", "Swahili", "Swedish", "Tajik", "Tamil", - ## "Telugu", "Thai", "Turkish", "Ukrainian", "Urdu", - ## "Uzbek", "Vietnamese", "Welsh", "Western Frisian", - ## "Xhosa", "Yiddish", "Yoruba", "Zulu" - ## - ## Default: ["", "", ""] - ## - captions: ["English", "English (auto-generated)","German"] - - - # ----------------------------- - # Interface - # ----------------------------- - - ## - ## Enable/Disable dark mode. - ## - ## Accepted values: "dark", "light", "auto" - ## Default: "auto" - ## - dark_mode: "dark" - - ## - ## Enable/Disable thin mode (no video thumbnails). - ## - ## Accepted values: true, false - ## Default: false - ## - thin_mode: false - - ## - ## List of feeds available on the home page. - ## - ## Note: "Subscriptions" and "Playlists" are only visible - ## when the user is logged in. - ## - ## Accepted values: A list of strings - ## Each entry can be one of: "Popular", "Trending", - ## "Subscriptions", "Playlists" - ## - ## Default: ["Popular", "Trending", "Subscriptions", "Playlists"] (show all feeds) - ## - feed_menu: ["Popular", "Trending", "Subscriptions", "Playlists"] - - ## - ## Default feed to display on the home page. - ## - ## Note: setting this option to "Popular" has no - ## effect when 'popular_enabled' is set to false. - ## - ## Accepted values: Popular, Trending, Subscriptions, Playlists, - ## Default: Popular - ## - default_home: Popular - - ## - ## Default number of results to display per page. - ## - ## Note: this affects invidious-generated pages only, such - ## as watch history and subscription feeds. Playlists, search - ## results and channel videos depend on the data returned by - ## the Youtube API. - ## - ## Accepted values: any positive integer - ## Default: 40 - ## - max_results: 64 - - ## - ## Show/hide annotations. - ## - ## Accepted values: true, false - ## Default: false - ## - annotations: false - - ## - ## Show/hide annotation. - ## - ## Accepted values: true, false - ## Default: false - ## - annotations_subscribed: false - - ## - ## Type of comments to display below video. - ## - ## Accepted values: a two-entries array. - ## Each entry can be one of: "youtube", "reddit", "" - ## - ## Default: ["youtube", ""] - ## - comments: ["youtube", "reddit"] - - ## - ## Default player style. - ## - ## Accepted values: invidious, youtube - ## Default: invidious - ## - player_style: invidious - - ## - ## Show/Hide the "related videos" sidebar when - ## watching a video. - ## - ## Accepted values: true, false - ## Default: true - ## - related_videos: true - - - # ----------------------------- - # Video player behavior - # ----------------------------- - - ## - ## Automatically play videos on page load. - ## - ## Accepted values: true, false - ## Default: false - ## - autoplay: false - - ## - ## Automatically load the "next" video (either next in - ## playlist or proposed) when the current video ends. - ## - ## Accepted values: true, false - ## Default: false - ## - continue: false - - ## - ## Autoplay next video by default. - ## - ## Note: Only effective if 'continue' is set to true. - ## - ## Accepted values: true, false - ## Default: true - ## - continue_autoplay: true - - ## - ## Play videos in Audio-only mode by default. - ## - ## Accepted values: true, false - ## Default: false - ## - listen: false - - ## - ## Loop videos automatically. - ## - ## Accepted values: true, false - ## Default: false - ## - video_loop: false - - - # ----------------------------- - # Video playback settings - # ----------------------------- - - ## - ## Default video quality. - ## - ## Accepted values: dash, hd720, medium, small - ## Default: hd720 - ## - quality: dash - - ## - ## Default dash video quality. - ## - ## Note: this setting only takes effet if the - ## 'quality' parameter is set to "dash". - ## - ## Accepted values: - ## auto, best, 4320p, 2160p, 1440p, 1080p, - ## 720p, 480p, 360p, 240p, 144p, worst - ## Default: auto - ## - quality_dash: best - - ## - ## Default video playback speed. - ## - ## Accepted values: 0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0 - ## Default: 1.0 - ## - speed: 1.25 - - ## - ## Default volume. - ## - ## Accepted values: 0-100 - ## Default: 100 - ## - volume: 100 - - ## - ## Allow 360° videos to be played. - ## - ## Note: This feature requires a WebGL-enabled browser. - ## - ## Accepted values: true, false - ## Default: true - ## - vr_mode: true - - ## - ## Save the playback position - ## Allow to continue watching at the previous position when - ## watching the same video. - ## - ## Accepted values: true, false - ## Default: false - ## - save_player_pos: true - - # ----------------------------- - # Subscription feed - # ----------------------------- - - ## - ## In the "Subscription" feed, only show the latest video - ## of each channel the user is subscribed to. - ## - ## Note: when combined with 'unseen_only', the latest unseen - ## video of each channel will be displayed instead of the - ## latest by date. - ## - ## Accepted values: true, false - ## Default: false - ## - latest_only: false - - ## - ## Enable/Disable user subscriptions desktop notifications. - ## - ## Accepted values: true, false - ## Default: false - ## - notifications_only: false - - ## - ## In the "Subscription" feed, Only show the videos that the - ## user haven't watched yet (i.e which are not in their watch - ## history). - ## - ## Accepted values: true, false - ## Default: false - ## - unseen_only: false - - ## - ## Default sorting parameter for subscription feeds. - ## - ## Accepted values: - ## 'alphabetically' - ## 'alphabetically - reverse' - ## 'channel name' - ## 'channel name - reverse' - ## 'published' - ## 'published - reverse' - ## - ## Default: published - ## - sort: published - - - # ----------------------------- - # Miscellaneous - # ----------------------------- - - ## - ## Proxy videos through instance by default. - ## - ## Warning: As most users won't change this setting in their - ## preferences, defaulting to true will significantly - ## increase the instance's network usage, so make sure that - ## your server's connection can handle it. - ## - ## Accepted values: true, false - ## Default: false - ## - local: false - - ## - ## Show the connected user's nick at the top right. - ## - ## Accepted values: true, false - ## Default: true - ## - show_nick: true - - ## - ## Automatically redirect to a random instance when the user uses - ## any "switch invidious instance" link (For videos, it's the plane - ## icon, next to "watch on youtube" and "listen"). When set to false, - ## the user is sent to https://redirect.invidious.io instead, where - ## they can manually select an instance. - ## - ## Accepted values: true, false - ## Default: false - ## - automatic_instance_redirect: false - - ## - ## Show the entire video description by default (when set to 'false', - ## only the first few lines of the description are shown and a - ## "show more" button allows to expand it). - ## - ## Accepted values: true, false - ## Default: false - ## - extend_desc: true - diff --git a/modules/fedi/invidious.nix b/modules/fedi/invidious.nix deleted file mode 100755 index 9218b73..0000000 --- a/modules/fedi/invidious.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - services.invidious = { - enable = true; - # sig helper is deprecated -> waiting for nixos pkg update to Invidious companion (see: https://docs.invidious.io/installation/#hardware-requirements) - sig-helper = { - enable = true; - listenAddress = "127.0.0.1:2999"; - }; - port = 3030; - domain = "tube.bug.tools"; - settings = { - signature_server = "127.0.0.1:2999"; - https_only = true; - hsts = true; - external_port = 443; - popular_enabled = true; - statistics_enabled = true; - registration_enabled = false; - login_enabled = true; - captcha_enabled = false; - enable_user_notifications = false; - channel_threads = 2; - full_refresh = false; - cache_annotations = true; - playlist_length_limit = 500; - default_user_preferences = { - locale = "en-US"; - region = "DE"; - captions = [ - "German" - "English" - "English (auto-generated)" - ]; - dark_mode = "dark"; - thin_mode = false; - feed_menu = [ - "Popular" - "Trending" - "Subscriptions" - "Playlists" - ]; - default_home = "Popular"; - max_results = 60; - annotations = false; - annotations_subscribed = false; - comments = [ - "youtube" - "reddit" - ]; - player_style = "invidious"; - related_videos = true; - autoplay = false; - continue = false; - continue_autoplay = true; - listen = false; - video_loop = false; - quality = "dash"; - quality_dash = "best"; - speed = 1.5; - volume = 100; - vr_mode = true; - save_player_pos = true; - latest_only = false; - notifications_only = false; - unseen_only = false; - sort = "published"; - }; - }; - }; -} diff --git a/modules/fedi/libreddit.nix b/modules/fedi/libreddit.nix deleted file mode 100755 index b7b7f6b..0000000 --- a/modules/fedi/libreddit.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - options.nixos = { - server.fediverse.libreddit = { - enable = lib.mkOption { - type = lib.types.bool; - default = false; - example = true; - description = "Enable Libreddit."; - }; - }; - }; - - config = lib.mkIf config.nixos.server.fediverse.libreddit.enable { - services.redlib = { - enable = true; - address = "127.0.0.1"; - port = 8975; - openFirewall = false; - - settings = { - SFW_ONLY = "off"; # ["on", "off"] - ROBOTS_DISABLE_INDEXING = "on"; # ["on", "off"] - ENABLE_RSS = "on"; # ["on", "off"] - THEME = "system"; # ["system", "light", "dark", "black", "dracula", "nord", "laserwave", "violet", "gold", "rosebox", "gruvboxdark", "gruvboxlight", "tokyoNight", "icebergDark", "doomone", "libredditBlack", "libredditDark", "libredditLight"] - FRONT_PAGE = "default"; # ["default", "popular", "all"] - LAYOUT = "card"; # ["card", "clean", "compact"] - WIDE = "on"; # ["on", "off"] - POST_SORT = "hot"; # ["hot", "new", "top", "rising", "controversial"] - COMMENT_SORT = "confidence"; # ["confidence", "top", "new", "controversial", "old"] - BLUR_SPOILER = "off"; # ["on", "off"] - SHOW_NSFW = "on"; # ["on", "off"] - BLUR_NSFW = "off"; # ["on", "off"] - USE_HLS = "on"; # ["on", "off"] - HIDE_HLS_NOTIFICATION = "off"; # ["on", "off"] - AUTOPLAY_VIDEOS = "off"; # ["on", "off"] - HIDE_AWARDS = "off"; # ["on", "off"] - DISABLE_VISIT_REDDIT_CONFIRMATION = "off"; # ["on", "off"] - HIDE_SCORE = "off"; # ["on", "off"] - HIDE_SIDEBAR_AND_SUMMARY = "off"; # ["on", "off"] - FIXED_NAVBAR = "on"; # ["on", "off"] - REMOVE_DEFAULT_FEEDS = "off"; # ["on", "off"] - }; - }; - - services.nginx = { - virtualHosts = { - "libreddit.${config.nixos.server.network.nginx.domain}" = { - forceSSL = true; - enableACME = true; - acmeRoot = null; - kTLS = true; - http2 = false; - locations."/" = { - proxyPass = "http://localhost:8975"; - }; - }; - }; - }; - - services.ddclient.domains = [ - "libreddit.${config.nixos.server.network.nginx.domain}" - ]; - }; -} diff --git a/modules/fedi/searxng_key b/modules/fedi/searxng_key deleted file mode 100644 index 03c1e66..0000000 --- a/modules/fedi/searxng_key +++ /dev/null @@ -1,2 +0,0 @@ -SEARX_SECRET_KEY=random-string -SEARXNG_SECRET=random-string \ No newline at end of file diff --git a/modules/invidious.nix b/modules/invidious.nix index 5519520..e05b027 100644 --- a/modules/invidious.nix +++ b/modules/invidious.nix @@ -1,28 +1,56 @@ +{ config, pkgs, lib, ... }: -{ config, pkgs, ... }: - +let + companionPort = 8282; + companionPath = "/companion"; + companionKey = "kKg3RKeZjE7frmuw"; +in { - services.invidious = { - enable = true; + virtualisation.podman.enable = true; + virtualisation.oci-containers.backend = lib.mkDefault "podman"; - domain = "tube.bug.tools"; + virtualisation.oci-containers.containers.invidious-companion = { + image = "quay.io/invidious/invidious-companion:latest"; + extraOptions = [ "--network=host" "--pull=always" ]; - port = 3030; + environment = { + SERVER_SECRET_KEY = companionKey; + HOST = "127.0.0.1"; + PORT = toString companionPort; + SERVER_BASE_URL = "http://127.0.0.1:${toString companionPort}"; - database.createLocally = true; - - settings = { - https_only = true; - external_port = 443; - - registration_enabled = false; - login_enabled = true; - - popular_enabled = true; - - default_user_preferences = { - local = true; - }; + # HTTP_PROXY = "http://proxy.example:3128"; + # HTTPS_PROXY = "http://proxy.example:3128"; + # NO_PROXY = "127.0.0.1,localhost"; }; }; -} + + services.invidious = { + enable = true; + package = pkgs.invidious; + + address = "127.0.0.1"; + port = 3030; + + nginx.enable = false; + sig-helper.enable = false; + + settings = { + domain = "tube.bug.tools"; + https_only = true; + external_port = 3030; + + invidious_companion = [ + { private_url = "http://127.0.0.1:${toString companionPort}${companionPath}"; } + ]; + + invidious_companion_key = companionKey; + }; + }; + + systemd.services.invidious = let dep = "podman-invidious-companion.service"; in { + wants = [ dep ]; + after = [ dep ]; + requires = [ dep ]; + }; +} \ No newline at end of file diff --git a/modules/redlib.nix b/modules/redlib.nix index a35dd96..72c78ef 100644 --- a/modules/redlib.nix +++ b/modules/redlib.nix @@ -3,32 +3,33 @@ { services.redlib = { enable = true; + address = "127.0.0.1"; port = 8975; openFirewall = false; settings = { - SFW_ONLY = "off"; # ["on", "off"] - ROBOTS_DISABLE_INDEXING = "on"; # ["on", "off"] - ENABLE_RSS = "on"; # ["on", "off"] - THEME = "system"; # ["system", "light", "dark", "black", "dracula", "nord", "laserwave", "violet", "gold", "rosebox", "gruvboxdark", "gruvboxlight", "tokyoNight", "icebergDark", "doomone", "libredditBlack", "libredditDark", "libredditLight"] - FRONT_PAGE = "default"; # ["default", "popular", "all"] - LAYOUT = "card"; # ["card", "clean", "compact"] - WIDE = "on"; # ["on", "off"] - POST_SORT = "hot"; # ["hot", "new", "top", "rising", "controversial"] - COMMENT_SORT = "confidence"; # ["confidence", "top", "new", "controversial", "old"] - BLUR_SPOILER = "off"; # ["on", "off"] - SHOW_NSFW = "on"; # ["on", "off"] - BLUR_NSFW = "off"; # ["on", "off"] - USE_HLS = "on"; # ["on", "off"] - HIDE_HLS_NOTIFICATION = "off"; # ["on", "off"] - AUTOPLAY_VIDEOS = "off"; # ["on", "off"] - HIDE_AWARDS = "off"; # ["on", "off"] - DISABLE_VISIT_REDDIT_CONFIRMATION = "off"; # ["on", "off"] - HIDE_SCORE = "off"; # ["on", "off"] - HIDE_SIDEBAR_AND_SUMMARY = "off"; # ["on", "off"] - FIXED_NAVBAR = "on"; # ["on", "off"] - REMOVE_DEFAULT_FEEDS = "off"; # ["on", "off"] + SFW_ONLY = "off"; # ["on", "off"] + ROBOTS_DISABLE_INDEXING = "on"; # ["on", "off"] + ENABLE_RSS = "on"; # ["on", "off"] + THEME = "system"; # ["system", "light", "dark", "black", "dracula", "nord", "laserwave", "violet", "gold", "rosebox", "gruvboxdark", "gruvboxlight", "tokyoNight", "icebergDark", "doomone", "libredditBlack", "libredditDark", "libredditLight"] + FRONT_PAGE = "default"; # ["default", "popular", "all"] + LAYOUT = "card"; # ["card", "clean", "compact"] + WIDE = "on"; # ["on", "off"] + POST_SORT = "hot"; # ["hot", "new", "top", "rising", "controversial"] + COMMENT_SORT = "confidence"; # ["confidence", "top", "new", "controversial", "old"] + BLUR_SPOILER = "off"; # ["on", "off"] + SHOW_NSFW = "on"; # ["on", "off"] + BLUR_NSFW = "off"; # ["on", "off"] + USE_HLS = "on"; # ["on", "off"] + HIDE_HLS_NOTIFICATION = "off"; # ["on", "off"] + AUTOPLAY_VIDEOS = "off"; # ["on", "off"] + HIDE_AWARDS = "off"; # ["on", "off"] + DISABLE_VISIT_REDDIT_CONFIRMATION = "off"; # ["on", "off"] + HIDE_SCORE = "off"; # ["on", "off"] + HIDE_SIDEBAR_AND_SUMMARY = "off"; # ["on", "off"] + FIXED_NAVBAR = "on"; # ["on", "off"] + REMOVE_DEFAULT_FEEDS = "off"; # ["on", "off"] }; }; } diff --git a/modules/searxng.nix b/modules/searxng.nix index 57c72f8..fe54f23 100755 --- a/modules/searxng.nix +++ b/modules/searxng.nix @@ -9,7 +9,7 @@ enable = true; redisCreateLocally = false; configureUwsgi = false; - settingsFile = config/searxng.yml; + settingsFile = ./searxng.yml; environmentFile = "/home/bug/.searxng.env"; settings = { diff --git a/modules/config/searxng.yml b/modules/searxng.yml similarity index 100% rename from modules/config/searxng.yml rename to modules/searxng.yml