# Server

| Method | Path | What it does | Permission | Sudo | Approval |
|---|---|---|---|---|---|
| GET | `/api/server/capabilities` | Get Capabilities | `server.read` |  |  |
| GET | `/api/server/clock/timezones` | List Timezones | `server.read` |  |  |
| GET | `/api/server/identity` | Get Identity | `server.read` |  |  |
| PUT | `/api/server/identity/hostname` | Change Hostname | `server.manage` | yes |  |
| GET | `/api/server/logs` | Read Journal | `secrets.reveal` |  |  |
| GET | `/api/server/logs/boots` | List Boots | `server.read` |  |  |
| GET | `/api/server/logs/context` | Journal Context | `secrets.reveal` |  |  |
| GET | `/api/server/logs/search` | Search Journal | `secrets.reveal` |  |  |
| GET | `/api/server/logs/units` | List Journal Units | `server.read` |  |  |
| GET | `/api/server/migration/check` | Check Migration | `server.read` |  |  |
| GET | `/api/server/migration/plan` | Plan Migration | `server.read` |  |  |
| POST | `/api/server/migration/prepare` | Prepare Migration | `backups.manage` | yes |  |
| GET | `/api/server/power` | Get Power | `server.read` |  |  |
| POST | `/api/server/power/reboot` | Schedule Reboot | `server.manage` | yes |  |
| DELETE | `/api/server/power/scheduled` | Cancel Scheduled | `server.manage` |  |  |
| POST | `/api/server/power/shutdown` | Schedule Shutdown | `server.host_access` | yes |  |
| GET | `/api/server/processes` | Get Processes | `server.read` |  |  |
| POST | `/api/server/restore` | Restore | `backups.manage` | yes |  |
| GET | `/api/server/restore/plan` | Plan Restore | `server.read` |  |  |
| GET | `/api/server/security` | Get Overview | `server.read` |  |  |
| GET | `/api/server/security/changes` | Get Changes | `server.read` |  |  |
| POST | `/api/server/security/changes/{change_id}/confirm` | Confirm Change | `server.host_access` | yes |  |
| POST | `/api/server/security/changes/{change_id}/revert` | Revert Change | `server.host_access` | yes |  |
| GET | `/api/server/security/checks` | Get Checks | `server.read` |  |  |
| POST | `/api/server/security/checks/refresh` | Refresh Checks | `server.read` |  |  |
| POST | `/api/server/security/checks/{check_id}/fix` | Fix Check | `server.host_access` | yes |  |
| GET | `/api/server/security/fail2ban` | Get Fail2Ban | `server.read` |  |  |
| POST | `/api/server/security/fail2ban/install` | Install Fail2Ban | `server.manage` | yes |  |
| POST | `/api/server/security/fail2ban/unban` | Unban Address | `server.manage` | yes |  |
| POST | `/api/server/security/fail2ban/web` | Watch Nginx | `server.manage` | yes |  |
| GET | `/api/server/security/firewall` | Get Firewall | `server.read` |  |  |
| POST | `/api/server/security/firewall/disable` | Disable Firewall | `server.host_access` | yes |  |
| POST | `/api/server/security/firewall/enable` | Enable Firewall | `server.host_access` | yes |  |
| POST | `/api/server/security/firewall/rules` | Add Firewall Rule | `server.host_access` | yes |  |
| DELETE | `/api/server/security/firewall/rules/{rule_id}` | Delete Firewall Rule | `server.host_access` | yes |  |
| GET | `/api/server/security/risks` | Get Risks | `server.read` |  |  |
| PUT | `/api/server/security/risks/{check_id}` | Accept Risk | `security.manage` | yes |  |
| DELETE | `/api/server/security/risks/{check_id}` | Revoke Risk | `security.manage` | yes |  |
| GET | `/api/server/security/ssh` | Get Ssh | `server.read` |  |  |
| GET | `/api/server/security/ssh/fixes/{fix}` | Get Ssh Fix | `server.read` |  |  |
| POST | `/api/server/security/ssh/fixes/{fix}` | Apply Ssh Fix | `server.host_access` | yes |  |
| GET | `/api/server/security/ssh/keys` | Get Ssh Keys | `server.read` |  |  |
| POST | `/api/server/security/ssh/keys` | Add Ssh Key | `server.host_access` | yes |  |
| POST | `/api/server/security/ssh/keys/remove` | Remove Ssh Key | `server.host_access` | yes |  |
| GET | `/api/server/storage` | Get Storage | `server.read` |  |  |
| POST | `/api/server/storage/analyze` | Analyze Storage | `server.read` |  |  |
| GET | `/api/server/storage/analyze/latest` | Get Last Analysis | `server.read` |  |  |
| POST | `/api/server/storage/cleanup` | Cleanup Storage | `server.manage` | yes |  |
| GET | `/api/server/storage/cleanup/plan` | Plan Cleanup | `server.read` |  |  |
| GET | `/api/server/storage/docker/images` | List Unused Images | `server.read` |  |  |
| GET | `/api/server/storage/history` | Get Cleanup History | `server.read` |  |  |
| GET | `/api/server/storage/schedule` | Get Cleanup Schedule | `server.read` |  |  |
| PUT | `/api/server/storage/schedule` | Set Cleanup Schedule | `server.manage` | yes |  |
| POST | `/api/server/storage/schedule/run` | Run Cleanup Schedule | `server.manage` | yes |  |
| GET | `/api/server/summary` | Get Summary | `server.read` |  |  |
| GET | `/api/server/swap` | Get Swap | `server.read` |  |  |
| POST | `/api/server/swap` | Create Swap | `server.manage` | yes |  |
| DELETE | `/api/server/swap` | Remove Swap | `server.manage` | yes |  |
| PUT | `/api/server/swap/swappiness` | Set Swappiness | `server.manage` | yes |  |
| GET | `/api/server/time` | Get Time | `server.read` |  |  |
| PUT | `/api/server/time` | Change Time | `server.manage` | yes |  |
| GET | `/api/server/updates` | List Updates | `server.read` |  |  |
| POST | `/api/server/updates/apply` | Apply Updates | `server.manage` | yes |  |
| GET | `/api/server/updates/auto` | Get Auto Updates | `server.read` |  |  |
| PUT | `/api/server/updates/auto` | Set Auto Updates | `server.manage` | yes |  |
| GET | `/api/server/updates/plan` | Plan Updates | `server.read` |  |  |
| POST | `/api/server/updates/refresh` | Refresh Updates | `server.manage` | yes |  |
| POST | `/api/server/updates/repair` | Repair Updates | `server.manage` | yes |  |
| GET | `/api/server/updates/restarts` | Plan Restarts | `server.read` |  |  |
| POST | `/api/server/updates/restarts` | Restart Outdated Services | `server.manage` | yes |  |
| GET | `/api/server/updates/runs` | List Runs | `server.read` |  |  |
| GET | `/api/server/updates/runs/{update_id}` | Get Run | `server.read` |  |  |

