From ccee0b7202da64a6acb0cb6dcfec226f1c9dfeb6 Mon Sep 17 00:00:00 2001 From: Vadym Samoilenko Date: Wed, 11 Mar 2026 21:31:26 +0000 Subject: [PATCH] Update deployment to use vadym.samoilenko user Changed deployment user from www-data to vadym.samoilenko across all configuration files. Added permission checks and automatic chmod/chown in deploy script. Changes: - deploy.sh: Check user exists, set ownership to vadym.samoilenko, add chmod - systemd service: Run as vadym.samoilenko - DEPLOY.md: Updated all references to vadym.samoilenko - .env.example: Updated default user Co-Authored-By: Claude Opus 4.6 --- .env.example | 4 ++-- DEPLOY.md | 16 ++++++++-------- deploy.sh | 20 +++++++++++++++++--- systemd/hm-ems.service | 4 ++-- 4 files changed, 29 insertions(+), 15 deletions(-) diff --git a/.env.example b/.env.example index bbd5e53..d711050 100644 --- a/.env.example +++ b/.env.example @@ -10,8 +10,8 @@ PORT=5000 WORKERS=4 # Deployment paths -DEPLOY_USER=www-data -DEPLOY_GROUP=www-data +DEPLOY_USER=vadym.samoilenko +DEPLOY_GROUP=vadym.samoilenko WEB_DIR=/var/www/html/hm-ems-report APP_DIR=/opt/hm_ems_report DATA_DIR=/opt/hm-ems-data diff --git a/DEPLOY.md b/DEPLOY.md index f9a432c..156f635 100644 --- a/DEPLOY.md +++ b/DEPLOY.md @@ -40,9 +40,9 @@ sudo mkdir -p /opt/hm-ems-data/backups sudo mkdir -p /var/www/html/hm-ems-report sudo mkdir -p /var/log/hm-ems -sudo chown -R www-data:www-data /opt/hm-ems-data -sudo chown -R www-data:www-data /var/www/html/hm-ems-report -sudo chown -R www-data:www-data /var/log/hm-ems +sudo chown -R vadym.samoilenko:vadym.samoilenko /opt/hm-ems-data +sudo chown -R vadym.samoilenko:vadym.samoilenko /var/www/html/hm-ems-report +sudo chown -R vadym.samoilenko:vadym.samoilenko /var/log/hm-ems ``` ### 3. Upload Campaign Data @@ -52,11 +52,11 @@ Upload your campaign JSON files and images: ```bash # Example: Copy JSON files sudo cp *.json /opt/hm-ems-data/Master_Json/ -sudo chown www-data:www-data /opt/hm-ems-data/Master_Json/*.json +sudo chown vadym.samoilenko:vadym.samoilenko /opt/hm-ems-data/Master_Json/*.json # Example: Copy campaign images sudo cp -r campaign_images/* /opt/hm-ems-data/campaign_images/ -sudo chown -R www-data:www-data /opt/hm-ems-data/campaign_images/ +sudo chown -R vadym.samoilenko:vadym.samoilenko /opt/hm-ems-data/campaign_images/ ``` Expected structure: @@ -178,14 +178,14 @@ sudo systemctl start hm-ems 1. Upload JSON file to `/opt/hm-ems-data/Master_Json/`: ```bash sudo cp new_campaign.json /opt/hm-ems-data/Master_Json/ - sudo chown www-data:www-data /opt/hm-ems-data/Master_Json/new_campaign.json + sudo chown vadym.samoilenko:vadym.samoilenko /opt/hm-ems-data/Master_Json/new_campaign.json ``` 2. Upload campaign images to `/opt/hm-ems-data/campaign_images/{year}/{campaign}/Automation_LR/`: ```bash sudo mkdir -p /opt/hm-ems-data/campaign_images/2026/3045A/Automation_LR sudo cp images/*.jpg /opt/hm-ems-data/campaign_images/2026/3045A/Automation_LR/ - sudo chown -R www-data:www-data /opt/hm-ems-data/campaign_images/2026/ + sudo chown -R vadym.samoilenko:vadym.samoilenko /opt/hm-ems-data/campaign_images/2026/ ``` 3. Refresh the web page - new campaign appears in dropdown @@ -222,7 +222,7 @@ ls -la /opt/hm_ems_report/venv/ ### No campaigns in dropdown - Verify JSON files exist: `ls -la /opt/hm-ems-data/Master_Json/` -- Check file permissions (should be readable by www-data) +- Check file permissions (should be readable by vadym.samoilenko) - Check API response: `curl http://localhost:5000/api/files` ## Rollback diff --git a/deploy.sh b/deploy.sh index 1e7058a..da8eaa8 100755 --- a/deploy.sh +++ b/deploy.sh @@ -24,8 +24,8 @@ BACKUP_DIR="${DATA_DIR}/backups" SERVICE_NAME="hm-ems" VENV_DIR="${APP_DIR}/venv" LOG_DIR="/var/log/hm-ems" -USER="www-data" -GROUP="www-data" +USER="vadym.samoilenko" +GROUP="vadym.samoilenko" # Logging functions log_info() { @@ -49,8 +49,15 @@ fi log_info "Starting H&M EMS deployment..." ############################################################################## -# 1. Create necessary directories +# 1. Check user exists and create directories ############################################################################## +log_info "Checking user ${USER}..." + +if ! id "${USER}" &>/dev/null; then + log_error "User ${USER} does not exist. Please create it first or update USER variable in this script." + exit 1 +fi + log_info "Creating directories..." mkdir -p "${DATA_DIR}/Master_Json" @@ -59,9 +66,16 @@ mkdir -p "${BACKUP_DIR}" mkdir -p "${WEB_DIR}" mkdir -p "${LOG_DIR}" +log_info "Setting ownership to ${USER}:${GROUP}..." chown -R ${USER}:${GROUP} "${DATA_DIR}" chown -R ${USER}:${GROUP} "${WEB_DIR}" chown -R ${USER}:${GROUP} "${LOG_DIR}" +chown -R ${USER}:${GROUP} "${APP_DIR}" + +# Set proper permissions +chmod -R 755 "${DATA_DIR}" +chmod -R 755 "${WEB_DIR}" +chmod -R 755 "${APP_DIR}" ############################################################################## # 2. Backup existing data diff --git a/systemd/hm-ems.service b/systemd/hm-ems.service index e1f2755..c2f614c 100644 --- a/systemd/hm-ems.service +++ b/systemd/hm-ems.service @@ -4,8 +4,8 @@ After=network.target [Service] Type=exec -User=www-data -Group=www-data +User=vadym.samoilenko +Group=vadym.samoilenko WorkingDirectory=/opt/hm_ems_report Environment="PATH=/opt/hm_ems_report/venv/bin" Environment="MASTER_JSON_DIR=/opt/hm-ems-data/Master_Json"