Files posted by Havens
🔗 Social Link
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
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.
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
Ubuntu or Debian Nginx PHP SQLite Composer Node.js with npm Supervisor 💻 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