ServerForge is a robust, customizable server setup and maintenance tool written in Rust. It's designed to automate the process of configuring and deploying servers across multiple Linux distributions, with support for containerization and advanced security features.
- Multi-distribution support (Ubuntu, CentOS, Fedora)
- Modular architecture for easy customization and extension
- Containerization support with Docker and Kubernetes options
- Advanced security measures implementation
- Automatic system updates configuration
- Monitoring setup with Prometheus and Grafana
- Backup system configuration
- Application deployment (traditional and containerized)
- Rollback capability for all major operations
- Root access on the target system (for Linux and macOS)
- Administrator privileges (for Windows)
# Add our repository
echo "deb [trusted=yes] https://apt.fury.io/doziestar/ /" | sudo tee /etc/apt/sources.list.d/doziestar.list
# Update package list
sudo apt update
# Install ServerForge
sudo apt install serverforge
To update:
sudo apt update
sudo apt upgrade serverforge
# Add our repository
sudo yum-config-manager --add-repo https://yum.fury.io/doziestar/
# Install ServerForge
sudo yum install serverforge
To update:
sudo yum update serverforge
# Add our repository
sudo dnf config-manager --add-repo https://yum.fury.io/doziestar/
# Install ServerForge
sudo dnf install serverforge
To update:
sudo dnf update serverforge
You can also install ServerForge using our install script:
curl -sSL https://raw.githubusercontent.com/doziestar/server_forge/main/install.sh | bash
This script will detect your OS and architecture and install the appropriate version of ServerForge.
Run ServerForge with appropriate privileges:
On Linux/macOS:
sudo serverforge
Follow the interactive prompts to configure your server. ServerForge will ask for information such as:
- Linux distribution (for Linux installations)
- Server role
- Security level
- Monitoring preferences
- Backup frequency
- Update schedule
- Containerization preferences
- Applications to deploy
ServerForge is composed of the following modules:
main.rs
: The entry point of the application, orchestrating the setup process.config.rs
: Defines the configuration structure for the server setup.utils.rs
: Contains utility functions used throughout the application.setup.rs
: Handles initial system setup and essential package installation.security.rs
: Implements security measures and configures security tools.updates.rs
: Sets up automatic system updates.monitoring.rs
: Configures monitoring tools like Prometheus and Grafana.backup.rs
: Sets up the backup system.deployment.rs
: Handles traditional application deployment.containerization.rs
: Manages Docker and Kubernetes setup and container deployment.rollback.rs
: Provides rollback functionality for all major operations.distro.rs
: Handles distribution-specific operations and package management.
ServerForge is designed to be easily customizable. To add or modify functionality:
- Locate the relevant module file (e.g.,
security.rs
for security features). - Add or modify functions as needed.
- Update the
main.rs
file if you've added new high-level functionality.
ServerForge is documented using Rustdoc. To generate the documentation: Documentation
Contributions to ServerForge are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Write your code and tests.
- Submit a pull request with a clear description of your changes.
ServerForge is released under the MIT License. See the LICENSE file for details.
ServerForge is a powerful tool that makes significant changes to your system. Always use it in a testing environment first and ensure you have backups before running it on a production server.
For bug reports and feature requests, please open an issue on the GitHub repository.
ServerForge was inspired by the need for a flexible, cross-distribution server setup tool in the Rust ecosystem. Special thanks to the Rust community and the developers of the libraries used in this project.