Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Latest commit

 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Server Auto-Deploy Script

Скрипты для быстрой базовой настройки VPS/VDS (Debian/Ubuntu/RHEL).


Структура файлов

  • deploy.sh — основной скрипт (поддерживает локальный и удаленный запуск).
  • setup_nginx.sh — модуль настройки Nginx.
  • setup_firewall.sh — модуль настройки Firewall.
  • utils.sh — общие функции и валидация.
  • configs — папка с конфигами:
  • cheatsheets — папка с подсказками для cheat

Основные возможности

  • Модульность: Возможность пропустить базовую настройку и запустить только нужные этапы (Nginx, Firewall).
  • Remote Deploy: Автоматическое копирование проекта и запуск на удаленном сервере одной командой.
  • Security: Смена порта SSH, Fail2Ban, настройка Firewall (UFW/Firewalld) с поддержкой сокращений (a/d).
  • System: Hostname, Timezone, IPv6 off, оптимизация journald, интерактивный Swap.
  • Software: Установка Docker, Nginx, NVM, Certbot, подсказки с cheat

Инструкция по использованию

1. Удаленный запуск (с вашей машины)

Если у вас установлен Git Bash (Windows) или Linux/macOS, не нужно вручную копировать файлы. Запустите:

chmod +x deploy.sh
./deploy.sh -remote

Скрипт запросит IP, порт и пользователя, сам создаст временную папку на сервере, скопирует структуру и запустит установку.

2. Локальный запуск (на сервере)

Если файлы уже на сервере:

chmod +x deploy.sh
sudo ./deploy.sh

Настройка конфигураций

Firewall (configs/firewall.conf)

Формат: действие|направление|порт/протокол. Поддерживаются сокращения: allow (a), deny (d).

allow|in|80/tcp
a|in|443/tcp

Nginx (configs/nginx_base.conf)

Используйте переменную {{DOMAIN}} в шаблоне. Скрипт автоматически заменит её на введенный вами домен.

Подсказки cheat sheets

Скрипт позволяет добавить свои подсказки командам через (cheat)[https://github.com/cheat/cheat].

Чтобы добавить свои, кладите файлы в структуру:

cheatsheets/
└── ru/
    ├── docker
    └── nginx

Файлы для cheat — plain-text без расширения. Имя файла совпадает с именем подсказки: cheat nginx

Для нового языка добавте каталог рядом с ru, например:

cheatsheets/en/nginx

Затем добавьте код языка в select_cheats_language() в deploy.sh.


Возможные проблемы

При попытке запуска скрипта на хосте:

 -bash: ./deploy.sh: cannot execute: required file not found

Проверьте как сохранены переносы строк в файле (если правили скрипт на Windows машине, могли сохраниться в формате CRLF).

Для смены переносов строк на LF прямо на сервере запустите в папке куда копировали скрипт:

sed -i 's/\r$//' deploy.sh setup_firewall.sh setup_nginx.sh utils.sh

About

Scripts for basic server setup for your projects

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages