chore: add deploy config with systemd services for auto-start on boot
- frappe-bench-web, worker, schedule, socketio, watch services - frappe-bench.target to group all services - bench-env.sh wrapper for proper PATH resolution - deploy README with installation/management instructions
This commit is contained in:
parent
0b0cf7e4a2
commit
759fac5a67
8 changed files with 154 additions and 0 deletions
44
deploy/README.md
Normal file
44
deploy/README.md
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
# Deployment Configuration
|
||||
|
||||
## Systemd Services
|
||||
|
||||
The Frappe Bench (ERPNext) is managed via systemd for automatic startup on boot.
|
||||
|
||||
### Services
|
||||
|
||||
| Service | Description | Port |
|
||||
|---------|-------------|------|
|
||||
| `frappe-bench-web.service` | Web server (gunicorn) | 8000 |
|
||||
| `frappe-bench-worker.service` | Background async worker | - |
|
||||
| `frappe-bench-schedule.service` | Scheduled job runner | - |
|
||||
| `frappe-bench-socketio.service` | Realtime WebSocket server | 9000 |
|
||||
| `frappe-bench-watch.service` | File watcher (dev/assets) | - |
|
||||
|
||||
### Management
|
||||
|
||||
```bash
|
||||
# View status of all services
|
||||
systemctl status frappe-bench-web.service
|
||||
|
||||
# Start/Stop all services
|
||||
systemctl start frappe-bench.target
|
||||
systemctl stop frappe-bench.target
|
||||
|
||||
# View logs
|
||||
journalctl -u frappe-bench-web.service -f
|
||||
journalctl -u frappe-bench-worker.service -f
|
||||
```
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
sudo cp deploy/frappe-bench-*.service deploy/frappe-bench.target /etc/systemd/system/
|
||||
sudo cp deploy/bench-env.sh /opt/erpnext/frappe-bench/bench-env.sh
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable frappe-bench.target
|
||||
sudo systemctl start frappe-bench.target
|
||||
```
|
||||
|
||||
### Credentials
|
||||
|
||||
Admin credentials are stored in `/root/erpnext-admin-credentials.txt`.
|
||||
6
deploy/bench-env.sh
Executable file
6
deploy/bench-env.sh
Executable file
|
|
@ -0,0 +1,6 @@
|
|||
#!/bin/bash
|
||||
# Environment wrapper for Frappe bench services
|
||||
export PATH="/opt/erpnext/home/.local/share/pipx/venvs/frappe-bench/bin:/opt/erpnext/frappe-bench/env/bin:$PATH"
|
||||
export HOME="/opt/erpnext/home"
|
||||
cd /opt/erpnext/frappe-bench
|
||||
exec "$@"
|
||||
19
deploy/frappe-bench-schedule.service
Normal file
19
deploy/frappe-bench-schedule.service
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
[Unit]
|
||||
Description=Frappe Bench Scheduler
|
||||
Documentation=https://frappeframework.com
|
||||
After=network.target redis-server.service
|
||||
Requires=redis-server.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=erpnext
|
||||
Group=erpnext
|
||||
WorkingDirectory=/opt/erpnext/frappe-bench
|
||||
ExecStart=/opt/erpnext/frappe-bench/bench-env.sh bench schedule
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
StandardOutput=append:/opt/erpnext/frappe-bench/logs/schedule.log
|
||||
StandardError=append:/opt/erpnext/frappe-bench/logs/schedule.error.log
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
19
deploy/frappe-bench-socketio.service
Normal file
19
deploy/frappe-bench-socketio.service
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
[Unit]
|
||||
Description=Frappe Bench SocketIO (Realtime)
|
||||
Documentation=https://frappeframework.com
|
||||
After=network.target redis-server.service
|
||||
Requires=redis-server.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=erpnext
|
||||
Group=erpnext
|
||||
WorkingDirectory=/opt/erpnext/frappe-bench
|
||||
ExecStart=/opt/erpnext/frappe-bench/bench-env.sh bench socketio
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
StandardOutput=append:/opt/erpnext/frappe-bench/logs/socketio.log
|
||||
StandardError=append:/opt/erpnext/frappe-bench/logs/socketio.error.log
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
19
deploy/frappe-bench-watch.service
Normal file
19
deploy/frappe-bench-watch.service
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
[Unit]
|
||||
Description=Frappe Bench File Watcher (Development)
|
||||
Documentation=https://frappeframework.com
|
||||
After=network.target
|
||||
PartOf=frappe-bench-web.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=erpnext
|
||||
Group=erpnext
|
||||
WorkingDirectory=/opt/erpnext/frappe-bench
|
||||
ExecStart=/opt/erpnext/frappe-bench/bench-env.sh bench watch
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
StandardOutput=append:/opt/erpnext/frappe-bench/logs/watch.log
|
||||
StandardError=append:/opt/erpnext/frappe-bench/logs/watch.error.log
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
19
deploy/frappe-bench-web.service
Normal file
19
deploy/frappe-bench-web.service
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
[Unit]
|
||||
Description=Frappe Bench Web Server (ERPNext)
|
||||
Documentation=https://frappeframework.com
|
||||
After=network.target redis-server.service
|
||||
Requires=redis-server.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=erpnext
|
||||
Group=erpnext
|
||||
WorkingDirectory=/opt/erpnext/frappe-bench
|
||||
ExecStart=/opt/erpnext/frappe-bench/bench-env.sh bench serve --port 8000
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
StandardOutput=append:/opt/erpnext/frappe-bench/logs/web.log
|
||||
StandardError=append:/opt/erpnext/frappe-bench/logs/web.error.log
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
19
deploy/frappe-bench-worker.service
Normal file
19
deploy/frappe-bench-worker.service
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
[Unit]
|
||||
Description=Frappe Bench Background Worker
|
||||
Documentation=https://frappeframework.com
|
||||
After=network.target redis-server.service
|
||||
Requires=redis-server.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=erpnext
|
||||
Group=erpnext
|
||||
WorkingDirectory=/opt/erpnext/frappe-bench
|
||||
ExecStart=/opt/erpnext/frappe-bench/bench-env.sh bench worker
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
StandardOutput=append:/opt/erpnext/frappe-bench/logs/worker.log
|
||||
StandardError=append:/opt/erpnext/frappe-bench/logs/worker.error.log
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
9
deploy/frappe-bench.target
Normal file
9
deploy/frappe-bench.target
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
[Unit]
|
||||
Description=Frappe Bench (ERPNext) - All Services
|
||||
Documentation=https://frappeframework.com
|
||||
Requires=redis-server.service
|
||||
After=redis-server.service network.target
|
||||
Wants=frappe-bench-web.service frappe-bench-worker.service frappe-bench-schedule.service frappe-bench-socketio.service frappe-bench-watch.service
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Loading…
Reference in a new issue