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 <noreply@anthropic.com>
This commit is contained in:
Vadym Samoilenko 2026-03-11 21:31:26 +00:00
parent 14d67b5f2b
commit ccee0b7202
4 changed files with 29 additions and 15 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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"