Create production installation guide
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				continuous-integration/drone/push Build is passing
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	continuous-integration/drone/push Build is passing
				
			This commit is contained in:
		@@ -45,4 +45,81 @@ The OTA update is then located in `build/main.bin`
 | 
				
			|||||||
* DHCP configured on the network
 | 
					* DHCP configured on the network
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Configure server
 | 
					## 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
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
		Reference in New Issue
	
	Block a user