mirror of
https://github.com/sp-tarkov/forge.git
synced 2025-02-12 20:20:41 -05:00
full dev setup
commit
534045c8a5
144
Full-Windows-Dev-Env.md
Normal file
144
Full-Windows-Dev-Env.md
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
## Install WSL2
|
||||||
|
|
||||||
|
Open PowerShell and run the following command to install Ubuntu WSL2:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
wsl --install -d Ubuntu
|
||||||
|
```
|
||||||
|
|
||||||
|
Full documentation for installing WSL2 can be found here:
|
||||||
|
https://learn.microsoft.com/en-us/windows/wsl/basic-commands#install
|
||||||
|
|
||||||
|
## Install Docker
|
||||||
|
|
||||||
|
Download and install Docker Desktop:
|
||||||
|
https://www.docker.com/products/docker-desktop/
|
||||||
|
|
||||||
|
Open Docker Desktop and browse to `Settings`, `Resources`, `WSL Integration`. Ensure that the `enable integration with my default WSL distro` is enabled.
|
||||||
|
|
||||||
|
>[!NOTE]
|
||||||
|
> Previous to installing Docker, if you had a WSL2 shell open, you will need to restart it to be able to interact with Docker from WSL2.
|
||||||
|
|
||||||
|
>[!NOTE]
|
||||||
|
> If you are running hyper-v you may want to check that your dynamic port ranges are set higher than the default. This is because hyper-v will reserve ports when the system boots, and it may include
|
||||||
|
> the ports needed by our containers. More details about the solution below [can be found here](https://github.com/docker/for-win/issues/3171#issuecomment-1895729704)
|
||||||
|
> ```powershell
|
||||||
|
> # check dynamic port ranges for ipv4 and 6
|
||||||
|
> netsh int ipv4 show dynamicport tcp
|
||||||
|
> netsh int ipv4 show dynamicport tcp
|
||||||
|
>
|
||||||
|
> # update ranges to reserve 16384 port numbers starting at 49152
|
||||||
|
> netsh int ipv4 set dynamic tcp start=49152 num=16384
|
||||||
|
> netsh int ipv6 set dynamic tcp start=49152 num=16384
|
||||||
|
> ```
|
||||||
|
|
||||||
|
## Install Git & Git LFS
|
||||||
|
|
||||||
|
Within your Ubuntu WSL2 environment:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get -y install git git-lfs
|
||||||
|
```
|
||||||
|
|
||||||
|
## Clone Forge
|
||||||
|
|
||||||
|
Pull down a clone of the Forge source locally within your WSL2 environment:
|
||||||
|
|
||||||
|
> [!WARNING]
|
||||||
|
> Using a windows drive mount such as `/mnt/c/` will greatly reduce performance and may even prevent the project from running correctly.
|
||||||
|
> Please make sure to clone the repo to a location inside the wsl environment, such as `~/Code/forge`
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir ~/Code
|
||||||
|
cd ~/Code
|
||||||
|
git clone https://github.com/sp-tarkov/forge.git forge
|
||||||
|
cd ~/Code/forge
|
||||||
|
git checkout develop
|
||||||
|
git lfs pull
|
||||||
|
```
|
||||||
|
|
||||||
|
## Install Laravel Sail
|
||||||
|
|
||||||
|
Within your Ubuntu WSL2 environment:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Copy the example full environment file over into the active environment file:
|
||||||
|
cp .env.full .env
|
||||||
|
|
||||||
|
# Pull down a docker container that will install the project's composer dependencies:
|
||||||
|
docker run --rm -u "$(id -u):$(id -g)" -v "$(pwd):/var/www/html" -w /var/www/html laravelsail/php83-composer:latest composer install --ignore-platform-reqs
|
||||||
|
```
|
||||||
|
|
||||||
|
You should now have the `sail` script installed.
|
||||||
|
|
||||||
|
For simplicity, anything below that refers to running a `sail` command is actually referring to the script located here: `./vendor/bin/sail`. For example, `sail up -d` actually refers to running `./vendor/bin/sail up -d`. It's *highly* recommended to configure an alias to make running `sail` commands easier:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
echo "alias sail='sh \$([ -f sail ] && echo sail || echo vendor/bin/sail)'" >> ~/.bashrc
|
||||||
|
source ~/.bashrc
|
||||||
|
```
|
||||||
|
|
||||||
|
## Run Forge
|
||||||
|
|
||||||
|
Within your Ubuntu WSL2 environment:
|
||||||
|
|
||||||
|
### Install Laravel Octane
|
||||||
|
```bash
|
||||||
|
# Start the containers in detached mode:
|
||||||
|
sail up -d
|
||||||
|
|
||||||
|
# Install NPM dependencies (includes file watcher for Octane)
|
||||||
|
sail npm install
|
||||||
|
|
||||||
|
# Install composer dependencies
|
||||||
|
sail composer install
|
||||||
|
|
||||||
|
# Generate a new application key:
|
||||||
|
sail artisan key:generate
|
||||||
|
|
||||||
|
# Test that octane workers can be reloaded
|
||||||
|
sail artisan octane:reload
|
||||||
|
|
||||||
|
# If you get an error reloading the workers, start octane to install FrankenPHP. If prompted, select 'yes' to install.
|
||||||
|
# sail artisan octane:start
|
||||||
|
|
||||||
|
# Restart containers
|
||||||
|
sail down
|
||||||
|
sail up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### Create & Populate Database Tables
|
||||||
|
|
||||||
|
Run the following command to create each of the database tables and seed them with fake testing data.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sail artisan migrate:fresh --seed
|
||||||
|
```
|
||||||
|
|
||||||
|
### Populate Meilisearch Indexes
|
||||||
|
|
||||||
|
In order to populate the Meilisearch search indexes you must have a queue worker running. We use Horizon for this.
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> You will need to open another console to run horizon, as it will block that console from running any more commands
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Start the queue workers (run this command in a new console):
|
||||||
|
sail artisan horizon
|
||||||
|
```
|
||||||
|
|
||||||
|
### Vite Development Server
|
||||||
|
|
||||||
|
There is a front-end development server that manages hot-injecting files as they're updated so that you rarely have to refresh the page after a file is updated to see your changes. Start it with the following command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sail npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
## Finished!
|
||||||
|
|
||||||
|
You should now be able to access the Forge:
|
||||||
|
http://localhost
|
||||||
|
|
||||||
|
<3
|
Loading…
x
Reference in New Issue
Block a user