Version 1.1.2
92 downloads
Social Link
New improved Version
A site that allows the user to link their Discord/Steam account and get perks or rewards.
Table of Contents
Introduction
Motivation
Features
Getting Started
Requirements
Installation
Setup CRON
Job Scheduling
Dashboard Configuration
Introduction
Social Link is a site that allows the user to link their Discord/Steam account and get perks or rewards. It's a simple service that checks whether the user is present in the Steam group or/and in the Discord server (it can also assign a Discord role automatically), then it can send custom commands via RCON (compatible with multiple server). This project was primarily made for Rust servers administrators.
Features
Steam authentication
Discord authentication
Steam group checker
Discord Guild checker
Discord role assignment
Sends custom RCON commands
Possibility of having multiple Rust servers or RCON commands will be sent
Option to Enable/Disable Steam Group Check / Discord Auth / Discord role assignment / RCON Commands
Admin dashboard
Discord Webhooks logs
Possibility for the user to de-authenticated
Possible for the admin to de-authenticated a user
Custom Discord/Steam oxide group name
Customization of the site name, logo, design, links (Discord / Steam group / store)
Checking all users if they are in the Steam group and/or in Discord (Automated and Manual).
Getting Started
Requirements
Ubuntu or Debian
Nginx
PHP
SQLite
Composer
Node.js with npm
Supervisor
VPS with at least 2 GB of RAM and 2 cores.
Installation
Download the source code.
Go to directory:
cd Social-Link
Create a database file with:
touch database/social-link.sqlite
Install:
composer install
Rename or copy env.example to .env:
cp .env.example .env
Generate a new application key
php artisan key:generate
You can find your Steam API key here.
Discord Login Setup:
Create new application here
Go on OAuth2 and add redirect (use this format: "https://domain.com/discord/callback")
Vk Login Setup:
Create new application here
Go on Manage -> Settings and add Authorised redirect URI: (use this format: "https://domain.com/vk/callback")
Before continuing, you must modify the ".env" otherwise the rest will not work.
This information is essential to be modified in the .env, other information will have to be modified on the dashboard.
DB_DATABASE= # full path to your db file "/path/to/project/database/social-link.sqlite"
ADMIN_STEAM_ID= # The first user who will have the admin role (you will have the option to add another admin later).
STEAM_KEY= # The steam API key to authenticate via Steam.
STEAM_REDIRECT_URI= # The redirect URL (it must be in this format: https://domain.com/auth/steam/callback)
# If you want to use Discord:
DISCORD_CLIENT_ID= # CLIENT ID to authenticate via discord
DISCORD_CLIENT_SECRET= # CLIENT SECRET to authenticate via discord (NOT THE TOKEN BOT)
DISCORD_REDIRECT_URI= # Redirection URL (it must be in this format: https://domain.com/discord/callback)
# If you want to use VK (VKontakte) (https://vk.com/apps?act=manage):
VKONTAKTE_CLIENT_ID= # App ID
VKONTAKTE_CLIENT_SECRET= # Secure key
VKONTAKTE_REDIRECT_URI= # Redirection URL (it must be in this format: https://domain.com/vk/callback)
Once you have completed the .env file:
Setup database tables:
php artisan migrate:fresh --seed
Install Node dependencies:
npm install && npm run prod
Job Scheduling
To send RCON commands and check all users if they are in the steam group and/or in the discord in the background, you need to install Supervisor or use a tools like Forge or Ploi.
Setup CRON (Automatic Check)
Open crontab:
sudo crontab -e
Append:
* * * * * php /path/to/project/artisan schedule:run >> /dev/null 2>&1
"/path/to/project/artisan" becomes whatever directory you've set in your nginx config file
Dashboard Configuration
Now you have everything configured you must log in. Go to the homepage (your-domain.com) and click on Get Started. Once logged in, go your-domain.com/admin, then go to Settings & Servers and edit the information!
How to update
To update Social Link, keep the .env and the database/social-link.sqlite file and recreate a directory, put the contents of the archive and put back the two kept files then run this command:
composer install && php artisan migrate && npm i && npm run dev