4 releases
0.1.3 | Jun 25, 2024 |
---|---|
0.1.2 | Jun 25, 2024 |
0.1.1 | Jun 24, 2024 |
0.1.0 | Jun 24, 2024 |
#165 in Science
22 downloads per month
95KB
1.5K
SLoC
ServerForge
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.
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
Prerequisites
- Root access on the target system (for Linux and macOS)
- Administrator privileges (for Windows)
Installation
Linux
Ubuntu/Debian
# 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
CentOS/RHEL
# 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
Fedora
# 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
Manual Installation (All Platforms)
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.
Usage
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
Modules
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.
Customization
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.
Documentation
ServerForge is documented using Rustdoc. To generate the documentation: Documentation
Contributing
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.
License
ServerForge is released under the MIT License. See the LICENSE file for details.
Disclaimer
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.
Support
For bug reports and feature requests, please open an issue on the GitHub repository.
Acknowledgments
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.
Dependencies
~6–16MB
~221K SLoC