The official web-based monitoring and control UI for FFAStrans, the media transcoding automation platform. It provides a browser interface for submitting jobs, tracking running and finished transcoding workflows, browsing files, and managing the FFAStrans farm.
- Windows (no dependencies)
- FFAStrans Files (not API)
- Download the latest release ZIP from the releases page or from the
redist/folder. - Extract to any folder (e.g.
C:\ffastrans\webinterface). - Open the folder — you will find
server.exe.
Double-click server.exe, or run it from the command line:
server.exe
Once started, open your browser and go to:
http://localhost:3002
Run service_install.bat as Administrator. To remove the service, run service_uninstall.bat as Administrator.
If FFAStrans Files are not local, ensure Service Credentials can see the Files
All settings are available through the Admin page in the web UI (http://localhost:3002). Key settings:
| Setting | Default | Description |
|---|---|---|
| Port | 3002 |
Port the web server listens on |
| FFAStrans API host | localhost |
Host running FFAStrans |
| FFAStrans API port | 65445 |
FFAStrans REST API port |
| Upload path | \\localhost\c$\temp\ |
Where uploaded files are staged |
| Authentication | Disabled | Enable Azure AD or Active Directory login |
| HTTPS | Disabled | Enable HTTPS with a certificate |
There are many builtin options like setting Header name top left or login page welcome message.
See docs/styling-docs/USER_STYLING_GUIDE.md for how to change colors, fonts, and layout using the alternate-server/css/override.css file.
- Node.js 18+
- Windows (the embedded MongoDB binary is Windows x64)
git clone https://github.com/emcodem/ffastrans_webui.gitNote that the source code is self contained, no npm install needed.
The database/ directory must exist before first run:
mkdir database\config
cd ffastrans_webui
node server.jsThe server starts at http://localhost:3002 unless the port has been customized through settings.
The client-side bundle is built with Webpack and bundlet to a single .exe using nexe:
compile_to_dist.batffastrans_webui/
├── server.js # Entry point — Express, Socket.io, auth, DB init
├── node_components/ # Backend modules (routes, DB, auth, player, etc.)
│ ├── common/ # Shared controllers (database, REST API)
│ ├── passport/ # Azure AD and Active Directory auth strategies
│ ├── mongodb_server/ # Embedded MongoDB launcher (mongod.js)
│ ├── views/ # Express route handlers
│ └── serverconfig_defaults.js # All config keys and their defaults
├── shared_modules/ # Logger and utilities shared by all modules
├── webinterface/ # Frontend HTML, JS, CSS (served statically)
├── rest_service/ # REST API server - standalone module, could also be packaged and run without webinterface
├── upload_backend/ # Tus resumable upload server
├── alternate-server/ # User can override CSS (css/override.css) and place custom jobfetcher.js in order to show jobs from 3rdparty system in webint
├── tools/ # Bundled binaries (FFprobe, MPV)
├── database/ # Runtime data (NeDB config DB, MongoDB job DB)
└── docs/ # Documentation
- Express serves static files and API routes.
- Socket.io pushes real-time job status updates to the browser.
- NeDB (
database/config) stores application configuration. - MongoDB (embedded, auto-started) stores job history in
database/job_db. The port is auto-selected in the range8010–8020unless overridden bydatabase/mongo_config.json. - Authentication is optional. When enabled, Passport handles Azure AD (OIDC) or on-premise Active Directory (LDAP) strategies. Set
STATIC_USE_WEB_AUTHENTIFICATIONin the admin UI.
compile_to_dist.batThis uses nexe to bundle the Node.js runtime and all source files into a single ffastrans_webui.exe. The database/, tools/, webinterface/, and alternate-server/ folders are copied alongside the EXE as the distributable package.