Abdelrhman

Levi Server Setup
0 Views

Levi Server Setup

Open-source Bash tool for provisioning servers, configuring Nginx and TLS, and scheduling backups.

Project Overview

Levi Server Setup is an open-source Bash tool for people preparing an Ubuntu or Debian server. It offers an interactive terminal menu and direct commands for common setup tasks such as runtime installation, reverse proxy configuration, TLS certificates, and backups.

The problem

A new server needs several ordered changes before it can host an application. Repeating package installation, firewall setup, web server configuration, and backup scheduling by hand is slow and easy to miss. This script gathers those operations in one inspectable shell file and lets an operator choose only the tasks needed for a host.

Key features

  • Terminal menus support arrow keys and multi-select choices for setup groups.
  • Base setup updates packages and offers essential tools, firewall rules, Fail2Ban, timezone, swap, and unattended security updates.
  • Installers cover programming runtimes, databases, Docker, web servers, and selected monitoring tools.
  • A command generates an Nginx reverse proxy configuration for a domain and application port.
  • Another command requests a Let's Encrypt certificate through Certbot.
  • An SSH security wizard can create a sudo user, move authorized keys, and change login settings.
  • The backup wizard builds a standalone script for files, database dumps, custom paths, or a full archive.
  • Backup scheduling uses cron and uploads archives through rclone.

Technical architecture

The project is a self-contained Bash script. Menu functions collect operator choices; task functions invoke package managers and system tools such as apt, systemctl, ufw, nginx, certbot, and docker compose. The reverse proxy path writes an Nginx site configuration and reloads Nginx after its configuration check. The backup path writes server-backup.sh, then registers a cron entry. Database backup branches call the corresponding dump utilities when present, and rclone copies the resulting archive to a configured remote. Configuration is stored on the host.

Engineering highlights

  • The terminal interface renders multi-select menus directly in Bash, including key decoding and redraws.
  • Reverse proxy generation includes WebSocket upgrade headers for applications that need them.
  • The SSH wizard updates UFW rules when the port changes, linking access configuration with firewall state.
  • The generated backup script separates collection, remote transfer, and local cleanup.
  • Root checks guard operations that change system configuration.

Image Gallery

No media available for this project.

Client Reviews

Feedback from people who used or collaborated on this project.

Share your experience with this project