109 lines
2.6 KiB
Markdown
109 lines
2.6 KiB
Markdown
# Server Folders Agent per JSON
|
|
|
|
## Agent starten
|
|
|
|
Lege `server-folders-agent.json` neben die `server-folders-agent.exe` und starte den Agent ohne weitere Parameter:
|
|
|
|
```powershell
|
|
.\server-folders-agent.exe
|
|
```
|
|
|
|
Beispiel:
|
|
|
|
```json
|
|
{
|
|
"listenAddr": ":8099",
|
|
"storageRoots": [
|
|
{
|
|
"label": "Storage D",
|
|
"path": "D:\\Milestone\\Storage"
|
|
}
|
|
],
|
|
"archiveRoots": [
|
|
{
|
|
"label": "Archive E",
|
|
"path": "E:\\Milestone\\Archive"
|
|
}
|
|
],
|
|
"token": ""
|
|
}
|
|
```
|
|
|
|
Alternativ kann die Config explizit angegeben werden:
|
|
|
|
```powershell
|
|
.\server-folders-agent.exe -config "C:\Milestone\server-folders-agent.json"
|
|
```
|
|
|
|
Oder per ENV:
|
|
|
|
```powershell
|
|
$env:SERVER_FOLDER_AGENT_CONFIG="C:\Milestone\server-folders-agent.json"
|
|
.\server-folders-agent.exe
|
|
```
|
|
|
|
## Token-Handling
|
|
|
|
Der Agent kann ohne initialen Token gestartet werden. Das Backend erzeugt beim Speichern der Milestone-Einstellungen automatisch einen zufälligen Token und überträgt ihn per `PUT /agent-token` an den Agent.
|
|
|
|
Wenn keine `tokenFile` in der JSON gesetzt ist, schreibt der Agent den aktuellen Token direkt ins Feld `token` der JSON-Datei. Damit überlebt der Token einen Neustart und alle Einstellungen liegen in einer Datei.
|
|
|
|
```http
|
|
PUT /agent-token
|
|
X-Server-Folders-Token: <aktueller-token> # nur nötig, wenn bereits ein Token gesetzt ist
|
|
Content-Type: application/json
|
|
|
|
{ "token": "<neuer-token>" }
|
|
```
|
|
|
|
Solange noch kein Token gesetzt ist, akzeptiert der Agent `PUT /agent-token` auch ohne Header. Betreibe den Agent daher in einem vertrauenswürdigen Netzwerk und speichere die Einstellungen nach dem Start zeitnah.
|
|
|
|
Falls du den Token weiterhin getrennt speichern möchtest, kannst du in der JSON `tokenFile` setzen:
|
|
|
|
```json
|
|
{
|
|
"listenAddr": ":8099",
|
|
"storageRoots": [
|
|
{
|
|
"label": "Storage D",
|
|
"path": "D:\\Milestone\\Storage"
|
|
}
|
|
],
|
|
"tokenFile": "C:\\Milestone\\server-folders-agent.token"
|
|
}
|
|
```
|
|
|
|
## Kompatibilität
|
|
|
|
Die bisherigen Parameter und ENV-Variablen funktionieren weiter und überschreiben Werte aus der JSON:
|
|
|
|
```powershell
|
|
.\server-folders-agent.exe -port 8099 -storage-root "Storage D=D:\Milestone\Storage" -archive-root "Archive E=E:\Milestone\Archive"
|
|
```
|
|
|
|
Unterstützte ENV-Variablen:
|
|
|
|
- `SERVER_FOLDER_AGENT_CONFIG`
|
|
- `LISTEN_ADDR`
|
|
- `SERVER_FOLDER_AGENT_PORT`
|
|
- `SERVER_STORAGE_ROOTS`
|
|
- `SERVER_ARCHIVE_ROOTS`
|
|
- `SERVER_FOLDER_ROOTS`
|
|
- `SERVER_FOLDER_AGENT_TOKEN`
|
|
- `SERVER_FOLDER_AGENT_TOKEN_FILE`
|
|
|
|
## Backend-Proxy
|
|
|
|
Der bestehende Frontend-Endpunkt bleibt:
|
|
|
|
```http
|
|
GET /admin/server-folders?path=D:\Milestone
|
|
POST /admin/server-folders
|
|
```
|
|
|
|
Der Proxy gibt den Token als Header an den Agent weiter:
|
|
|
|
```http
|
|
X-Server-Folders-Token: <token>
|
|
```
|