Browse Source

tools installs

pull/21/head
pb 1 week ago
parent
commit
f6e71b96ad
4 changed files with 199 additions and 0 deletions
  1. 20
    0
      certbot.lin.sh
  2. 102
    0
      gitea.lin.sh
  3. 71
    0
      nginx.lin.sh
  4. 6
    0
      sslss.lin.sh

+ 20
- 0
certbot.lin.sh View File

@@ -0,0 +1,20 @@
#!/bin/bash

# Update package list
echo "Updating package list..."
sudo apt update -y

# Install Certbot and the Nginx plugin
echo "Installing Certbot and Nginx plugin..."
sudo apt install -y certbot python3-certbot-nginx

# Obtain SSL certificate for your domain
echo "Obtaining SSL certificate..."
sudo certbot --nginx -d ec2-13-201-225-130.ap-south-1.compute.amazonaws.com

# Certbot automatic renewal (this is done by default)
echo "Setting up automatic renewal for SSL certificate..."
sudo systemctl enable certbot.timer

# Final message
echo "SSL setup complete. Your site should now be accessible over HTTPS."

+ 102
- 0
gitea.lin.sh View File

@@ -0,0 +1,102 @@
#!/bin/bash

# Check if Gitea is installed by checking for the systemd service or binary
#if systemctl is-active --quiet gitea || [ -f /usr/local/bin/gitea ]; then
# echo "Gitea is already installed. Exiting installation."
# exit 0
#fi

# Check if Gitea is installed
if systemctl is-active --quiet gitea || [ -f /usr/local/bin/gitea ]; then
echo "Uninstalling existing Gitea installation..."

# Stop the Gitea service
sudo systemctl stop gitea

# Disable the Gitea service from starting automatically
sudo systemctl disable gitea

# Remove the Gitea binary
sudo rm -f /usr/local/bin/gitea

# Remove Gitea systemd service file
sudo rm -f /etc/systemd/system/gitea.service

# Reload systemd daemon to apply changes
sudo systemctl daemon-reload

# Remove Gitea directories (Optional: You can keep data or backup)
sudo rm -rf /var/lib/gitea
echo "Gitea uninstalled successfully."
else
echo "Gitea is not installed."
fi

# Update system packages
sudo apt update -y
sudo apt upgrade -y

# Install dependencies
sudo apt install -y git wget curl lsb-release sqlite3

# Set the Gitea version
GITEA_VERSION="1.23.5" # Replace with the latest version if needed

# Download Gitea binary
# wget -O /tmp/gitea https://dl.gitea.com/gitea/${GITEA_VERSION}/gitea-${GITEA_VERSION}-linux-amd64

wget -O /tmp/gitea https://github.com/go-gitea/gitea/releases/download/v1.23.5/gitea-1.23.5-linux-amd64

chmod +x /tmp/gitea

# Move Gitea binary to /usr/local/bin
sudo mv /tmp/gitea /usr/local/bin/gitea

# Create necessary directories
#sudo mkdir -p /var/lib/gitea/{custom,data,log}

# Create necessary directories for Gitea (custom, data, log)
sudo mkdir -p /var/lib/gitea/custom /var/lib/gitea/data /var/lib/gitea/log

sudo chown -R $USER:$USER /var/lib/gitea
sudo chmod -R 755 /var/lib/gitea

sudo mkdir /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea

# chmod 750 /etc/gitea
# chmod 640 /etc/gitea/app.ini

# Create a system user for Gitea
sudo useradd --system --create-home --shell /bin/bash --comment 'Gitea' gitea

# Setup systemd service for Gitea
cat <<EOF | sudo tee /etc/systemd/system/gitea.service
[Unit]
Description=Gitea
After=network.target

[Service]
ExecStart=/usr/local/bin/gitea web
Restart=always
User=gitea
Group=gitea
Environment=USER=gitea HOME=/var/lib/gitea GITEA_WORK_DIR=/var/lib/gitea/data

[Install]
WantedBy=multi-user.target
EOF

# Reload systemd to recognize the new service
sudo systemctl daemon-reload

# Enable and start Gitea service
sudo systemctl enable gitea
sudo systemctl start gitea

# Output the status of Gitea service
sudo systemctl status gitea

# Display message for post-installation configuration
echo "Gitea is installed and running. You can access it at http://<your_server_ip>:3000"

+ 71
- 0
nginx.lin.sh View File

@@ -0,0 +1,71 @@
#!/bin/bash

# Update package list and install required packages
echo "Updating package list..."
sudo apt update -y

# Install Nginx
echo "Installing Nginx..."
sudo apt install -y nginx

# Install OpenSSL to generate self-signed certificates
echo "Installing OpenSSL..."
sudo apt install -y openssl

# Create directory to store SSL certificates
echo "Creating SSL directories..."
sudo mkdir -p /etc/ssl/certs
sudo mkdir -p /etc/ssl/private

# Generate the private key and self-signed certificate
echo "Generating self-signed certificate..."
sudo openssl req -x509 -newkey rsa:4096 -keyout /etc/ssl/private/selfsigned.key -out /etc/ssl/certs/selfsigned.crt -days 365 -nodes

# Create Nginx configuration for Gitea with SSL
echo "Creating Nginx configuration for Gitea with SSL..."
cat <<EOF | sudo tee /etc/nginx/sites-available/gitea
server {
listen 80;
server_name ec2-13-201-225-130.ap-south-1.compute.amazonaws.com;

# Redirect HTTP to HTTPS
return 301 https://\$host\$request_uri;
}

server {
listen 443 ssl;
server_name ec2-13-201-225-130.ap-south-1.compute.amazonaws.com;

# Self-signed certificate
ssl_certificate /etc/ssl/certs/selfsigned.crt;
ssl_certificate_key /etc/ssl/private/selfsigned.key;

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5';
ssl_prefer_server_ciphers on;

location /git/ {
proxy_pass http://127.0.0.1:3000/;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
proxy_redirect off;
}
}
EOF

# Enable the Nginx configuration
echo "Enabling Nginx configuration..."
sudo ln -s /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled/

# Test Nginx configuration
echo "Testing Nginx configuration..."
sudo nginx -t

# Restart Nginx to apply changes
echo "Restarting Nginx..."
sudo systemctl restart nginx

# Final message
echo "Nginx with self-signed SSL is installed and configured. Your site should now be accessible over HTTPS at https://ec2-13-201-225-130.ap-south-1.compute.amazonaws.com/git"

+ 6
- 0
sslss.lin.sh View File

@@ -0,0 +1,6 @@
# Create directory to store SSL certificates
sudo mkdir -p /etc/ssl/certs
sudo mkdir -p /etc/ssl/private

# Generate the private key and certificate
sudo openssl req -x509 -newkey rsa:4096 -keyout /etc/ssl/private/selfsigned.key -out /etc/ssl/certs/selfsigned.crt -days 365 -nodes

Loading…
Cancel
Save