TWHL is a mapping and modding resource website for the Half-Life and Source engines.
TWHL4 uses the Laravel framework. Detailed instructions can be found in the Laravel docs, but here's the basic steps:
-
If you know how to use Docker, see the docker-for-development folder and skip many of the following steps.
-
Get an Apache environment with MySQL (5.5+) and PHP (8+)
- The easiest way to do this is to download XAMPP for your platform and follow the install instructions.
- Put the php/php.exe executable path into your system's environment variables
- Make sure you're using the right php version, OSX and some linux distros will ship with a different version.
-
Install Node JS for your platform
-
Install Git for your platform
- If you're on Windows or OSX and aren't used to command line Git, you can install SourceTree which is pretty handy.
-
Install Composer for your platform
-
Clone the twhl repo using Git
- Make sure the repo folder has the correct read & execute permissions
-
In the repo's root folder, install the app dependencies using Composer by running:
composer install
-
Add this to your
apache/conf/httpd.conf
- this config assumes your repo is atC:\twhl
, change the path for your system as required.Listen 82 <VirtualHost *:82> ServerName localhost DocumentRoot C:/twhl/public <Directory C:/twhl/public> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted </Directory> </VirtualHost>
-
Start up XAMPP and run Apache and MySQL (or MariaDB, whatever), and then get into PhpMyAdmin. Create a database called
twhl
with the collationutf8mb4_unicode_ci
. -
We're almost there. Find the
.env.example
file in the root folder, and copy it to a new file called simply.env
. The default settings should be fine, but you can change them if you have a different setup for your DB server and so on.- After creating the .env file, you should run
php artisan key:generate
in order to create an encryption key.
- After creating the .env file, you should run
-
At this point, http://localhost:82/ should give you the Laravel splash screen. If it doesn't, something's gone wrong. Otherwise, carry on...
-
In the git repo root folder, run:
php artisan migrate --seed
(requires php on path)- I got an error doing this and had to run
mysql/bin/mysql_upgrade.exe
, but this may be because I had an older version of MySQL installed. If you get an error about "Cannot load from mysql.proc", try doing this. Drop and re-create the twhl database before trying again.
- I got an error doing this and had to run
npm install
npm run development
-
Hopefully, you're done! Go to http://localhost:82/auth/login to log in. User:
[email protected]
// Pass:admin
.
Some general notes if you're not used to Laravel/Composer:
- If
composer.json
(orcomposer.lock
) changes, runcomposer install
to get the latest library versions. - Run
composer self-update
if it nags you, it's a good idea to stay up to date. - When making changes to
*.css
,*.scss
and*.js
files, you need to runnpm run development
to bundle those changes into the compiled CSS and JS files. The easiest way to do this is to runnpm run watch
, which will watch the files for changes and auto-build when needed.