diff --git a/ct/alpine-redlib.sh b/ct/alpine-redlib.sh new file mode 100644 index 0000000000..84263b8eba --- /dev/null +++ b/ct/alpine-redlib.sh @@ -0,0 +1,56 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) +# Copyright (c) 2021-2025 community-scripts ORG +# Author: andrej-kocijan (Andrej Kocijan) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/redlib-org/redlib + +APP="Alpine-Redlib" +var_tags="${var_tags:-alpine;frontend}" +var_cpu="${var_cpu:-1}" +var_ram="${var_ram:-512}" +var_disk="${var_disk:-1}" +var_os="${var_os:-alpine}" +var_version="${var_version:-3.22}" +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_resources + + if [[ ! -d /opt/redlib ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + msg_info "Updating Alpine Packages" + $STD apk -U upgrade + msg_ok "Updated Alpine Packages" + + msg_info "Stopping ${APP} Service" + $STD rc-service redlib stop + msg_ok "Stopped ${APP} Service" + + fetch_and_deploy_gh_release "redlib" "redlib-org/redlib" "prebuild" "latest" "/opt/redlib" "redlib-x86_64-unknown-linux-musl.tar.gz" + + msg_info "Starting ${APP} Service" + $STD rc-service redlib start + msg_ok "Started ${APP} Service" + + msg_ok "Update Successful" + exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Access it using the following URL:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5252${CL}" diff --git a/ct/headers/alpine-redlib b/ct/headers/alpine-redlib new file mode 100644 index 0000000000..7d8f1130b6 --- /dev/null +++ b/ct/headers/alpine-redlib @@ -0,0 +1,6 @@ + ___ __ _ ____ _____ __ + / | / /___ (_)___ ___ / __ \___ ____/ / (_) /_ + / /| | / / __ \/ / __ \/ _ \______/ /_/ / _ \/ __ / / / __ \ + / ___ |/ / /_/ / / / / / __/_____/ _, _/ __/ /_/ / / / /_/ / +/_/ |_/_/ .___/_/_/ /_/\___/ /_/ |_|\___/\__,_/_/_/_.___/ + /_/ diff --git a/frontend/public/json/redlib.json b/frontend/public/json/redlib.json new file mode 100644 index 0000000000..215b190f31 --- /dev/null +++ b/frontend/public/json/redlib.json @@ -0,0 +1,35 @@ +{ + "name": "Redlib", + "slug": "redlib", + "categories": [ + 10 + ], + "date_created": "2025-08-22", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 5252, + "documentation": "https://github.com/redlib-org/redlib/blob/main/README.md", + "website": "https://github.com/redlib-org/redlib", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/redlib.webp", + "config_path": "/opt/redlib/redlib.conf", + "description": "An alternative private front-end to Reddit. Redlib hopes to provide an easier way to browse Reddit, without the ads, trackers, and bloat.", + "install_methods": [ + { + "type": "default", + "script": "ct/alpine-redlib.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 1, + "os": "alpine", + "version": "3.22" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] +} diff --git a/install/alpine-redlib-install.sh b/install/alpine-redlib-install.sh new file mode 100644 index 0000000000..0f71772106 --- /dev/null +++ b/install/alpine-redlib-install.sh @@ -0,0 +1,98 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: andrej-kocijan (Andrej Kocijan) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/redlib-org/redlib + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +fetch_and_deploy_gh_release "redlib" "redlib-org/redlib" "prebuild" "latest" "/opt/redlib" "redlib-x86_64-unknown-linux-musl.tar.gz" + +msg_info "Configuring Redlib" +cat </opt/redlib/redlib.conf +############################################ +# Redlib Instance Configuration File +# Uncomment and edit values as needed +############################################ + +## Instance settings +ADDRESS=0.0.0.0 +PORT=5252 # Integer (0-65535) - Internal port +#REDLIB_SFW_ONLY=off # ["on", "off"] - Filter all NSFW content +#REDLIB_BANNER= # String - Displayed on instance info page +#REDLIB_ROBOTS_DISABLE_INDEXING=off # ["on", "off"] - Disable search engine indexing +#REDLIB_PUSHSHIFT_FRONTEND=undelete.pullpush.io # Pushshift frontend for removed links +#REDLIB_ENABLE_RSS=off # ["on", "off"] - Enable RSS feed generation +#REDLIB_FULL_URL= # String - Needed for proper RSS URLs + +## Default user settings +#REDLIB_DEFAULT_THEME=system # Theme (system, light, dark, black, dracula, nord, laserwave, violet, gold, rosebox, gruvboxdark, gruvboxlight, tokyoNight, icebergDark, doomone, libredditBlack, libredditDark, libredditLight) +#REDLIB_DEFAULT_FRONT_PAGE=default # ["default", "popular", "all"] +#REDLIB_DEFAULT_LAYOUT=card # ["card", "clean", "compact"] +#REDLIB_DEFAULT_WIDE=off # ["on", "off"] +#REDLIB_DEFAULT_POST_SORT=hot # ["hot", "new", "top", "rising", "controversial"] +#REDLIB_DEFAULT_COMMENT_SORT=confidence # ["confidence", "top", "new", "controversial", "old"] +#REDLIB_DEFAULT_BLUR_SPOILER=off # ["on", "off"] +#REDLIB_DEFAULT_SHOW_NSFW=off # ["on", "off"] +#REDLIB_DEFAULT_BLUR_NSFW=off # ["on", "off"] +#REDLIB_DEFAULT_USE_HLS=off # ["on", "off"] +#REDLIB_DEFAULT_HIDE_HLS_NOTIFICATION=off # ["on", "off"] +#REDLIB_DEFAULT_AUTOPLAY_VIDEOS=off # ["on", "off"] +#REDLIB_DEFAULT_SUBSCRIPTIONS= # Example: sub1+sub2+sub3 +#REDLIB_DEFAULT_HIDE_AWARDS=off # ["on", "off"] +#REDLIB_DEFAULT_DISABLE_VISIT_REDDIT_CONFIRMATION=off # ["on", "off"] +#REDLIB_DEFAULT_HIDE_SCORE=off # ["on", "off"] +#REDLIB_DEFAULT_HIDE_SIDEBAR_AND_SUMMARY=off # ["on", "off"] +#REDLIB_DEFAULT_FIXED_NAVBAR=on # ["on", "off"] +#REDLIB_DEFAULT_REMOVE_DEFAULT_FEEDS=off # ["on", "off"] +EOF +msg_ok "Configured Redlib" + +msg_info "Creating Redlib Service" +cat </etc/init.d/redlib +#!/sbin/openrc-run + +name="Redlib" +description="Redlib Service" +command="/opt/redlib/redlib" +pidfile="/run/redlib.pid" +supervisor="supervise-daemon" +command_background="yes" + +depend() { + need net +} + +start_pre() { + + set -a + . /opt/redlib/redlib.conf + set +a + + : ${ADDRESS:=0.0.0.0} + : ${PORT:=5252} + + command_args="-a ${ADDRESS} -p ${PORT}" +} +EOF +$STD chmod +x /etc/init.d/redlib +$STD rc-update add redlib default +msg_ok "Created Redlib Service" + +msg_info "Starting Redlib Service" +$STD rc-service redlib start +msg_ok "Started Redlib Service" + +motd_ssh +customize + +msg_info "Cleaning up" +$STD apk cache clean +msg_ok "Cleaned"