Current code for Oldcord (Rewritten) as typescript sucks for this kinda project.
ziad87 (Hummus2 private source code for token generation, permissions, sessions references, and some middleware references)
discord.js (for snowflake)
unkn0w (for disposable email domain list)
Nebula Entertainment & Broadcasting LLC (for Nebula Sans — A drop in replacement for Whitney for the bootloader and build selector, which Discord used before 2022)
Due to Oldcord's rapidly changing nature, there are some commits which may break your current database generated by the program.
Which is why, on future commits where the DB is changed in a significant way, we will add a short SQL query/queries you can run to update the database to work with the new wrapper on the commit description.
The server may also automatically run these migration scripts for you when you update your instance and restart it.
Also, if you created your Oldcord instance before November 14 (2024) and you are updating it, please make sure that your config.json
file is also updated to the new format, or your instance will not work.
Download and setup a postgreSQL server with the database name of your choice.
Download the config.json
from the repository and modify the entries of your choice. Look below for a guide.
Run npm install
to install all the packages required to run Oldcord and then node server.js
to start Oldcord.
Since V3 is hosted on my own server at home, I use cloudflared to bypass CG-NAT and have enabled Cloudflare's free SSL so the SSL stuff in the earlier configuration is kinda deprecated.
custom_invite_url
is used for invites in the app, putting "example.com
" will make it so every invite made has the prefix example.com - much like discord.gg, etc.
There are Google Recaptcha v2 demo site & secret keys in the config example which you may find useful to look at when looking to enable recaptcha on your instance. If you'd like to not have recaptcha enabled, just set site_key
and secret_key
to "" (blank).
Also it is highly recommended you change those values if you do plan on using Recaptcha on production. Since it's a demo site key, all answers are valid.
integration_config
is for the in-app connections under user settings, currently only Twitch is supported, and you need to make a Twitch application which gives you a client_secret
to use this.
Example integration configuration:
"integration_config" : [{
"platform" : "twitch",
"client_id" : "client_id",
"client_secret" : "client_secret",
"redirect_uri" : "https://staging.oldcordapp.com/api/connections/twitch/callback"
}]
trusted_users
bypass short term rate-limits, use this to add specific users like bots from being blocked by the wacky rate-limits scattered across the project.
instance.flags
are kinda limited at the moment, but you can lock down an instance with these entries:
NO_REGISTRATION
- Block all future users from creating an account on your instance.
NO_GUILD_CREATION
- Block future guilds from being created.
NO_INVITE_USE
- Block invites from being used.
More are to come with instance flags in the future.
The gcs_config
section of the config.example.json
is for the ability to auto-upload saved assets from the wayback machine for future use later.
It takes 2 properties, autoUploadBucket
- which is the name of the bucket you want to automatically upload assets into, and gcStorageFolder
(name of the folder within the bucket, i.e assets
)
Here's an example Google Cloud Storage configuration:
"gcs_config" : {
"autoUploadBucket" : "discord_assets_stuff",
"gcStorageFolder" : "assets"
},
To setup Google Cloud Storage auto uploading, you need to download the Google Cloud SDK Shell and run these 2 commands to login and authorize your billing account for use in-applications:
gcloud auth login
gcloud auth application-default login
You might also need to configure CORS for your use of the bucket accordingly.
🟢 = Full Support
🟠 = Currently in development (or mostly supported, but not fully)
🔴 = Planned for development in the future
❎ = No plan for support in the future
2015 🟢
2016 🟢
2017 🟠
2018 🟠
2019 ❎ (As much as I'd like to say we'd fully support this year one day, the amount of telemetry, commercial crap, and bloatware - along with big crucial infrastructure changes which are hardly documented for the year just makes me lose faith in even getting a fraction of the gateway up to speed for this year)
2020+ ❎ (NOTE: This is not planned for support due to being when Discord became a shell of its former self)