Ready-to-use server
Ushahidi
Crowdsourcing Crisis Information
- Automatic security updatesDebian support through June 2030
- You're in controlRun on your hardware or in the cloud.
- Free and open sourceUse, inspect and customize the code.
Your server. Your choice.
Run Ushahidi on AWS
Choose where you want to manage it.
Ushahidi screenshots
Ushahidi (Swahili for "testimony" or "witness") is a crowdsourcing application created in the aftermath of Kenya's disputed 2007 presidential election that enables local observers to submit reports using their mobile phones or the internet, while simultaneously creating a temporal and geospatial archive of events.
This server includes all the standard features in TurnKey Core, and on top of that:
Ushahidi configurations:
Ushahidi Platform v6 is installed from the pinned official release archive in /var/www/ushahidi.
PHP 7.4 is installed from the deb.sury.org Trixie repository because the current Ushahidi backend requires PHP 7.4 and excludes PHP 8. Debian is preferred, but cannot satisfy that contract; Sury is a third-party, best-effort source without a guaranteed security-coverage window.
Laravel is updated from the official laravel/framework Git repository to stable v8.83.29. The complete Laravel 8.x repository is retained at /usr/local/share/turnkey-ushahidi/laravel-framework.git for update, recovery, and provenance auditing.
turnkey-ushahidi-update checks or applies official v6 stable patch releases whose complete artifact tuple has been vetted in a TurnKey package update, without replacing the database, uploads, or local secrets.
turnkey-ushahidi-laravel-update independently checks or applies stable Laravel 8.x tags from the official Git history. It never pulls into live files: a verified generation is staged and activated atomically, with automatic rollback when its health check fails.
SSL support out of the box.
Adminer administration frontend for MySQL (listening on port 12322 - uses SSL).
Postfix MTA configured as a localhost-only application submission service.
Webmin modules for configuring Apache2, PHP, MySQL and Postfix.
Credentials (passwords set at first boot)
Webmin, SSH, MySQL: username root
Adminer: username adminer
Ushahidi: username is email set on first boot
Application security updates
Operating-system and PHP package updates continue through APT. The two application-local update channels have different trust and compatibility boundaries:
turnkey-ushahidi-update --check turnkey-ushahidi-update --apply --dry-run turnkey-ushahidi-laravel-update --check turnkey-ushahidi-laravel-update --apply --dry-run turnkey-ushahidi-laravel-update --apply turnkey-ushahidi-laravel-update --rollback
The Laravel command accepts only non-prerelease v8.* tags that descend from the installed version and the CVE-2024-52301 fix, remain on the official 8.x history, and keep the package dependency/autoload contract unchanged. It keeps the previous verified generation for explicit recovery. See man turnkey-ushahidi-laravel-update for verification and recovery details.
Laravel 8 is beyond its formal support window. TurnKey accepts the official 8.x repository as a best-effort humanitarian-server maintenance channel because upstream has made post-EOL security releases, including v8.83.28 for CVE-2024-52301. There is no SLA or guarantee that every present or future issue will be fixed. If upstream stops publishing acceptable stable tags, the command fails closed; administrators should not install branch HEAD or an unverified fork in place. TurnKey must then review/backport the issue, migrate Ushahidi, or withdraw the affected update path.
Run from browser
V 19.0
V 18.0
GitHub
Usage details & Logging in for Administration
No default passwords: For security reasons there are no default passwords. All passwords are set at system initialization time.
Ignore SSL browser warning: browsers don't like self-signed SSL certificates, but this is the only kind that can be generated automatically without paying a commercial Certificate Authority.
Username for ushahidi:
Login as username is email set on first boot
Web - point your browser at either:
- http://12.34.56.789/ - not encrypted so no browser warning
- https://12.34.56.789/ - encrypted with self-signed SSL certificate
Username for database administration:
Login as MySQL username root at
- https://12.34.56.789:12322/ - Adminer database management web app
- MySQL command line tool:
$ mysql --user root --password Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
Username for OS system administration:
Login as root except on AWS marketplace which uses username admin.
- Point your browser to:
- https://12.34.56.789:12321/ - System control panel
- https://12.34.56.789:12320/ - Web based command line terminal
- Login with SSH client:
ssh root@12.34.56.789
Special case for AWS marketplace:
ssh admin@12.34.56.789
* Replace 12.34.56.789 with a valid IP or hostname.


