About Social Link
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