diff --git a/.env.example b/.env.example index 446c400..107f578 100644 --- a/.env.example +++ b/.env.example @@ -433,4 +433,51 @@ HELP_AND_FAQ_URL=https://librechat.ai # E2E_USER_EMAIL= # E2E_USER_PASSWORD= -EMBEDDINGS_PROVIDER=huggingface \ No newline at end of file +EMBEDDINGS_PROVIDER=huggingface + +# Redlib configuration +# See the Configuration section of the README for a more detailed explanation of these settings. + +# Instance-specific settings +# Enable SFW-only mode for the instance +REDLIB_SFW_ONLY=off +# Set a banner message for the instance +REDLIB_BANNER=124c41 +# Disable search engine indexing +REDLIB_ROBOTS_DISABLE_INDEXING=off +# Set the Pushshift frontend for "removed" links +REDLIB_PUSHSHIFT_FRONTEND=undelete.pullpush.io + +# Default user settings +# Set the default theme (options: system, light, dark, black, dracula, nord, laserwave, violet, gold, rosebox, gruvboxdark, gruvboxlight) +REDLIB_DEFAULT_THEME=system +# Set the default front page (options: default, popular, all) +REDLIB_DEFAULT_FRONT_PAGE=default +# Set the default layout (options: card, clean, compact) +REDLIB_DEFAULT_LAYOUT=card +# Enable wide mode by default +REDLIB_DEFAULT_WIDE=off +# Set the default post sort method (options: hot, new, top, rising, controversial) +REDLIB_DEFAULT_POST_SORT=hot +# Set the default comment sort method (options: confidence, top, new, controversial, old) +REDLIB_DEFAULT_COMMENT_SORT=confidence +# Enable showing NSFW content by default +REDLIB_DEFAULT_SHOW_NSFW=off +# Enable blurring NSFW content by default +REDLIB_DEFAULT_BLUR_NSFW=off +# Enable HLS video format by default +REDLIB_DEFAULT_USE_HLS=off +# Hide HLS notification by default +REDLIB_DEFAULT_HIDE_HLS_NOTIFICATION=off +# Disable autoplay videos by default +REDLIB_DEFAULT_AUTOPLAY_VIDEOS=off +# Define a default list of subreddit subscriptions (format: sub1+sub2+sub3) +REDLIB_DEFAULT_SUBSCRIPTIONS=LocalLLaMA+programming+singularity +# Hide awards by default +REDLIB_DEFAULT_HIDE_AWARDS=off +# Disable the confirmation before visiting Reddit +REDLIB_DEFAULT_DISABLE_VISIT_REDDIT_CONFIRMATION=off +# Hide score by default +REDLIB_DEFAULT_HIDE_SCORE=off +# Enable fixed navbar by default +REDLIB_DEFAULT_FIXED_NAVBAR=on diff --git a/compose/traefik/traefik.yml b/compose/traefik/traefik.yml index 3ea61a1..0454c13 100644 --- a/compose/traefik/traefik.yml +++ b/compose/traefik/traefik.yml @@ -224,6 +224,16 @@ http: certResolver: letsencrypt service: bin_app + redlib-router: + entryPoints: + - web-secure + rule: "Host(`redlib.furyhawk.lol`)" + middlewares: + - csrf + tls: + certResolver: letsencrypt + service: redlib_app + thelounge-router: entryPoints: - web-secure @@ -484,6 +494,10 @@ http: loadBalancer: servers: - url: http://LibreChat:3080 + redlib_app: + loadBalancer: + servers: + - url: http://redlib:8080 thelounge_app: loadBalancer: servers: diff --git a/docker-compose.yml b/docker-compose.yml index 97d9f75..a39bbe7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -202,6 +202,28 @@ services: postgres: condition: service_started + cheatsheets-app: + image: furyhawk/cheatsheets:${CHEATSHEETSTAG:-latest} + container_name: cheatsheets_app + restart: unless-stopped + expose: + - 80 + networks: + - net + - default + + heynote-app: + image: furyhawk/heynote:${HEYNOTETAG:-latest} + container_name: heynote_app + restart: unless-stopped + environment: + NODE_ENV: production + expose: + - 5173 + networks: + - net + - default + jellyfin: image: jellyfin/jellyfin container_name: jellyfin @@ -239,45 +261,26 @@ services: - net - default - heynote-app: - image: furyhawk/heynote:${HEYNOTETAG:-latest} - container_name: heynote_app + redlib: + image: quay.io/redlib/redlib:latest-arm restart: unless-stopped - environment: - NODE_ENV: production + container_name: redlib expose: - - 5173 + - 8080 # Specify `127.0.0.1:8080:8080` instead if using a reverse proxy + user: nobody + read_only: true + security_opt: + - no-new-privileges:true + # - seccomp=seccomp-redlib.json + cap_drop: + - ALL + env_file: .env networks: - net - - default - - cheatsheets-app: - image: furyhawk/cheatsheets:${CHEATSHEETSTAG:-latest} - container_name: cheatsheets_app - restart: unless-stopped - expose: - - 80 - networks: - - net - - default - - syncthing: - image: syncthing/syncthing - container_name: syncthing - environment: - - PUID=1000 - - PGID=1000 - restart: unless-stopped - volumes: - - ~/st-sync:/var/syncthing - ports: - - 8384:8384 # Web UI - - 22000:22000/tcp # TCP file transfers - - 22000:22000/udp # QUIC file transfers - - 21027:21027/udp # Receive local discovery broadcasts - networks: - - net - - default + healthcheck: + test: ["CMD", "wget", "--spider", "-q", "--tries=1", "http://localhost:8080/settings"] + interval: 5m + timeout: 3s thelounge: image: ghcr.io/thelounge/thelounge:latest @@ -323,6 +326,24 @@ services: - net - default + syncthing: + image: syncthing/syncthing + container_name: syncthing + environment: + - PUID=1000 + - PGID=1000 + restart: unless-stopped + volumes: + - ~/st-sync:/var/syncthing + ports: + - 8384:8384 # Web UI + - 22000:22000/tcp # TCP file transfers + - 22000:22000/udp # QUIC file transfers + - 21027:21027/udp # Receive local discovery broadcasts + networks: + - net + - default + site_server: image: nginx:alpine container_name: site_server