Initial commit

This commit is contained in:
2021-12-19 17:30:51 +01:00
commit a589014106
65 changed files with 7437 additions and 0 deletions

96
man/configure.1 Normal file
View File

@@ -0,0 +1,96 @@
.TH configure 1 "December 13, 2021" configure "configure - manage docker4ssh container from within"
.SH NAME
docker4ssh - docker containers and more via ssh
.SH AUTH GET
This can only be used when calling \fIauth get\fR.
.br
It returns the current username (with which you can login to the container), if a password is set and if the container is reachable for other ssh connections.
.SH AUTH SET
This can only be used when calling \fIauth set\fR.
.TP
\fB--user\fR = user
The container username. It is used if you want to (re)connect to the container.
.TP
\fB--password\fR = password
The container password. If empty, the authentication gets removed.
.SH ERROR
This can only be used when calling \fIerror\fR.
.br
The subcommand only exists for testing purposes and always return a 400 error.
.SH INFO
This can only be used when calling \fIinfo\fR.
.br
It returns info about the container. Currently only the full container id is shown.
.SH PING
This can only be used when calling \fIping\fR.
.br
It returns the ping to the docker4ssh host with a nice little message :)
.SH CONFIG GET
This can only be used when calling \fIconfig get\fR.
.br
It returns the container configuration with the details NetworkMode, Configurable, RunLevel, ExitAfter and KeepOnExit (\fIprofile.conf (5)\fR).
.SH CONFIG SET
This can only be used when calling \fIconfig set\fR.
.TP
\fB--configurable\fI = true | false
If the container should be configurable (calling the binary this manual is about).
Once called this can only be reverted when the database is edited manually.
.TP
\fB--exit-after\fR = exit after
Process name to stop the container after the process ends.
.TP
\fB--keep-on-exit\fR = true | false
If the container should or should not be deleted when it stops working.
.TP
\fB--network-mode\fR = 1 | 2 | 3 | 4 | 5
This describes the behavior of the container's network
Must be one of the following:
1 (Off): Disable networking complete.
2 (Isolate): Isolates the container from the host and the host's network. Therefore, no configurations can be changed from within the container.
3 (Host): Default docker network.
4 (Docker): Same as \fI3\fR but the container is in a docker4ssh controlled subnet. This is useful to differ normal from docker4ssh containers.
5 (None): disables all isolation between the docker container and the host, so inside the network the container can act as the host. So it has access to the host's network directly.
.TP
\fB--run-level\fR = 1 | 2 | 3
This describes the container behavior when the user connection to a container is stopped.
Must be one of the following:
1 (User): The container stops working if no user is connected to it anymore.
2 (Container): The container runs when no user is connected \fIExitAfter\fR is specified.
3 (Forever): The container runs forever.
.SH BUGS
Discovered a bug? Well then it should get fixed as fast as possible. Feel free to open a new issue (https://github.com/ByteDream/crunchyroll-go/docker4ssh) or create a pull request (https://github.com/ByteDream/docker4ssh/pulls) on github.
.SH AUTHOR
Written by ByteDream (https://github.com/ByteDream)
.SH COPYRIGHT
Copyright (C) 2021 ByteDream
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

36
man/docker4ssh.1 Normal file
View File

@@ -0,0 +1,36 @@
.TH docker4ssh 1 "December 13, 2021" docker4ssh "docker4ssh"
.SH NAME
docker4ssh - docker containers and more via ssh
.SH FILES
/etc/docker4ssh/docker4ssh.conf
The configuration file. See \fIdocker4ssh.conf(5)\fR for more information
/etc/docker4ssh/profile/*
Directory containing profiles. See \fIprofile.conf(5)\fR for more information
.SH SEE ALSO
docker4ssh.conf(5), profile.conf(5)
.SH BUGS
Discovered a bug? Well then it should get fixed as fast as possible. Feel free to open a new issue (https://github.com/ByteDream/crunchyroll-go/docker4ssh) or create a pull request (https://github.com/ByteDream/docker4ssh/pulls) on github.
.SH AUTHOR
Written by ByteDream (https://github.com/ByteDream)
.SH COPYRIGHT
Copyright (C) 2021 ByteDream
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

169
man/docker4ssh.conf.5 Normal file
View File

@@ -0,0 +1,169 @@
.TH docker4ssh.conf 5 "December 13, 2021" docker4ssh.conf "docker4ssh configuration file"
.SH SYNOPSIS
.TP
/etc/docker4ssh/docker4ssh.conf
.SH PROFILE
\fBDir\fR = /path/to/directory
.TP
Set the path to the directory where profiles are stored in
.SH PROFILE.DEFAULT
.TP
\fBPassword\fR = password
Default password for every connection.
This is used unless some other password was specified.
The password can be specified as plain text, regex or hash:
Regex: Put \fIregex:\fR in front of it. The regex must must be \fBgo\fR / \fBgolang\fR compatible. Visit \fIregex101.com\fR to validate your regex.
Hash: Put \fIsha1:\fR, \fIsha256:\fR or \fIsha512:\fR in front of it. Note that the hash must be hashed with the prefix algorithm.
.TP
\fBNetworkMode\fR = 1 | 2 | 3 | 4 | 5
Default network mode for every connection.
NetworkMode describes the behavior of the container's network
Must be one of the following:
1 (Off): Disable networking complete.
2 (Isolate): Isolates the container from the host and the host's network. Therefore, no configurations can be changed from within the container.
3 (Host): Default docker network.
4 (Docker): Same as \fI3\fR but the container is in a docker4ssh controlled subnet. This is useful to differ normal from docker4ssh containers.
5 (None): disables all isolation between the docker container and the host, so inside the network the container can act as the host. So it has access to the host's network directly.
.TP
\fBConfigurable\fR = true | false
Default configurable setting for every connection.
Configurable describes if the container should be configurable from within it. This means that the connect user is able to change all settings which are described here.
Must be true or false.
.TP
\fBRunLevel\fR = 1 | 2 | 3
Default run level for every connection.
RunRevel describes the container behavior when the user connection to a container is stopped.
Must be one of the following:
1 (User): The container stops working if no user is connected to it anymore.
2 (Container): The container runs when no user is connected \fIExitAfter\fR is specified.
3 (Forever): The container runs forever.
.br
Note that the container exits always, independent of its RunLevel, when the via \fIExitAfter\fR specified process ends.
.TP
\fBStartupInformation\fR = true | false
Default startup information setting for every connection.
StartupInformation specifies if information about the container (id, network mode, ...) should be shown when a user connects to it.
Must be true or false.
.TP
\fBExitAfter\fR = exit after
Default exit after process for every process.
ExitAfter is a process name after which end the container should stop running.
.TP
\fBKeepOnExit\fR = true | false
Default keep on exit setting for every connection.
KeepOnExit specifies if the container should be saved when it stops working.
Must be true or false.
.SH PROFILE.DYNAMIC
.TP
\fBEnable\fR = true | false
If dynamic container creation should be created.
.TP
\fBPassword\fR = password
See \fIPROFILE.DEFAULT.Password\fR
.TP
\fBNetworkMode\fR = 1 | 2 | 3 | 4 | 5
See \fIPROFILE.DEFAULT.NetworkMode\fR
.TP
\fBConfigurable\fR = true | false
See \fIPROFILE.DEFAULT.Configurable\fR
.TP
\fBRunLevel\fR = 1 | 2 | 3
See \fIPROFILE.DEFAULT.RunLevel\fR
.TP
\fBStartupInformation\fR = true | false
See \fIPROFILE.DEFAULT.StartupInformation\fR
.TP
\fBExitAfter\fR = exit after
See \fIPROFILE.DEFAULT.ExitAfter\fR
.TP
\fBKeepOnExit\fR = true | false
See \fIPROFILE.DEFAULT.KeepOnExit\fR
.SH API
.TP
\fBPort\fR = port
The api port for container clients to communicate with the server.
.TP
\fBConfigureBinary\fR = /path/to/configure/binary
Path to the configure binary which is used inside of containers to communicate with the host and configure itself.
.SH SSH
.TP
\fBPort\fR = port
Port of the ssh server to serve.
.TP
\fBKey\fR = /path/to/ssh/key
Path to the ssh private key for the ssh server.
To generate a new ssh key, use:
>>> ssh-keygen -t ed25519 -b 4096
.TP
\fBPassword\fR = password
Password for the ssh private key.
.SH DATABASE
.TP
\fBSqlite3File\fR = /path/to/sqlite3/file
Path of the database file where all container specific configurations are stored in.
.SH NETWORK
.TP
.SH NETWORK.DEFAULT
.TP
\fBSubnet\fR = subnet.ip
Ip and mask of the subnet which is used for \fINetworkMode 4 (Docker)\fR.
.TP
.SH NETWORK.ISOLATE
.TP
\fBSubnet\fR = subnet.ip
Ip and mask of the subnet which is used for \fINetworkMode 2 (Isolate)\fR.
.TP
.SH LOGGING
.TP
\fBLevel\fR = debug | info | warn | error | fatal
Logging level.
.TP
\fBConsoleOutput\fR = bool
If normal output should be logged to the console.
.TP
\fBConsoleError\fR = bool
If error output should be logged to the console.
.TP
\fBOutputFile\fR = /path/to/output/file
Path to the output file.
.TP
\fBErrorFile\fR = /path/to/error/file
Path to the error file.an
.SH SEE ALSO
docker4ssh(1), profile.conf(5)
.SH AUTHORS
Written by ByteDream (https://github.com/ByteDream)

81
man/profile.conf.5 Normal file
View File

@@ -0,0 +1,81 @@
.TH docker4ssh.conf 5 "December 13, 2021" docker4ssh.conf "docker4ssh configuration file"
.SH SYNOPSIS
.TP
/etc/docker4ssh/profile/*
.SH SECTION NAME
.TP
A representative name for the profile
.SH KEYS
\fBUsername\fR = username
Username for this profile.
The username can be specified as plain text or regex:
Regex: Put \fIregex:\fR in front of it. The regex must must be \fBgo\fR / \fBgolang\fR compatible. Visit \fIregex101.com\fR to validate your regex.
.TP
.TP
\fBPassword\fR = password
Password for the profile.
The password can be specified as plain text, regex or hash:
Regex: Put \fIregex:\fR in front of it. The regex must must be \fBgo\fR / \fBgolang\fR compatible. Visit \fIregex101.com\fR to validate your regex.
Hash: Put \fIsha1:\fR, \fIsha256:\fR or \fIsha512:\fR in front of it. Note that the hash must be hashed with the prefix algorithm.
.TP
\fBNetworkMode\fR = 1 | 2 | 3 | 4 | 5
Default network mode for every connection.
NetworkMode describes the behavior of the container's network
Must be one of the following:
1 (Off): Disable networking complete.
2 (Isolate): Isolates the container from the host and the host's network. Therefore, no configurations can be changed from within the container.
3 (Host): Default docker network.
4 (Docker): Same as \fI3\fR but the container is in a docker4ssh controlled subnet. This is useful to differ normal from docker4ssh containers.
5 (None): disables all isolation between the docker container and the host, so inside the network the container can act as the host. So it has access to the host's network directly.
.TP
\fBConfigurable\fR = true | false
Default configurable setting for every connection.
Configurable describes if the container should be configurable from within it. This means that the connect user is able to change all settings which are described here.
Must be true or false.
.TP
\fBRunLevel\fR = 1 | 2 | 3
Default run level for every connection.
RunRevel describes the container behavior when the user connection to a container is stopped.
Must be one of the following:
1 (User): The container stops working if no user is connected to it anymore.
2 (Container): The container runs when no user is connected \fIExitAfter\fR is specified.
3 (Forever): The container runs forever.
.br
Note that the container exits always, independent of its RunLevel, when the via \fIExitAfter\fR specified process ends.
.TP
\fBStartupInformation\fR = true | false
Default startup information setting for every connection.
StartupInformation specifies if information about the container (id, network mode, ...) should be shown when a user connects to it.
Must be true or false.
.TP
\fBExitAfter\fR = exit after
Default exit after process for every process.
ExitAfter is a process name after which end the container should stop running.
.TP
\fBKeepOnExit\fR = true | false
Default keep on exit setting for every connection.
KeepOnExit specifies if the container should be saved when it stops working.
Must be true or false.
.SH EXAMPLE
[test]
.br
Username = "test"
.br
Image = "alpine:latest"
.SH SEE ALSO
docker4ssh(1), docker4ssh.conf(5)
.SH AUTHORS
Written by ByteDream (https://github.com/ByteDream)