blk_file_python/DEPLOYMENT.md
2025-05-07 20:02:10 +05:30

3.9 KiB

Deployment Guide

This guide explains how to deploy the SSHFileToCbs Python application in a production environment.

Prerequisites

  • Python 3.6 or higher
  • pip for package installation
  • Access to a Linux server (Ubuntu/Debian or CentOS/RHEL instructions provided)

Installation Steps

1. Clone or Copy the Application

Clone the repository or copy the application files to the deployment server:

# Optional: create a directory for the application
mkdir -p /opt/ssh-file-to-cbs
# Copy application files
cp -R /path/to/SSHFileToCbs_PYTHON/* /opt/ssh-file-to-cbs/
cd /opt/ssh-file-to-cbs

2. Install Required Packages

Install the required Python packages:

pip3 install -r requirements.txt
# Or install as a package
pip3 install -e .

3. Configure the Application

Edit the configuration file to match your environment:

cp config/config.ini config/config.production.ini
# Edit the configuration file
nano config/config.production.ini

Update the following settings:

  • Server connection details
  • Local and remote file paths
  • Transfer protocol and other application settings

4. Set Up as a System Service

For reliable operation, set up the application as a system service:

For systemd-based systems (Ubuntu, Debian, CentOS 7+, RHEL 7+):

# Copy the service file
sudo cp ssh-file-to-cbs.service /etc/systemd/system/

# Edit the service file if necessary to update paths
sudo nano /etc/systemd/system/ssh-file-to-cbs.service

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

# Enable the service to start on boot
sudo systemctl enable ssh-file-to-cbs.service

# Start the service
sudo systemctl start ssh-file-to-cbs.service

# Check the status
sudo systemctl status ssh-file-to-cbs.service

5. Set Up Log Rotation

Although the application has built-in log rotation, it's a good practice to set up system-level log rotation as well:

sudo nano /etc/logrotate.d/ssh-file-to-cbs

Add the following content:

/opt/ssh-file-to-cbs/logs/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 0640 user group
    sharedscripts
    postrotate
        systemctl restart ssh-file-to-cbs.service >/dev/null 2>&1 || true
    endscript
}

Replace user and group with the appropriate values for your system.

6. Verify Installation

Check if the application is running correctly:

# Check service status
sudo systemctl status ssh-file-to-cbs.service

# Check logs
tail -f /opt/ssh-file-to-cbs/logs/SSHFileToCbs_YYYYMMDD.log

Troubleshooting

Service Won't Start

Check the logs for errors:

sudo journalctl -u ssh-file-to-cbs.service -n 50

Connection Issues

Verify network connectivity and credentials:

# Test SSH connectivity
ssh -p <port> <username>@<host>

# Test network connectivity
ping <host>
telnet <host> <port>

Permission Issues

Ensure the application has proper permissions to read/write files:

# Check directory permissions
ls -la /path/to/local/files/
ls -la /path/to/archive/

# Change ownership if needed
sudo chown -R user:group /path/to/directory/

Monitoring

The application has built-in monitoring, but you can also set up external monitoring:

Check Application Logs

tail -f /opt/ssh-file-to-cbs/logs/SSHFileToCbs_*.log

Set Up Monitoring Alerts

Consider setting up monitoring with tools like Prometheus, Nagios, or a simple cron job that checks the logs for errors:

# Example cron job to check logs for errors
*/10 * * * * grep -i "error" /opt/ssh-file-to-cbs/logs/SSHFileToCbs_$(date +\%Y\%m\%d).log >/dev/null && echo "Errors found in SSH File to CBS logs" | mail -s "SSH File to CBS Error" admin@example.com