diff --git a/README.md b/README.md index 6b8c173..a48960c 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,15 @@ ProxmoxAAS API provides functionality to the Client by both providing a proxy API for the Proxmox API, and an API for requesting resources within a defined quota. ## Prerequisites +- (ProxmoxAAS-Client)[https://github.com/tronnet-gh/ProxmoxAAS-Client]\ - Proxmox VE Cluster (v7.0+) -- (ProxmoxAAS-Client)[https://github.com/tronnet-gh/ProxmoxAAS-Client] +- Reverse proxy server which can proxy the client and API + - FQDN - Server with NodeJS and NPM installed ## Configuring API Token and Permissions -In the proxmox web ui, follow the following steps: -1. Add a new user `proxmoxaas-api` to proxmox +In Proxmox VE, follow the following steps: +1. Add a new user `proxmoxaas-api` to Proxmox VE 2. Create a new API token for the user `proxmoxaas-api` and copy the secret key to a safe location 3. Create a new role `proxmoxaas-api` with at least the following permissions: - VM.* except VM.Audit, VM.Backup, VM.Clone, VM.Console, VM.Monitor, VM.PowerMgmt, VM.Snapshot, VM.Snapshot.Rollback @@ -21,11 +23,27 @@ In the proxmox web ui, follow the following steps: 1. Clone this repo onto `Client Host` 2. Run `npm install` to initiaze the package requirements 3. Copy `vars.js.template` as `vars.js` and modify the following values: - - pveAPI - the URI to the Proxmox API, ie `pve./api2/json` - - domain - your domain name + - pveAPI - the URI to the Proxmox API, ie `:8006/api2/json` or `/api2/json` if Proxmox VE is behind a reverse proxy. + - domain - the ProxmoxAAS-Client URL, ie `client.` - listenPort - the port you want the API to listen on, ie `8080` - pveAPIToken - the user(name), authentication realm, token id, and token secrey key (uuid) 4. Start the service using `node .`, or call the provided shell script, or use the provided systemctl service script +## Installation - Reverse Proxy +1. Configure nginx or preferred reverse proxy to reverse proxy the client. This can be done in the same file previously or in a new configuration file: +``` +server { + listen 443 ssl; + server_name client.; + location / { + proxy_pass http://:80; + } + location /api/ { + proxy_pass http://:8080; + } +} +``` +2. Start nginx with the new configurations by running `systemctl reload nginx` + ## Result After these steps, the ProxmoxAAS Client should be avaliable and fully functional at `client.`.