The Forge is a Laravel-based web application that provides a platform for the Single Player Tarkov community to share and discover user-generated content, such as mods, guides, and other tools. It is currently under heavy development. Please review this entire document before attempting to contribute, especially the "Development Discussion" section.
We use Laravel Sail to mirror the services that are used in our production server in a local development environment. You can see detailed instructions on how to configure the full development environment or a lightweight development environment on the project wiki. The full development environment is recommended.
Service | Access Via Application | Access Via Host |
---|---|---|
MySQL | mysql:3306 |
localhost:3306 |
Redis | redis:6379 |
localhost:6379 |
Meilisearch | meilisearch:7700 |
localhost:7700 |
Mailpit | mailpit:1025 |
localhost:8025 |
Service | Authentication | Access Via Host |
---|---|---|
Laravel Filament Admin Panel | Via User Role | http://localhost/admin |
Redis Queue Management (Horizon) | Via User Role | http://localhost/horizon |
Website Status (Pulse) | Via User Role | http://localhost/pulse |
Meilisearch WebUI | Local Only | http://localhost:7700 |
Mailpit WebUI | Local Only | http://localhost:8025 |
Most of these connection settings should already be configured in the .env.full
or .env.light
example files. Simply save one of these (depending on your environment) as .env
and adjust settings as needed.
Here are some basic commands to get started with Forge:
# Start the Docker containers in detached mode:
sail up -d
# View all of the available Artisan commands:
sail artisan
# Migrate and seed the database with test data:
sail artisan migrate:fresh –seed
# Run Laravel Horizon (the queue workers/monitor):
sail artisan horizon
# Sync the local database with the Meilisearch server (requires horizon to be running):
sail artisan app:search-sync
# Install NPM dependencies from within the container:
sail npm install
# Start the development server:
sail npm run dev
For more information on Laravel development, please refer to the official documentation.
Please note, we are very early in development and will likely not accept work that is not discussed beforehand.
Informal discussion regarding bugs, new features, and implementation of existing features takes place in the #website-general
channel of the Single Player Tarkov Discord server. Refringe, the maintainer of Forge, is typically present in the channel on weekdays from 9am-5pm Eastern Time (ET), and sporadically present in the channel at other times.
If you propose a new feature, please be willing to implement at least some of the code that would be needed to complete the feature.
The main
branch is the default branch for Forge. This branch is used for the latest stable release of the site. The develop
branch is used for the latest development changes. All feature branches should be based on the develop
branch. All pull requests should target the develop
branch.
Forge follows the PSR-2 coding standard and the PSR-4 autoloading standard. We use an automated Laravel Pint action to enforce the coding standard, though it's suggested to run your code changes through Pint before contributing. This can be done by configuring your IDE to format with Pint on save, or manually by running the following command:
./vendor/bin/sail pint
If you discover a security vulnerability within Forge, please email Refringe at me@refringe.com. All security vulnerabilities will be promptly addressed.
The Forge development code of conduct is derived from the Ruby code of conduct. Any violations of the code of conduct may be reported to Refringe at me@refringe.com.