/twhl

TWHL Website

Primary LanguagePHPMIT LicenseMIT

TWHL Website

TWHL is a mapping and modding resource website for the Half-Life and Source engines.

Getting a dev environment set up

TWHL4 uses the Laravel framework. Detailed instructions can be found in the Laravel docs, but here's the basic steps:

  1. If you know how to use Docker, see the docker-for-development folder and skip many of the following steps.

  2. 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.
  3. Install Node JS for your platform

  4. 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.
  5. Install Composer for your platform

  6. Clone the twhl repo using Git

    • Make sure the repo folder has the correct read & execute permissions
  7. In the repo's root folder, install the app dependencies using Composer by running: composer install

  8. Add this to your apache/conf/httpd.conf - this config assumes your repo is at C:\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>
    
  9. Start up XAMPP and run Apache and MySQL (or MariaDB, whatever), and then get into PhpMyAdmin. Create a database called twhl with the collation utf8mb4_unicode_ci.

  10. 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.
  11. At this point, http://localhost:82/ should give you the Laravel splash screen. If it doesn't, something's gone wrong. Otherwise, carry on...

  12. 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.
    • npm install
    • npm run development
  13. Hopefully, you're done! Go to http://localhost:82/auth/login to log in. User: admin@twhl.info // Pass: admin.

Working with Laravel

Some general notes if you're not used to Laravel/Composer:

  • If composer.json (or composer.lock) changes, run composer 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 run npm run development to bundle those changes into the compiled CSS and JS files. The easiest way to do this is to run npm run watch, which will watch the files for changes and auto-build when needed.