Initial commit - Mold Cost Calculator Application (Security Fixed)
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
# Automated Deployment with Podman and rsync
|
||||
|
||||
This document describes how to automatically deploy the `mold_cost_calculator` application using Podman and rsync.
|
||||
|
||||
---
|
||||
|
||||
## 1. Build the Image Locally
|
||||
|
||||
```
|
||||
podman build -t mold_cost_calculator:latest .
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. Save the Image as a Tarball
|
||||
|
||||
```
|
||||
podman save -o mold_cost_calculator.tar mold_cost_calculator:latest
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. Transfer the Image to the Server Using rsync
|
||||
|
||||
Replace `user@server1:/path/to/deploy/dir` with your actual server username and path:
|
||||
|
||||
```
|
||||
rsync -avz mold_cost_calculator.tar user@server1:/path/to/deploy/dir/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. Load the Image on the Server
|
||||
|
||||
SSH into your server and run:
|
||||
|
||||
```
|
||||
podman load -i /path/to/deploy/dir/mold_cost_calculator.tar
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Stop and Remove the Old Container (if running)
|
||||
|
||||
```
|
||||
podman stop mold_cost_calculator || true
|
||||
podman rm mold_cost_calculator || true
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. Run the New Container
|
||||
|
||||
```
|
||||
podman run -d --name mold_cost_calculator -p 5001:5001 --restart=always \
|
||||
-v /path/to/instance:/app/instance \
|
||||
-v /path/to/logs:/app/logs \
|
||||
localhost/mold_cost_calculator:latest
|
||||
```
|
||||
- Adjust volume paths as needed.
|
||||
|
||||
---
|
||||
|
||||
## 7. (Optional) Automate with a Script
|
||||
|
||||
Create a script `deploy.sh`:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# 1. Build image
|
||||
podman build -t mold_cost_calculator:latest .
|
||||
|
||||
# 2. Save image
|
||||
podman save -o mold_cost_calculator.tar mold_cost_calculator:latest
|
||||
|
||||
# 3. Rsync to server
|
||||
rsync -avz mold_cost_calculator.tar user@server1:/path/to/deploy/dir/
|
||||
|
||||
# 4. SSH and deploy on server
|
||||
ssh user@server1 <<'ENDSSH'
|
||||
cd /path/to/deploy/dir/
|
||||
podman load -i mold_cost_calculator.tar
|
||||
podman stop mold_cost_calculator || true
|
||||
podman rm mold_cost_calculator || true
|
||||
podman run -d --name mold_cost_calculator -p 5001:5001 --restart=always \
|
||||
-v /path/to/instance:/app/instance \
|
||||
-v /path/to/logs:/app/logs \
|
||||
localhost/mold_cost_calculator:latest
|
||||
ENDSSH
|
||||
```
|
||||
- Make it executable: `chmod +x deploy.sh`
|
||||
- Update all `/path/to/...` and `user@server1` as needed.
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
- Ensure Podman is installed on both local and server machines.
|
||||
- Adjust volume paths and ports as needed for your environment.
|
||||
- Nginx should be configured to reverse proxy to port 5001 on the server.
|
||||
- For further automation, consider using CI/CD tools.
|
||||
Reference in New Issue
Block a user