Installation
Install the application
This is what almost everyone wants. The desktop release already contains the core — the Rust library is bundled beside the executable and linked in process. There is no server to install, no service to configure, and no second component to keep running.
Every tag on the front-end repository publishes a release carrying the application for both platforms. Versions below 1.0 are marked as prereleases.
Every package carries the Rust core, and every package that cannot ask a package manager for ffmpeg carries that too. There is nothing else to install.
Windows
Windows 10 x64 or later.
| Asset | How to install |
|---|---|
alexandria-setup-<version>.exe | The installer. Run it — it asks where to install, and replaces an existing installation it finds there or wherever a previous install recorded one. Only the program’s own files are removed; your library, catalog, and settings are left alone. |
alexandria-<version>-windows-x64.zip | The application itself. Unpack it anywhere and run alexandria.exe. Nothing is registered, and deleting the folder removes it. |
alexandria.msix | Published unsigned, and Windows will not install an unsigned MSIX without a trusted certificate. Use the installer unless you have your own signing set up. |
The Windows packages carry an LGPL build of ffmpeg beside the executable.
Packages are unsigned — code signing needs a certificate the project does not hold yet — so SmartScreen will warn on first run. Choose More info and then Run anyway if you trust the source.
Linux
Ubuntu LTS x64.
| Asset | How to install | Where ffmpeg comes from |
|---|---|---|
alexandria-installer-<version>-linux-x64.sh | chmod +x it and run it. Defaults to ~/.local/share/alexandria, or /opt/alexandria as root, and replaces an existing installation the same way the Windows installer does. --prefix DIR and --yes skip the questions; --uninstall removes what it installed and nothing else. | bundled |
alexandria-<version>-linux-x64.tar.gz | The application itself. Unpack it and run ./alexandria. | bundled |
.deb | sudo apt install ./alexandria_<version>_amd64.deb — built for Ubuntu 24.04, whose library names it depends on. | apt |
.AppImage | Mark it executable with chmod +x and run it. Nothing is installed system-wide. | bundled |
.flatpak | flatpak install ./alexandria-<version>.flatpak | the org.freedesktop.Platform.ffmpeg-full runtime extension |
The installer, the tarball, and the AppImage carry everything the program needs — ffmpeg, libmpv, and the libraries those depend on. Only the graphics, sound, and C libraries any desktop application already has come from your system.
The .deb deliberately does not bundle them: depending on the
distribution’s own packages is the entire point of a .deb, and a bundled copy
inside one would shadow the system’s and then go unpatched.
Every bundled library’s licence travels inside the package in lib/licenses,
with the full list in lib/licenses/PACKAGES.txt and the copyleft ones named in
lib/licenses/COPYLEFT.tsv. Alexandria’s own source code is under the
Artur Rios Attribution License;
the bundled libraries keep their own licences, and a package that bundles the
copyleft ones is distributed as a combined work subject to their terms
(GPL-3.0). The Windows packages carry an LGPL build of ffmpeg and no mpv.
After installing
Launch Alexandria and go to Usage. Your catalog and settings live in your own user profile, not alongside the application, so uninstalling never touches them — and never touches your library files.
Build from source
You only need this if you want to work on Alexandria.
The core — alexandria-api
Requirements: Rust 1.94 or newer (edition 2021) and cargo. The floor
comes from sqlx 0.9, the highest MSRV in the dependency graph.
alexandria-core links against ffmpeg-next for video metadata extraction, so
the ffmpeg C development libraries and clang (for bindgen) must be
installed before the workspace will build. This is the project’s only system
dependency, and without it cargo build and cargo test fail for the whole
workspace — not just the video code. Any ffmpeg from 3.0 to 9.0 works.
On Debian or Ubuntu:
sudo apt-get install libavformat-dev libavcodec-dev libavutil-dev \
libavfilter-dev libavdevice-dev libswscale-dev libswresample-dev \
pkg-config clang
Windows needs a build of ffmpeg that ships include/ and lib/ — not just
bin/. Most downloads labelled “essentials” ship the executables only and will
not work. The repository’s README walks through the options in detail:
Then:
git clone https://github.com/artur-rios/alexandria-api.git
cd alexandria-api
cargo build --release
The front-end — alexandria-ui
Requirements:
- The Flutter SDK, with the desktop target for your platform enabled.
- Windows: Windows 10 x64 or later, with the Visual Studio “Desktop development with C++” workload.
- Linux: Ubuntu LTS x64, with the GTK development packages.
- A build of
alexandria-ffi. Release packages bundle it; a development checkout does not.
git clone https://github.com/artur-rios/alexandria-ui.git
cd alexandria-ui
flutter pub get
dart run build_runner build
dart run ffigen --config ffigen.yaml
flutter gen-l10n
Build the core’s shared library and put it where the loader looks —
native/windows/ or native/linux/ — or point ALEXANDRIA_CORE_LIBRARY at a
locally built one:
cd ../alexandria-api
cargo build --release -p alexandria-ffi
cp target/release/libalexandria_ffi.so ../alexandria-ui/native/linux/
Then run it:
flutter run -d windows
flutter run -d linux
The HTTP server
Only needed if you want the REST/JSON surface rather than the desktop
application. Configuration is read from config.toml at startup, and any key
can be overridden with an ALEXANDRIA_* environment variable.
cp config.toml.example config.toml
cargo run --release -p alexandria-http
It binds to loopback by default. Check it is up:
curl http://127.0.0.1:8080/health
The full configuration surface — authentication mode and session TTL, bind
address, SQLite path, filesystem root, indexing concurrency, soft-delete
retention, and log level — is documented in
config.toml.example
and in the
Operations & Infrastructure Document.
The server has no packaged release. Build it from source.