Changeset cb01666 in Klonkt for src/server.js


Ignore:
Timestamp:
06/23/2026 02:54:36 PM (3 months ago)
Author:
Robin Genis <roboburr@…>
Branches:
main
Children:
9b851e7
Parents:
8f2f97c
Message:

feat: lite mode (KLONKT_AUDIO=off) — audio disabled, single codebase

Boot flag that skips the entire audio feature: no audio/playlist/download/
embed routes (no ffmpeg calls), no tracks loaded, own-audio shortcodes
(track/album/playlist) stripped, audio buttons in admin/profile
hidden. Hub and Circles keep working; external embeds (YouTube/SoundCloud/
Spotify) keep working too. Default = on (full version unchanged).
This lets Klonkt run as a lightweight blog/photo/EPK site on an environment
without ffmpeg.

Co-Authored-By: Claude <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/server.js

    r8f2f97c rcb01666  
    2222import { isViewer } from './middleware/auth.js';
    2323import { renderPage } from './middleware/render.js';
     24import { audioEnabled } from './config/features.js';
    2425import authRoutes from './routes/auth.js';
    2526import accountRoutes from './routes/account.js';
     
    251252app.use('/account', accountRoutes);
    252253app.use('/notifications', notificationsRoutes);
    253 app.use('/admin/audio', adminAudioRoutes);
    254 app.use('/admin/playlists', adminPlaylistsRoutes);
     254if (audioEnabled()) {
     255  app.use('/admin/audio', adminAudioRoutes);
     256  app.use('/admin/playlists', adminPlaylistsRoutes);
     257}
    255258app.use('/admin/sites', adminSitesRoutes);
    256259app.use('/admin/users', adminUsersRoutes);
     
    266269app.use('/admin/epk', adminEpkRoutes);
    267270app.use('/admin', adminRoutes);
    268 app.use('/audio', audioRoutes);
     271if (audioEnabled()) app.use('/audio', audioRoutes);
    269272app.use('/search', searchRoutes);
    270273app.use('/comments', commentsRoutes);
     
    280283app.use('/', epkRoutes); // /pers perskit (premium; niet-premium: next() -> 404)
    281284app.use('/', newsletterRoutes); // /nieuwsbrief in/uitschrijven (premium; niet-premium: next())
    282 app.use('/', downloadRoutes); // /downloads + /download/:id download-voor-email (premium)
     285if (audioEnabled()) app.use('/', downloadRoutes); // /downloads + /download/:id (audio; lite: uit)
    283286app.use('/', linkbioRoutes); // /links link-in-bio + klikstats (premium)
    284 app.use('/', embedRoutes); // /embed inbedbare audiospeler (premium)
     287if (audioEnabled()) app.use('/', embedRoutes); // /embed inbedbare audiospeler (audio; lite: uit)
    285288app.use('/', showsRoutes); // /shows agenda + notify-me (premium)
    286289app.use('/', changelogRoutes); // /changelog publieke release-/wijzigingen-pagina
Note: See TracChangeset for help on using the changeset viewer.