Initial commit: Shelfless – alternative Audiobookshelf frontend

React + Vite + TypeScript SPA covering the full ABS feature set (library
browsing, item detail, metadata/cover editing, podcasts, player with session
sync, admin: users/libraries/scanner/server settings). Dev uses a dynamic
CORS proxy; production is served by server/index.mjs (static + reverse proxy
to ABS_URL). Includes systemd unit and installer under deploy/.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-06-02 20:23:04 +02:00
commit 83d8b7b99d
93 changed files with 9790 additions and 0 deletions

24
deploy/shelfless.service Normal file
View File

@@ -0,0 +1,24 @@
[Unit]
Description=Shelfless (Audiobookshelf frontend)
After=network.target
# If Audiobookshelf runs on the same container, start after it:
# After=network.target audiobookshelf.service
# Wants=audiobookshelf.service
[Service]
Type=simple
# Adjust to where you copied the project:
WorkingDirectory=/opt/shelfless
ExecStart=/usr/bin/node server/index.mjs
Restart=on-failure
RestartSec=3
Environment=NODE_ENV=production
Environment=PORT=8080
# The Audiobookshelf server this frontend talks to (same container = localhost):
Environment=ABS_URL=http://127.0.0.1:13378
# Optional hardening:
# User=shelfless
# Group=shelfless
[Install]
WantedBy=multi-user.target