updated readme
This commit is contained in:
parent
1f64806538
commit
a702d4b776
114
README.md
114
README.md
@ -1,59 +1,111 @@
|
|||||||
# Server Manager Kubernetes Operator
|
# Server Manager Kubernetes Operator
|
||||||
|
|
||||||
Implements Server Manager capabilities (including web-ui/auth) in kubernetes
|
This is the code for the back-end used in [ServerManager](https://games.acooldomain.co).
|
||||||
|
|
||||||
## Config Example
|
The server-manager is designed with modularity in mind and is built from a few major parts.
|
||||||
|
|
||||||
|
1. Users
|
||||||
|
2. Servers Metadata
|
||||||
|
3. Servers Authorization Data
|
||||||
|
4. Instance Manager
|
||||||
|
|
||||||
|
The backend interfaces with these parts separately however it will share connections where possible to reduce duplicate connections.
|
||||||
|
|
||||||
|
# Modules
|
||||||
|
|
||||||
|
## User Management
|
||||||
|
|
||||||
|
The User management module has several responsibilities and should be split into modules in the future.
|
||||||
|
|
||||||
|
* Fetch and save data about existing users
|
||||||
|
* Global Permissions
|
||||||
|
* Nickname
|
||||||
|
* Contact Email
|
||||||
|
|
||||||
|
* Authenticate a user
|
||||||
|
|
||||||
|
Currently the User Management is only implemented with MongoDB as the underlying database
|
||||||
|
|
||||||
|
## Servers Metadata
|
||||||
|
|
||||||
|
The Servers Metadata holds data about existing servers such as:
|
||||||
|
|
||||||
|
* Default command to run when ran without arguments
|
||||||
|
* Default ports to open in case no ports are opened
|
||||||
|
* Server nickname
|
||||||
|
* Data on the image the server uses
|
||||||
|
|
||||||
|
Currently only implemented with MongoDB
|
||||||
|
|
||||||
|
## Servers Authorization
|
||||||
|
|
||||||
|
The Servers Authorization Module is responsible for server-specific permissions.
|
||||||
|
|
||||||
|
Currently only implemented with MongoDB
|
||||||
|
|
||||||
|
## Instance Manager
|
||||||
|
|
||||||
|
The Instance Manager is responsible for running the servers, and supplying interactive shell to the console of the server.
|
||||||
|
|
||||||
|
Currently implemented in Docker, and Kubernetes (using the [ServerManager Operator](https://git.acooldomain.co/server-manager/kubernetes-operator))
|
||||||
|
|
||||||
|
## Configuration Example
|
||||||
|
|
||||||
### Yaml Config format
|
### Yaml Config format
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
email:
|
domain: "games.acooldomain.co"
|
||||||
from_email: ""
|
|
||||||
username: ""
|
|
||||||
password: ""
|
|
||||||
server: ""
|
|
||||||
|
|
||||||
domain: ""
|
|
||||||
|
|
||||||
signing:
|
signing:
|
||||||
key: ""
|
key: ""
|
||||||
algorithm: "HS512"
|
algorithm: "HS512"
|
||||||
|
|
||||||
|
email:
|
||||||
|
from_email: "no-reply@acooldomain.co"
|
||||||
|
username: "no-reply@acooldomain.co"
|
||||||
|
password: ""
|
||||||
|
server: "mail.acooldomain.co"
|
||||||
|
|
||||||
authentication:
|
authentication:
|
||||||
type: "OIDC" # OIDC or UserPass
|
type: "UserPass"
|
||||||
oidc:
|
oidc: # can be omitted
|
||||||
issuer_url: ""
|
issuer_url: ""
|
||||||
client_id: ""
|
client_id: ""
|
||||||
client_secret: ""
|
client_secret: ""
|
||||||
user_pass:
|
user_pass:
|
||||||
type: "mongo"
|
type: "mongo"
|
||||||
|
initial_user:
|
||||||
|
email: "acoolname@acooldomain.co"
|
||||||
mongo:
|
mongo:
|
||||||
url: ""
|
url: "mongodb://server-manager-mongo:27017"
|
||||||
username: ""
|
username: ""
|
||||||
password: ""
|
password: ""
|
||||||
database: ""
|
database: "users_db"
|
||||||
collection: ""
|
collection: "user_data"
|
||||||
invite_token_database:
|
invite_token_database:
|
||||||
type: "mongo"
|
type: "mongo"
|
||||||
mongo:
|
mongo:
|
||||||
url: ""
|
url: "mongodb://server-manager-mongo:27017"
|
||||||
username: ""
|
username: ""
|
||||||
password: ""
|
password: ""
|
||||||
database: ""
|
database: "users_db"
|
||||||
collection: ""
|
collection: "invite_tokens"
|
||||||
|
|
||||||
instancemanager:
|
instancemanager:
|
||||||
type: "docker" # or kubernetes
|
type: "kubernetes"
|
||||||
docker:
|
kubernetes:
|
||||||
games_domain: ""
|
namespace: server-manager
|
||||||
browsers_domain: ""
|
docker: # can be omitted
|
||||||
certificate_resolver: ""
|
|
||||||
file_browser:
|
file_browser:
|
||||||
image:
|
image:
|
||||||
registry: ""
|
registry: "filebrowser/filebrowser"
|
||||||
tag: ""
|
tag: "latest"
|
||||||
command: ""
|
command: ""
|
||||||
network: ""
|
network: "exposed"
|
||||||
|
reverse_proxy:
|
||||||
|
middlewares:
|
||||||
|
- backend-auth@docker
|
||||||
|
entrypoint: "web"
|
||||||
|
|
||||||
users:
|
users:
|
||||||
default_max_owned_servers: 10
|
default_max_owned_servers: 10
|
||||||
@ -61,18 +113,18 @@ users:
|
|||||||
servers_database:
|
servers_database:
|
||||||
type: "mongo"
|
type: "mongo"
|
||||||
mongo:
|
mongo:
|
||||||
url: ""
|
url: "mongodb://server-manager-mongo:27017"
|
||||||
username: ""
|
username: ""
|
||||||
password: ""
|
password: ""
|
||||||
database: ""
|
database: "server_db"
|
||||||
collection: ""
|
collection: "servers"
|
||||||
|
|
||||||
servers_authorization_database:
|
servers_authorization_database:
|
||||||
type: "mongo"
|
type: "mongo"
|
||||||
mongo:
|
mongo:
|
||||||
url: ""
|
url: "mongodb://server-manager-mongo:27017"
|
||||||
username: ""
|
username: ""
|
||||||
password: ""
|
password: ""
|
||||||
database: ""
|
database: "server_db"
|
||||||
collection: ""
|
collection: "auth_data"
|
||||||
```
|
```
|
||||||
|
Loading…
x
Reference in New Issue
Block a user