3.8 KiB
UNIT3D Announce Setup Tutorial
Set up the UNIT3D Announce.
[!IMPORTANT] Before starting, ensure you have created and securely stored a backup of your current installation.
Prerequisites
- An existing UNIT3D installation (typically at
/var/www/html
). - Sudo privileges for system configuration.
- Basic knowledge of terminal commands and text editing.
- Your database credentials (
DB_*
) from/var/www/html/.env
. - Rust compiler and package manager (
cargo
) installed.
Installation Steps
1. Prepare the Environment
Navigate into your UNIT3D base directory:
cd /var/www/html
2. Clone & Configure UNIT3D-Announce
-
Clone the Announce repository and enter it:
git clone -b v0.1 https://github.com/HDInnovations/UNIT3D-Announce unit3d-announce cd unit3d-announce
-
Copy and edit the example environment:
cp .env.example .env sudo nano .env
- Ensure
DB_*
values match your main UNIT3D.env
. - Remove any trailing comma after
ANNOUNCE_MIN_ENFORCED
(e.g.ANNOUNCE_MIN_ENFORCED=1740
). - Uncomment
REVERSE_PROXY_CLIENT_IP_HEADER_NAME="X-Real-IP"
if using a reverse proxy.
- Ensure
3. Build the Tracker
Install Rust’s package manager and compile:
sudo apt update
sudo apt -y install cargo
cargo build --release
[!NOTE] The compiled binary will be located at
target/release/unit3d-announce
.
4. Update UNIT3D Environment
Return to your UNIT3D directory and add tracker variables:
cd /var/www/html
sudo nano .env
Add (or update) these variables to match your Announce .env
:
TRACKER_HOST=127.0.0.1
TRACKER_PORT=3000
TRACKER_KEY=your_32_characters_min_api_key
[!IMPORTANT]
TRACKER_KEY
must be at least 32 characters long.
5. Configure Nginx & Supervisor
Nginx
Edit your site’s Nginx config (e.g. /etc/nginx/sites-enabled/default
):
location /announce/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:3000$request_uri;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
set_real_ip_from 0.0.0.0/0;
}
- Adjust
proxy_pass
IP:Port to your Announce listener. - Change
set_real_ip_from
to your proxy’s IP range.
Supervisor
Create or update /etc/supervisor/conf.d/unit3d-announce.conf
:
[program:unit3d-announce]
process_name=%(program_name)s_%(process_num)02d
command=/var/www/html/unit3d-announce/target/release/unit3d-announce
directory=/var/www/html/unit3d-announce
autostart=true
autorestart=false
user=root
numprocs=1
redirect_stderr=true
stdout_logfile=/var/www/html/storage/logs/announce.log
Reload Supervisor:
sudo supervisorctl reread
sudo supervisorctl update
[!NOTE] Supervisor log:
/var/www/html/storage/logs/announce.log
Enable External Tracker in UNIT3D
Edit config/announce.php
:
<?php
return [
'external' => true,
'host' => env('TRACKER_HOST', '127.0.0.1'),
'port' => env('TRACKER_PORT', 3000),
'key' => env('TRACKER_KEY'),
];
6. Finalize & Verify Setup
Restart services and clear caches:
cd /var/www/html
sudo systemctl restart nginx
sudo supervisorctl reload
sudo php artisan set:all_cache
sudo systemctl restart php8.4-fpm
sudo php artisan queue:restart
Check Announce process status:
sudo supervisorctl status unit3d-announce:*
For logs:
supervisorctl tail -100 unit3d-announce:unit3d-announce_00
Troubleshooting
.env
typos: Verify all keys (TRACKER_*
,DB_*
,ANNOUNCE_*
).- Nginx syntax: Run
sudo nginx -t
after edits. - Supervisor errors: Inspect
/var/www/html/storage/logs/announce.log
. - API key issues: Ensure
TRACKER_KEY
is ≥32 characters.