Skip to main content

Package: drumee-server-pod

Directory: server/ Debian package: drumee-server-pod Current version: 2.9.45 Debian metadata: server/debian/

Purpose

The Drumee backend. Installs the Node.js server processes that handle:

  • REST API calls via /-/svc/module.method
  • WebSocket connections for real-time features
  • File operations via the MFS abstraction
  • ACL enforcement on every request
  • PM2 process management

Two Node.js processes run per endpoint: index.js (page serving + WebSocket) and service.js (REST API).

Source Repos

RepoBranchDestination
server-teampreview$DRUMEE_SERVER_HOME/main/ (/srv/drumee/runtime/server/main/)

Build

server/build.sh

server/build.sh takes no flags — version and email come from server/debian/changelog. update-changelog.sh is called automatically at the start of the build. If DEB_BUILD_TARGET is set, the built .deb is also copied there.

What Gets Packaged

  • node_modules/ — pre-installed npm dependencies
  • offline/ — offline assets (DB patch scripts, etc.)
  • package.json
  • /etc/drumee/ — server configuration templates
  • /usr/ — drumee CLI and system scripts
  • /var/ — runtime var files
  • .pm2/, .cache/, .config/, .pm2/logs/ — PM2 process manager directories

Installed Paths

/srv/drumee/runtime/server/main/   # server-team source + node_modules
/etc/drumee/
├── drumee.sh # runtime environment (sourced at startup)
└── credential/ # JSON credential files
/usr/sbin/drumee # drumee CLI
/var/lib/drumee/postinstall/
└── patch.sh # pending patches applied at startup

Dependencies

nginx, redis-server, redis, node-redis, inotify-tools,
graphicsmagick, libgraphicsmagick1-dev, poppler-utils,
libreoffice, dcraw, curl, p7zip-full, ffmpeg

Post-Install

On package install:

  1. Sources /etc/drumee/drumee.sh to load the runtime environment
  2. Applies any pending schema patches from /var/lib/drumee/postinstall/patch.sh

update-changelog.sh

server/update-changelog.sh [--message="Custom message"] [--email=user@example.com]

Syncs the changelog from server-team's package.json. See Version Management for the selection logic.