diff --git a/src/languages/ru-RU.js b/src/languages/ru-RU.js
new file mode 100644
index 000000000..c9de68614
--- /dev/null
+++ b/src/languages/ru-RU.js
@@ -0,0 +1,110 @@
+export default {
+    languageName: "Русский",
+    checkEverySecond: "Проверять каждые {0} секунд.",
+    "Avg.": "Средн. ",
+    retriesDescription: "Максимальное количество попыток перед пометкой сервиса как недоступного и отправкой уведомления",
+    ignoreTLSError: "Игнорировать ошибку TLS/SSL для HTTPS сайтов",
+    upsideDownModeDescription: "Реверс статуса сервиса. Если сервис доступен, то он помечается как НЕДОСТУПНЫЙ.",
+    maxRedirectDescription: "Максимальное количество перенаправлений. Поставьте 0, чтобы отключить перенаправления.",
+    acceptedStatusCodesDescription: "Выберите коды статусов, которые должны считаться за успешный ответ.",
+    passwordNotMatchMsg: "Повтор пароля не совпадает.",
+    notificationDescription: "Привяжите уведомления к мониторам.",
+    keywordDescription: "Поиск слова в чистом HTML или в JSON-ответе (чувствительно к регистру)",
+    pauseDashboardHome: "Пауза",
+    deleteMonitorMsg: "Вы действительно хотите удалить данный монитор?",
+    deleteNotificationMsg: "Вы действительно хотите удалить это уведомление для всех мониторов?",
+    resoverserverDescription: "Cloudflare является сервером по умолчанию. Вы всегда можете сменить данный сервер.",
+    rrtypeDescription: "Выберите тип ресурсной записи, который вы хотите отслеживать",
+    pauseMonitorMsg: "Вы действительно хотите поставить на паузу?",
+    Settings: "Настройки",
+    Dashboard: "Панель",
+    "New Update": "Обновление",
+    Language: "Язык",
+    Appearance: "Внешний вид",
+    Theme: "Тема",
+    General: "Общее",
+    Version: "Версия",
+    "Check Update On GitHub": "Проверить обновления на GitHub",
+    List: "Список",
+    Add: "Добавить",
+    "Add New Monitor": "Новый монитор",
+    "Quick Stats": "Статистика",
+    Up: "Доступно",
+    Down: "Недоступно",
+    Pending: "Ожидание",
+    Unknown: "Неизвестно",
+    Pause: "Пауза",
+    Name: "Имя",
+    Status: "Статус",
+    DateTime: "Дата и время",
+    Message: "Сообщение",
+    "No important events": "Важных событий нет",
+    Resume: "Возобновить",
+    Edit: "Изменить",
+    Delete: "Удалить",
+    Current: "Текущий",
+    Uptime: "Аптайм",
+    "Cert Exp.": "Сертификат просрочен",
+    days: "дней",
+    day: "день",
+    "-day": " дней",
+    hour: "час",
+    "-hour": " часа",
+    Response: "Ответ",
+    Ping: "Пинг",
+    "Monitor Type": "Тип монитора",
+    Keyword: "Слово",
+    "Friendly Name": "Имя",
+    URL: "URL",
+    Hostname: "Имя хоста",
+    Port: "Порт",
+    "Heartbeat Interval": "Частота опроса",
+    Retries: "Попыток",
+    Advanced: "Дополнительно",
+    "Upside Down Mode": "Режим реверса статуса",
+    "Max. Redirects": "Макс. перенаправлений",
+    "Accepted Status Codes": "Допустимые коды статуса",
+    Save: "Сохранить",
+    Notifications: "Уведомления",
+    "Not available, please setup.": "Доступных уведомлений нет, необходима настройка.",
+    "Setup Notification": "Настроить уведомления",
+    Light: "Светлая",
+    Dark: "Тёмная",
+    Auto: "Авто",
+    "Theme - Heartbeat Bar": "Тема - Полоса частоты опроса",
+    Normal: "Обычный",
+    Bottom: "Снизу",
+    None: "Отсутствует",
+    Timezone: "Часовой пояс",
+    "Search Engine Visibility": "Видимость поисковым движком",
+    "Allow indexing": "Разрешить индексирование",
+    "Discourage search engines from indexing site": "Не позволять индексировать сайт",
+    "Change Password": "Сменить пароль",
+    "Current Password": "Текущий пароль",
+    "New Password": "Новый пароль",
+    "Repeat New Password": "Повтор нового пароля",
+    "Update Password": "Обновить пароль",
+    "Disable Auth": "Отключить авторизацию",
+    "Enable Auth": "Включить авторизацию",
+    Logout: "Выйти",
+    Leave: "Отмена",
+    "I understand, please disable": "Я понимаю, всё равно отключить",
+    Confirm: "Подтвердить",
+    Yes: "Да",
+    No: "Нет",
+    Username: "Логин",
+    Password: "Пароль",
+    "Remember me": "Запомнить меня",
+    Login: "Вход в систему",
+    "No Monitors, please": "Мониторов нет, пожалуйста",
+    "add one": "создайте новый",
+    "Notification Type": "Тип уведомления",
+    Email: "Почта",
+    Test: "Проверка",
+    "Certificate Info": "Информация о сертификате",
+    "Resolver Server": "DNS сервер",
+    "Resource Record Type": "Тип ресурсной записи",
+    "Last Result": "Последний результат",
+    "Create your admin account": "Создайте аккаунт администратора",
+    "Repeat Password": "Повторите пароль"
+}
diff --git a/src/main.js b/src/main.js
index 435caf218..fe35d3815 100644
--- a/src/main.js
+++ b/src/main.js
@@ -31,6 +31,7 @@ import ja from "./languages/ja";
 import daDK from "./languages/da-DK";
 import svSE from "./languages/sv-SE";
 import koKR from "./languages/ko-KR";
+import ruRU from "./languages/ru-RU";
 
 const routes = [
     {
@@ -102,6 +103,7 @@ const languageList = {
     "da-DK": daDK,
     "sv-SE": svSE,
     "ko-KR": koKR,
+    "ru-RU": ruRU,
 };
 
 const i18n = createI18n({