Create production installation guide
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Pierre HUBERT 2024-10-18 20:41:08 +02:00
parent c789056ccf
commit fdfbdf093f

View File

@ -45,4 +45,81 @@ The OTA update is then located in `build/main.bin`
* DHCP configured on the network
## Configure server
TODO
### Create a user dedicated to the central
```bash
sudo adduser --disabled-login central
```
### Install binary
You can use `scp` to copy the binary to the target server:
```bash
scp central_backend/target/release/central_backend pierre@central:/home/pierre
```
Then the executable must be installed system-wide:
```bash
sudo mv central_backend /usr/local/bin/
```
### Create configuration file
Create a configuration file in `/home/central/config.yaml`:
```bash
sudo touch /home/central/config.yaml
sudo chown central:central /home/central/config.yaml
sudo chmod 400 /home/central/config.yaml
sudo nano /home/central/config.yaml
```
Sample configuration:
```conf
SECRET=RANDOM_VALUE
COOKIE_SECURE=true
LISTEN_ADDRESS=0.0.0.0:443
ADMIN_USERNAME=admin
ADMIN_PASSWORD=FIXME
HOSTNAME=central
STORAGE=/home/central/storage
FRONIUS_ORIG=http://10.0.0.10
```
### Test configuration
Run the following command to check if the configuration is working:
```bash
sudo -u central central_backend -c /home/central/config.yaml
```
### Create systemd unit file
Once you confirmed the configuration is working, you can configure a system service, in `/etc/systemd/system/central.service`:
```conf
[Unit]
Description=Central backend server
After=syslog.target
After=network.target
[Service]
RestartSec=2s
Type=simple
User=central
Group=central
WorkingDirectory=/home/central
ExecStart=/usr/local/bin/central_backend -c /home/central/config.yaml
Restart=always
Environment=USER=central
HOME=/home/central
[Install]
WantedBy=multi-user.target
```
Enable & start service:
```bash
sudo systemctl enable central
sudo systemctl start central
```