mirror of
https://github.com/BillyOutlast/UNIT3D-Guide.git
synced 2026-02-04 03:01:19 +01:00
219 lines
6.0 KiB
Markdown
219 lines
6.0 KiB
Markdown
# Unit3d Setup Guide
|
|
|
|
|
|
## 1. Install Docker and Docker Compose on Linux
|
|
### Ubuntu/Debian
|
|
```bash
|
|
sudo apt update
|
|
sudo apt install -y docker.io docker-compose-v2
|
|
```
|
|
|
|
|
|
### Arch Linux
|
|
```bash
|
|
sudo pacman -Syu
|
|
sudo pacman -S docker docker-compose
|
|
```
|
|
|
|
# Enable and Start Docker
|
|
|
|
After installing Docker, enable and start the Docker service:
|
|
|
|
```bash
|
|
sudo systemctl enable docker
|
|
sudo systemctl start docker
|
|
```
|
|
|
|
## 2. Install PHP 8.4
|
|
|
|
### Ubuntu
|
|
|
|
```bash
|
|
# Add the ondrej/php repository.
|
|
sudo apt update
|
|
sudo apt install -y software-properties-common
|
|
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php -y
|
|
sudo apt update
|
|
|
|
# Install PHP.
|
|
sudo apt-get install -y php8.4 php8.4-curl php8.4-zip php8.4-xml php8.4-bcmath php8.4-intl php8.4-mysql php8.4-redis php8.4-mbstring mariadb-client-core unzip
|
|
```
|
|
### Debian
|
|
|
|
```bash
|
|
# Add the packages.sury.org/php repository.
|
|
sudo apt-get update
|
|
sudo apt-get install -y lsb-release ca-certificates apt-transport-https curl
|
|
sudo curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
|
sudo dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
|
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/debsuryorg-archive-keyring.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
|
|
sudo apt-get update
|
|
|
|
# Install PHP.
|
|
sudo apt-get install -y php8.4 php8.4-curl php8.4-zip php8.4-xml php8.4-bcmath php8.4-intl php8.4-mysql php8.4-redis php8.4-mbstring mariadb-client-core unzip
|
|
```
|
|
|
|
### Arch Linux
|
|
|
|
```bash
|
|
# Update system and install PHP with required extensions and Composer.
|
|
sudo pacman -Syu
|
|
sudo pacman -S php php-fpm php-gd php-intl php-pgsql php-sqlite php-redis php-imagick composer
|
|
```
|
|
|
|
## 3. Clone the UNIT3D Repository
|
|
|
|
```bash
|
|
git clone https://github.com/HDInnovations/UNIT3D.git
|
|
cd UNIT3D
|
|
```
|
|
|
|
|
|
## 4. Install Composer
|
|
|
|
### Ubuntu/Debian
|
|
|
|
```bash
|
|
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
|
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'.PHP_EOL; } else { echo 'Installer corrupt'.PHP_EOL; unlink('composer-setup.php'); exit(1); }"
|
|
php composer-setup.php
|
|
php -r "unlink('composer-setup.php');"
|
|
|
|
sudo mv composer.phar /usr/local/bin/composer
|
|
|
|
```
|
|
|
|
> **Note:** On Arch Linux, Composer is installed via `pacman` in the previous step and does not require manual installation.
|
|
|
|
## 5. Enable PHP Extensions
|
|
|
|
To enable required PHP extensions on Ubuntu, run:
|
|
|
|
```bash
|
|
sudo sed -i '/^;zend_extension=opcache/s/^;//' /etc/php/8.4/cli/php.ini \
|
|
&& sudo sed -i '/^;extension=iconv/s/^;//' /etc/php/8.4/cli/php.ini \
|
|
&& sudo sed -i '/^;extension=bcmath/s/^;//' /etc/php/8.4/cli/php.ini \
|
|
&& sudo sed -i '/^;extension=redis/s/^;//' /etc/php/8.4/cli/php.ini \
|
|
&& sudo sed -i '/^;extension=intl/s/^;//' /etc/php/8.4/cli/php.ini \
|
|
&& sudo sed -i '/^;extension=mysqli/s/^;//' /etc/php/8.4/cli/php.ini \
|
|
&& sudo sed -i '/^;extension=pdo_mysql/s/^;//' /etc/php/8.4/cli/php.ini
|
|
```
|
|
|
|
To enable required PHP extensions on Arch Linux, run:
|
|
|
|
```bash
|
|
sudo sed -i '/^;zend_extension=opcache/s/^;//' /etc/php/php.ini \
|
|
&& sudo sed -i '/^;extension=iconv/s/^;//' /etc/php/php.ini \
|
|
&& sudo sed -i '/^;extension=bcmath/s/^;//' /etc/php/php.ini \
|
|
&& sudo sed -i '/^;extension=redis/s/^;//' /etc/php/php.ini \
|
|
&& sudo sed -i '/^;extension=intl/s/^;//' /etc/php/php.ini \
|
|
&& sudo sed -i '/^;extension=mysqli/s/^;//' /etc/php/php.ini \
|
|
&& sudo sed -i '/^;extension=pdo_mysql/s/^;//' /etc/php/php.ini
|
|
```
|
|
|
|
> **Note:** Adjust the path to `php.ini` if your PHP installation uses a different location
|
|
|
|
|
|
## 6. Copy the Environment File
|
|
|
|
After cloning the repository, copy the example environment file:
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
## 7. Install Dependencies with Composer
|
|
|
|
Run the following commands inside the `UNIT3D` directory to install and update PHP dependencies:
|
|
|
|
```bash
|
|
composer update
|
|
composer install
|
|
```
|
|
|
|
## 8. Start UNIT3D with Laravel Sail
|
|
|
|
Before starting UNIT3D, add your user to the Docker group to run Docker commands without `sudo`:
|
|
|
|
```bash
|
|
sudo usermod -aG docker $USER
|
|
newgrp docker
|
|
```
|
|
|
|
or Log out and back in for the group change to take effect.
|
|
|
|
9. To start the application using Laravel Sail, run:
|
|
|
|
```bash
|
|
./vendor/bin/sail up -d
|
|
```
|
|
|
|
> **Tip:** The MySQL container may need to be restarted multiple times during initial setup. If you encounter connection issues, run:
|
|
>
|
|
> ```bash
|
|
> ./vendor/bin/sail restart mysql
|
|
> ```
|
|
>
|
|
> Wait a few moments after each restart before retrying your commands.
|
|
|
|
This will start the required Docker containers in detached mode.
|
|
|
|
For troubleshooting MySQL root user errors, see [Fix MySQL root user error](./Troubleshooting.md#fix-mysql-root-user-error).
|
|
|
|
|
|
## 10. Generate Application Key
|
|
|
|
Before generating the Laravel application key, ensure your `.env` file contains an `APP_KEY` variable (it can be empty):
|
|
|
|
```bash
|
|
./vendor/bin/sail artisan key:generate
|
|
```
|
|
|
|
This command sets the `APP_KEY` value in your `.env` file, which is required for application security.
|
|
|
|
|
|
## 11. Run Database Migrations and Seed Data
|
|
|
|
To set up the database schema and seed initial data, run:
|
|
|
|
```bash
|
|
./vendor/bin/sail artisan migrate:fresh --seed
|
|
```
|
|
|
|
## 12. Manage Node.js Dependencies and Compile Assets
|
|
|
|
To install Node.js dependencies and build frontend assets within the Docker environment, run:
|
|
|
|
```bash
|
|
./vendor/bin/sail bun install
|
|
./vendor/bin/sail bun pm untrusted
|
|
./vendor/bin/sail bun pm trust --all
|
|
./vendor/bin/sail bun install
|
|
./vendor/bin/sail bun run build
|
|
```
|
|
|
|
If you need to refresh the Node.js environment (e.g., after updating dependencies), use:
|
|
|
|
```bash
|
|
./vendor/bin/sail rm -rf node_modules && bun pm cache rm && bun install && bun run build
|
|
```
|
|
|
|
## 13. Application Cache Configuration
|
|
|
|
Optimize performance by setting up the cache:
|
|
|
|
```bash
|
|
./vendor/bin/sail artisan set:all_cache
|
|
```
|
|
|
|
## 14. Environment Restart
|
|
|
|
Apply new configurations or restart the environment:
|
|
|
|
```bash
|
|
./vendor/bin/sail restart && ./vendor/bin/sail artisan queue:restart
|
|
```
|
|
|
|
---
|
|
|