Делаем из компа удаленный сервер 24/7

Делаем из компа удаленный сервер 24/7


Приветствую!
Наверняка у многих где-то в шкафу валяется старый ноут с убитой батарейкой или древний системник. Выкинуть не хочется, с продажи получишь денег лишь на 3 сырка Дружба, юзать для нормальной работы уже нереально. Сегодня выжмем из любого говна и палки максимум и сделаем удаленный сервер который будет работать 24/7
d2ebc43d-90c8-4059-b296-f6ec193e9d15.webp

Хату ставлю, вы сильно сэкономите бабло на аренде дедиков и получите полный руль над сервером, в отличии от того что вам продают барыги.
Мне лень врубать мой ноут-сервер ибо у меня там установлен Zorin OS, так что буду все шаги на виртуалке показывать
75ad88d3-c984-4d73-b44e-db3e5273d611.webp

Приятного чтения!​​

Если у вас ноутбук - вытаскиваем старую вздутую батарею, ибо смысла нету от неё особо, ведь при подключении по кабелю ноут работает по принципу прямого тока на систему питания, батарея не выступает посредником.

Желательно разобрать корпус, вычистить пыль (чтобы фиксик внутри компа не задохнулся
5b6c1b52-00b7-4913-90f4-039897839685.webp
) - для этого пылесос пойдёт но надо аккуратно без насадки, или с гаража берите компрессор для накачки колёс. Также рекомендую поменять термопасту.
Подключаем интернет по кабелю напрямую в роутер. Никакого вайфая, пинг огромный да и пакеты теряются.

После того как включим нашего железного коня, в BIOS ищем настройку питания
⁡Restore on AC Power Loss
⁡ и ставим значение
⁡Power On
⁡ . Если дома моргнет свет, машина сама включится обратно при подаче тока.​​

​​



Теперь поговорим про систему
Про винду можете не вспоминать, она сожрет всю оперативку фоновыми процессами. Линукс без графики жрет от силы мегабайт 150-200 оперативки в простое. Если вы совсем малышарик, под Rufus есть отдельные гайды. Качаем образ, пишем на флешку и устанавливаем. Обязательно ставьте крестик напротив установки OpenSSH.​​

​​

Система встала - прячем ноут/системник на шкаф рядом с роутером. Монитор и клавиатура больше не нужны, всё делаем с компа. Открываем командную строку и коннектимся по SSH. Локальный IP смотрим в админке роутера.​​


Если делаете сервер из ноута, нужно вырубить спящий режим при закрытии крышки.
Открываем конфиг:
⁡sudo nano /etc/systemd/logind.conf
⁡
Ищем строку
⁡#HandleLidSwitch=suspend
⁡ , убираем решетку и меняем на
⁡HandleLidSwitch=ignore
⁡ .
Сохраняем (жмем CTRL + O, потом ENTER), выходим из редактора (CTRL + X) и уходим в ребут (пишем
⁡sudo reboot
⁡ ). Теперь крышку можно захлопывать.​​

Консоль пугает малышариков. Мы поставим визуальную панель управления - CasaOS. Она легкая, не грузит старое железо и дает красивый дашборд прямо в браузере.
Пишем в консоль всего одну команду:
⁡curl -fsSL https://get.casaos.io | sudo bash
⁡ ​​

​​

После установки просто вводим локальный IP сервера в браузер на основном компе. Вы увидите красивую панель с графиками загрузки процессора, оперативки и диска. Там же есть свой магазин приложений, откуда в один клик ставятся торрент-качалки, личные облака типа Nextcloud и куча других полезных сервисов.​​

​​

На домашнем дедике можно поднять что угодно и когда угодно, нас ограничивает лишь железо. Напишем для примера эхо-бота на питоне и глянем его.
Сначала ставим нужные пакеты.

⁡sudo apt update && sudo apt install python3 python3-pip screen -y
⁡

Теперь на своем основной машине создаем файл
⁡bot.py
⁡ и пишем туда код:

import asyncio
from aiogram import Bot, Dispatcher, types
from aiogram.filters import CommandStart

TOKEN = "токен_botfather"

bot = Bot(token=TOKEN)
dp = Dispatcher()

@dp.message(CommandStart())
async def start_cmd(message: types.Message):
await message.answer("Волк - это ходить!")

@dp.message()
async def echo(message: types.Message):
await message.answer(message.text)

async def main():
print("Бот запущен!")
await dp.start_polling(bot)

if __name__ == "__main__":
asyncio.run(main())

Python

Код:
import asyncio
from aiogram import Bot, Dispatcher, types
from aiogram.filters import CommandStart

TOKEN = "токен_botfather"

bot = Bot(token=TOKEN)
dp = Dispatcher()

@dp.message(CommandStart())
async def start_cmd(message: types.Message):
    await message.answer("Волк - это ходить!")

@dp.message()
async def echo(message: types.Message):
    await message.answer(message.text)

async def main():
    print("Бот запущен!")
    await dp.start_polling(bot)

if __name__ == "__main__":
    asyncio.run(main())
Качаем программу WinSCP (или FileZilla), вводим туда IP нашего сервера, логин и пароль. Закидываем файл
⁡bot.py
⁡ прямо на сервер.

Возвращаемся в консоль. Ставим библиотеку:

⁡pip install aiogram
⁡
Создаем виртуальное окно, чтобы бот не умер при закрытии консоли:

⁡screen -S botik
⁡
Запускаем код:

⁡python3 bot.py
⁡

Нажимаем комбинацию Ctrl+A, а затем D. Вы вышли из окна, а бот продолжает пахать. Вернуться обратно можно командой
⁡screen -r botik
⁡ ​​

Белый IP адрес от провайдера стоит денег, а светить открытыми портами в сеть - затея плохая. Чтобы безопасно подключаться к своему дедику откуда угодно, юзаем Tailscale. Прога делает так называемую локальную сеть между вашими девайсами.
Установка:

⁡curl -fsSL https://tailscale.com/install.sh | sh
⁡
После установки запускаем:

⁡sudo tailscale up
⁡
Консоль выдаст длинную ссылку. Копируем ее, открываем в браузере и авторизуемся.​​


Теперь качаем приложение Tailscale на свой телефон или основную машину и логинимся в тот же аккаунт. Вам выдадут IP (начинается на
⁡100.x.x.x
⁡ ). Теперь вы можете сидеть на парах через мобильный инет и заходить по этому айпишнику в панель CasaOS или управлять сервером по SSH​​

На выходе мы получили дедик абсолютно бесплатно, на котором можно развернуть что угодно, ограничения - ваши фантазии и железо компа. Если хотим развернуть проект, который требует белого айпи (условный майнкрафт сервер), то у меня уже есть статья, где я говорил как сделать себе белый айпи за 50 рублей: *клик*

Пока, форумчане, ещё услышимся!
2ac07926-9e86-4784-8db3-9fa6a3901362.webp

Комментарии 0

Пока нет комментариев. Начните обсуждение.
Войдите, чтобы оставить комментарий.
Назад
Верх