VersionTracker is a Laravel 13 application that centralizes software versions, releases, and security information. The project provides a modern Filament 5 admin panel (incl. Analytics Dashboard) as well as a public Vue frontend with timeline visualization.
- Filament Admin with approval workflow, Analytics Dashboard, and Audit Tools
- Release Timeline SPA (Vue 3 + Vite) including software filter
- Demo Data & User for an immediately populated showcase
- Tailwind v4 Design System with custom Filament theme
- PHP 8.4 · Laravel 13 · Livewire 4 · Filament 5
- MariaDB/MySQL/PostgreSQL/SQLite (Default: SQLite)
- Node 22.18+ · Vite 8 · Vue 3 · Vue Router 5 · Vue I18n 11 · Tailwind CSS 4
- PHP >= 8.4.1 + Composer 2.x
- Node.js >= 22.18 + npm 10
- SQLite (default) or an alternative database
Clone Repository
git clone https://github.com/<your-org>/versiontracker.git cd versiontracker
Install the Application
composer run setup
This creates the SQLite database, generates the application key, runs migrations, installs locked frontend dependencies, and builds the assets.
Start Application
composer run dev
App available at
http://localhost:8000. The Filament panel is at/admin.
For demo data, run php artisan db:seed after setup.
| Environment | User | Password |
|---|---|---|
| Filament Admin | demo@example.com | password |
- Public Timeline SPA:
/timeline - API Endpoints:
/api/public/*(e.g./api/public/timeline)
- Code Style:
vendor/bin/pint --dirty - Tests:
php artisan test - Vite Dev Server:
npm run dev - Build:
npm run build - Local App Stack:
composer run dev
Each v0.x.y GitHub release publishes a container image at ghcr.io/soerennb/version-tracker and a compact deployment bundle. The installer requires a concrete release tag; production deployments never use latest.
Download the exact bundle and checksum from the GitHub Release page, then verify the archive before unpacking it:
VERSION=v0.1.2
curl -fsSLO "https://github.com/soerennb/version-tracker/releases/download/${VERSION}/versiontracker-deploy-${VERSION}.tar.gz"
curl -fsSLO "https://github.com/soerennb/version-tracker/releases/download/${VERSION}/versiontracker-deploy-${VERSION}.tar.gz.sha256"
sha256sum --check "versiontracker-deploy-${VERSION}.tar.gz.sha256"
tar -xzf "versiontracker-deploy-${VERSION}.tar.gz"cd"versiontracker-deploy-${VERSION}"Cloning the repository remains supported for contributors, but operators only need this deployment bundle.
git clone https://github.com/soerennb/version-tracker.git
cd version-tracker
./install.sh installChoose N for Caddy, then enter the release tag (for example v0.1.2) and the exposed HTTP port. Point your existing reverse proxy at this port and configure TRUSTED_PROXIES in .env.docker with the proxy address.
For unattended installations, provide the selected values explicitly and pipe only the administrator password through standard input:
printf'%s\n''choose-a-long-unique-password'| ./install.sh install \
--version v0.1.2 \
--mode proxy \
--port 8080 \
--admin-name 'Administrator' \
--admin-email admin@example.com \
--admin-password-stdingit clone https://github.com/soerennb/version-tracker.git
cd version-tracker
./install.sh installChoose Y for Caddy, provide a domain whose DNS already points to the server, and provide an ACME email address. Ports 80 and 443 must be free. The installer generates secrets, initializes MariaDB, asks whether to load demo data, and otherwise creates the first administrator interactively.
./install.sh updateEnter the next release tag. The update preserves the selected proxy mode, pulls the image, runs database migrations, rebuilds Laravel caches, and verifies the health endpoint.
Use ./install.sh status to inspect a deployment and ./install.sh backup before upgrades. The complete self-hosting guide covers configuration, backup, restore, and rollback. Maintainers should follow the release guide when publishing a tag.
MIT – see LICENSE.