- Server rented (Pardaz, Rayanserver, etc.)
- Domain registered (yourdomain.ir)
- SSH access to server
- Project in git repo
# 1. Generate JWT secret
node -e "console.log(require('crypto').randomBytes(48).toString('hex'))"
# Copy the output
# 2. Copy environment template
cp .env.docker .env.prod
# 3. Edit and save values
nano .env.prod
# Paste JWT_SECRET, set MONGO_ROOT_PASSWORD, DOMAIN# 1. SSH in
ssh user@your-server-ip
# 2. Install Docker (2 mins)
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
exit
ssh user@your-server-ip
# 3. Clone project
cd /opt
git clone https://github.com/your-repo/bodybuilding.git
cd bodybuilding
# 4. Copy .env.prod from your computer
scp ~/.env.prod user@your-server-ip:/opt/bodybuilding/
# 5. Create SSL folder
mkdir -p ssl
# 6. Get SSL certificate (3 mins)
sudo apt install certbot -y
sudo certbot certonly --standalone -d yourdomain.ir
# 7. Copy certs
sudo cp /etc/letsencrypt/live/yourdomain.ir/fullchain.pem ssl/cert.pem
sudo cp /etc/letsencrypt/live/yourdomain.ir/privkey.pem ssl/key.pem
sudo chown $USER:$USER ssl/*.pem
# 8. Deploy! (5 mins)
chmod +x deploy-docker.sh
./deploy-docker.sh# Check all services up
docker-compose -f docker-compose.prod.yml ps
# View logs
docker-compose -f docker-compose.prod.yml logs app
# Test in browser
# Go to: https://yourdomain.ircd /opt/bodybuilding
git pull
./deploy-docker.shDone! 馃帀
Issues? Check DOCKER_DEPLOYMENT.md troubleshooting section.