Add configuration page
parent
2d594713b5
commit
7f34421c83
113
Configuration.md
Normal file
113
Configuration.md
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
## Settings
|
||||||
|
|
||||||
|
The `settings` block contains settings for the SSH server itself.
|
||||||
|
|
||||||
|
### Fields
|
||||||
|
|
||||||
|
- `ssh_dir` (optional, string): Directory where SSH keys are stored. Default is `~/.ssh`.
|
||||||
|
- `listen_addr` (optional, string): Address on which the SSH server listens. Default is `:2222`.
|
||||||
|
- `debug` (optional, bool): Enables or disables debug logging. Default is `false`.
|
||||||
|
|
||||||
|
### Example
|
||||||
|
```hcl
|
||||||
|
settings {
|
||||||
|
ssh_dir = "/home/user/.ssh"
|
||||||
|
listen_addr = "0.0.0.0:22"
|
||||||
|
debug = true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Route
|
||||||
|
|
||||||
|
The `route` block represents a virtual host configuration.
|
||||||
|
|
||||||
|
### Fields
|
||||||
|
|
||||||
|
- `name` (label, string): The name of the virtual host.
|
||||||
|
- `backend` (string): The backend to use for the route (e.g., `docker`, `serial`).
|
||||||
|
- `match` (string): The regular expression to match for routing. The first capture group in the regular expression will be passed to the backend as the argument. If there's a named capture group with the name `arg`, that will be used as the argument instead. If there are no capture groups, the whole routing path will be used as the argument.
|
||||||
|
- `settings` (object): Additional settings for the backend. These are different for each backend.
|
||||||
|
- `permissions` (optional, object): Permissions map for the route. If this is missing, all users will be allowed to access all resources.
|
||||||
|
|
||||||
|
### Example
|
||||||
|
```hcl
|
||||||
|
route "example" {
|
||||||
|
backend = "docker"
|
||||||
|
match = "docker\\.(.+)"
|
||||||
|
settings = {
|
||||||
|
command = ["/bin/bash"]
|
||||||
|
}
|
||||||
|
permissions = {
|
||||||
|
admins = {
|
||||||
|
allow = ["*"]
|
||||||
|
}
|
||||||
|
group1 = {
|
||||||
|
allow = ["container1", "container2"]
|
||||||
|
deny = ["container3", "admin_container*"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Auth
|
||||||
|
|
||||||
|
The `auth` block contains the authentication settings.
|
||||||
|
|
||||||
|
### Fields
|
||||||
|
|
||||||
|
- [`fail2ban`](#fail2ban) (block): Fail2Ban rate limiter settings.
|
||||||
|
- [`user`](#user) (block, multiple): List of virtual users.
|
||||||
|
|
||||||
|
### Example
|
||||||
|
```hcl
|
||||||
|
auth {
|
||||||
|
fail2ban {
|
||||||
|
limit = "10m"
|
||||||
|
attempts = 5
|
||||||
|
}
|
||||||
|
|
||||||
|
user "user1" {
|
||||||
|
password = "$argon2id..."
|
||||||
|
groups = ["admins"]
|
||||||
|
pubkeys = ["ssh-ed25519 AAA..."]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Fail2Ban
|
||||||
|
|
||||||
|
The `fail2ban` block contains the Fail2Ban rate limiter settings.
|
||||||
|
|
||||||
|
### Fields
|
||||||
|
|
||||||
|
- `limit` (string): Time interval (e.g., `1h2m3s`).
|
||||||
|
- `attempts` (int): Number of allowed attempts before banning.
|
||||||
|
|
||||||
|
### Example
|
||||||
|
```hcl
|
||||||
|
# Allows 5 failed login attempts per 10 minute interval
|
||||||
|
fail2ban {
|
||||||
|
limit = "10m"
|
||||||
|
attempts = 5
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## User
|
||||||
|
|
||||||
|
The `user` block contains the configuration for a virtual user.
|
||||||
|
|
||||||
|
### Fields
|
||||||
|
|
||||||
|
- `name` (label, string): The username.
|
||||||
|
- `password` (optional, string): The argon2id hash of the user's password (can be generated using `seashell --gen-hash`).
|
||||||
|
- `groups` (optional, []string): The groups to which the user belongs.
|
||||||
|
- `pubkeys` (optional, []string): Public keys for the user.
|
||||||
|
|
||||||
|
### Example
|
||||||
|
```hcl
|
||||||
|
user "admin" {
|
||||||
|
password = "$argon2id..."
|
||||||
|
groups = ["admins"]
|
||||||
|
pubkeys = ["ssh-ed25519 AAA..."]
|
||||||
|
}
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user