In this guide, I’ll be showing you how to deploy your sern bot with Railway.
This guide assumes you have a sern bot already set up and ready to deploy. If you don’t, you can follow the walkthrough to set up your bot.
GitHub Repository
The first thing you’ll need to deploy your bot is a GitHub repository for your bot. If you don’t have one, you can create one by following the GitHub guide.
Once you have your repository set up, you can push your bot’s code to the repository, and you’re ready to deploy using Railway.
Railway Setup
After you have your bot’s code in a GitHub repository, you’ll need to create an account on Railway. You can sign up using your GitHub account at railway.app.
Once you’ve created your account, navigate to the dashboard and click the “New Project” button. Click the “Deploy from GitHub repo” button, and select your bot’s repository.
Once you’ve selected your repository, click the “Add Variables” button to add your bot’s environment variables. You’ll need your environment variables from your .env file to add to Railway. (You can also add these later if you want.)
Deploy
Once you’ve added your environment variables, click the “Deploy” button, and Railway will start deploying your bot. Once the deployment is complete, you’ll be able to see your bot’s URL and logs.
That’s it! Your bot is now deployed and running on Railway. If you have any issues or questions, feel free to ask in the sern Discord server.
Hey everyone! Today we have very special news for you all: We’re changing our logo!
Why?
You see, on today’s standards, having a simple logo is essential. Our logo aligns perfectly with these design principles but it can always be improved.
We were chilling, you know, cooking sern handler v3, sern gui, npm create @sern/bot and serncord when we thought about changing the logo to a sleek design with less colors.
And here we are!
Bro’s the GOAT. This website is maintained by him, the domain costs are funded by him and also he started brainstorming how the logo would be on paper:
And there it all clicked:
seren tried by the way!
Anyways, here it is:
Pretty nice!
By the way, we have animations and variations on the way, so make sure to stay updated in the discord server!
Finally, from the entire sern team, thank you for sticking around ❤️
Thank you for using sern in your projects. It’s only going to get better!
I apologize for the sudden small breaking change. After this update, there won’t be any for a while.
Wow! We’re increasing our semantic versioning by +0.3.9
What does this mean?
Breaking changes
controller parameter for plugins has been removed
You’ll need to import it instead
This breaks old CommandPlugin, but not old EventPlugin
Deprecations
CommandPlugin and EventPlugin have been renamed to InitPlugin and ControlPlugin, respectively
Reason
The naming of plugins was getting too complex. For example, plugin naming evolved into CommandModuleCommandPlugin, CommandModuleEventPlugin and more.
I realize that this affects all plugins. I have updated all plugins to match these changes
The old way of declaring plugins has been deprecated in favor of newer functions that facilitate and ease typings
Join our discord!
Wow! We’re finally increasing our semantic versioning by +1.7.9.
What does this mean?
Plugin Support for Event Modules
You can now use plugins for event modules. Previous version would throw an error if the
plugins field was populated.
Applying this plugin to some eventModule:
Dependency Injection and Decoupling
The powerful npm package iti decouples sern even more.
Decoupling data structures with the Inversion of Control pattern separates data from logic, which will help speed production
and make sern even more customizable than before.
How do I start?
Using the Sern#makeDependencies function, inject your dependencies.
We’ll use specific dependencies that are created with the @sern/keyword
key.
Using typescript to display all keywords and what they represent:
At the moment, one optional dependency, @sern/logger, exists. If not added explicitly,
we’ll autofill with a DefaultLogger.
Use your generated dependency getter useContainer (use whatever name you want), access them
from anywhere.
2.0 includes all the new role select menus. CommandType.MenuSelect has been renamed into
CommandType.StringSelect. The remaining SelectMenus are
CommandType.RoleSelect, CommandType.ChannelSelect, CommandType.UserSelect, CommandType.MentionableSelect
In addition, commandModules with ContextMenus have been renamed.
Typings Simplification
Pre 2.0:
Post 2.0:
CommandPlugin<T> and EventPlugin<T> typings have also been static’ified, transformed from types to interfaces
Breaking Changes
All deprecation warnings from previous versions have taken effect, and are removed in 2.0.
Override type has been removed due to redundancy
Including the previous section, some names to symbols and data structures were altered to
be better represented. view changelog
Context refactoring
The context data structure has been internally altered to represent its dynamics better.