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:
24
deploy/shelfless.service
Normal file
24
deploy/shelfless.service
Normal 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
|
||||
Reference in New Issue
Block a user