You, the customer, install and use the following programs at your own risk. We at Hetzner do not provide technical support for these third party programs. But if you have questions about konsoleH or about your server's configuration, we will be happy to assist you.
Software Installer
You can install your own software on a managed server via SSH using the "software" program.
Some software requires the Debian package "hos-dev". You can request this by writing a support request via konsoleH.
Usage:
software install [PACKAGE]
software upgrade [PACKAGE]
software uninstall [PACKAGE] List tested packages:
software list List all available packages:
software list all List all installed packages:
software list installedGeneral information and tips
Process release
If you want to permanently run a process on a managed server, you need to request a process release from the support team. You also need a release if the program requires a lot of RAM. Most of the time, you also realize that a process release is necessary if your process is terminated with "KILLED".
Please write us a support request on konsoleH and tell us the process or the program.
- Process "java": glassfish, tomcat, apache solr, elasticsearch
- Process "rslsync": Resilio Sync
- Process "wkhtmltopdf": wkhtmltopdf
- Process "ruby": Ruby
- Process "nginx": Nginx
- Process "varnishd": Varnish
- Process "mongosh / mongod": MongoDB
Port releases
Important note: Opening additional ports is generally not necessary and is a considerable safety risk.
See the Open ports article for more information.
Apache Solr
Apache Solr is a search platform written in Java.
This software requires the Debian package "hos-dev". To get this, please write a support request on konsoleH.
Installation
software install solrUse Solr
Start Apache Solr using the following command:
solr startThe monitor output should look like this:
Waiting up to 30 seconds to see Solr running on port 8983 [/]
Started Solr server on port 8983 (pid=19302). Happy searching!You can now access the Solr admin using your browser via http://IhreDomain.tld:8983. Important note: The port you use must be opened in advance.
@reboot cronjob
You will need to set up a cronjob so that you will not need to manually restart the daemon after the server has been restarted. To do this, go to konsoleH and select the correct account domain. Then in the menu, go to "Services; Cronjob manager; Advanced view". Then insert the following lines at the end and, finally, click on "Save":
@reboot /usr/home/<USERNAME>/.linuxbrew/bin/solr startIf necessary, adjust the path to match yours.
Additional configuration (optional)
If you want Solr to sit behind an Apache proxy, you will need to adjust the .htaccess file. You need to edit/add the following in the .htaccess file in the document root for the account:
RewriteEngine on
RewriteRule ^(.*) http://localhost:8983/$1 [P]Warning: Please secure Solr accordingly (e.g. via a password); otherwise, third parties may access your data.
Source and helpful links
https://lucene.apache.org/solr/ https://www.solrtutorial.com/solr-in-5-minutes.html https://yonik.com/solr-4-tutorial/
Apache Tomcat
Apache Tomcat is an open source web server and web container that implements the specification for Jakarta Servlets and Jakarta Server Pages and thus allows web applications written in Java to be executed on a servlet or JSP basis. (Java Servlets and JavaServer Pages are the old names for Jakarta Servlets and Jakarta Server Pages.)
For Tomcat, you need the hos-dev package. Please request it by writing a support request via konsoleH.
Installation
software install tomcatStart Tomcat
catalina runTo test whether Tomcat is running, you just need to go to the website of the account via the selected port. For example: http://ihre-domain.de:8080/ Tomcat also deploys a "Hello world" project that you can go to: http://ihre-domain.de:8080/examples/servlets/servlet/HelloWorldExample
@reboot cronjob
You will need to set up a cronjob so that you will not need to manually restart the daemon after the server has been restarted. To do this, go to konsoleH and select the correct account domain. Then in the menu, go to "Services; Cronjob manager; Advanced view". Then insert the following lines at the end and, finally, click on "Save":
@reboot /usr/home/<USERNAME>/.linuxbrew/bin/catalina runIf necessary, adjust the path to match yours.
Additional configuration (optional)
If you want Tomcat to be reachable from the internet, you will need to adjust the .htaccess and server.xml files. You need to edit/insert the following in the .htaccess file in the document root for the account:
RewriteEngine on
RewriteRule ^(.*) http://localhost:8080/$1 [P]You need to extend the pre-built "connector" by a few lines in the Tomcat file server.xml (tomcat/conf/server.xml):
URIEncoding="UTF-8"
proxyPort="80"The block should look like the one below in its entirety:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
proxyPort="80"
redirectPort="8443" />Warning: Please secure your installation accordingly (e.g. via a password); otherwise, third parties may access your data.
Sources
https://tomcat.apache.org/
https://tomcat.apache.org/download-90.cgi
Composer
Composer is an application-oriented package manager for the PHP programming language. Composer is executed from the command line and installs dependencies of a PHP program.
This software requires the Debian package "hos-dev". To get this, please write a support request on konsoleH.
Installation (managed servers)
software install composerInstallation (web hosting accounts with SSH support)
php -d allow_url_fopen=On -r "readfile('https://getcomposer.org/installer');" > composer-setup.php
php -d allow_url_fopen=On composer-setup.php
php -r "unlink('composer-setup.php');"
echo alias composer=\"/usr/bin/php -d allow_url_fopen=On /usr/home/$USER/composer.phar\" >> ~/.bashrc
source ~/.bashrcUsage
composer install [PACKET]
composer uninstall [PACKET]More commands:
composer listSources
https://getcomposer.org/
https://getcomposer.org/download/
Elasticsearch
Elasticsearch is a search engine written in Java. The program stores documents in a NoSQL format.
To install Elasticsearch, you will need more compilers, and you need to request a process release for elasticsearch. Please write a support request and ask for the package "hos-dev" and for the process release.
Installation
software install elasticsearchStart Elasticsearch in the background and decouple it from terminal
nohup elasticsearch &Test Elasticsearch
curl 'localhost:9200/_cat/indices?v'If Elasticsearch is successfully running, then it will output the following:
health status index pri rep docs.count docs.deleted store.size pri.store.sizeThis output means that we don't have any indexes in this cluster yet.
@reboot cronjob
You will need to set up a cronjob so that you will not need to manually start the daemon after the server has been restarted. To do this, go to konsoleH and select the correct account domain. Then in the menu, go to "Services; Cronjob manager; Advanced view". Then insert the following lines at the end and, finally, click on "Save":
@reboot export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::") && /usr/home/<USERNAME>/.linuxbrew/bin/elasticsearchIf necessary, adjust the path to match yours.
Additional configuration (optional)
If you want your Elasticsearch to be reachable from the internet, you will need to adjust the .htaccess file. You need to edit/add following in the .htaccess file in the document root for the account:
RewriteEngine on
RewriteRule ^(.*) http://localhost:9200/$1 [P]Warning: Please secure your installation accordingly (e.g. via password); otherwise third parties may access your data.
Sources
https://www.elastic.co
https://www.elastic.co/guide/en/elasticsearch/reference/
FFmpeg
FFmpeg consists of a number of free computer programs and program libraries that can record, convert, send, and package digital video and audio material in various container formats.
Installation (managed servers)
software install ffmpegInstallation (web hosting accounts with SSH support)
wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
tar xJf ffmpeg-release-64bit-static.tar.xz
mv $(ls | grep ffmpeg-[1-9]*) ffmpegInstallation (web hosting accounts without SSH support)
Start downloading the static builds from https://www.johnvansickle.com/ffmpeg/ (64-bit Linux) onto your local computer. You need to extract the downloaded file before you do the upload. To extract the .tar.xz file, we recommend that you use the program at 7-Zip. Using WebFTP (konsoleH) or another FTP program (for example, FileZilla), upload the necessary binaries (for example, FFmpeg) onto the server. You need to set the permissions for the uploaded files to "755" using Filezilla or WebFTP, for example. You can now include the downloaded scripts in your programming.
Use FFmpeg
Examples of command lines/commands:
./ffmpeg/ffmpeg -i MeinLied.mp3 MeinLied.wav
./ffmpeg/ffmpeg -i MeinVideo.avi MeinVideo.mp4Source
https://www.johnvansickle.com/ffmpeg/
GlassFish
GlassFish is the reference implementation of Java EE.
Installation
software install glassfishStart GlassFish
asadmin start-domainTest GlassFish
asadmin deploy ../hello.warYou should see the following output:
Application deployed with name hello.
Command deploy executed successfully.Alternatively, you can access "<your-domain.tdl>:8080" in your browser, and you will receive a reply when the process is running.
@reboot cronjob
You will need to set up a cronjob so that you will not need to manually restart the daemon after the server has been restarted. To do this, go to konsoleH and select the correct account domain. Then in the menu, go to "Services; Cronjob manager; Advanced view". Then insert the following lines at the end and, finally, click on "Save":
@reboot /usr/home/<USERNAME>/.linuxbrew/bin/asadmin deploy hello.warIf necessary, adjust the path to match yours.
Administrator web interface
The web interface administrator is optional. It is deactivated by default due to security concerns. If you need it, you need to activate it. To do this, you must first create a password (and a user):
asadmin change-admin-passwordThe standard user is "admin", and no password is provided. After the last command, a password is provided, and with that, you can access the web interface:
asadmin enable-secure-adminYou will be asked to enter the user and password that you have just finished creating. Then you will be able to use the web interface administrator.
Source
MongoDB
MongoDB is a document-oriented database. Since the database is document-oriented, it can manage collections of JSON-like documents.
To install MongoDB, you will need more compilers. Please write a support request and ask for the package "hos-dev".
Installation
software install mongodbStart MongoDB
You can start MongoDB as a daemon (which will run in the background) using the following command. You can omit the parameter "--port" if you only want to use the database locally.
mongod --dbpath /usr/home/<USERNAME>/mongodb/data/db/ --port 27017 --fork --logpath /usr/home/<USERNAME>/mongodb/log.txt --nounixsocket(The command must be all one line.)
Alternative:
mongod --dbpath /usr/home/<USERNAME>/mongodb/data/db/ --nounixsocketTest MongoDB
mongoshIf you can successfully start MongoDB, then the installation was also performed successfully. You should now have a shell similar to what is available with database systems like MySQL. You can use the command "exit" to leave this program.
@reboot Crontab
To run MongoDB automatically when the server is restarted, you can generate the @reboot cronjob with the following command, for example:
crontab -l | { cat; echo "@reboot $HOME/.linuxbrew/bin/mongod --dbpath $HOME/mongodb/data/db/ --port 27017 --fork --logpath $HOME/mongodb/log.txt --nounixsocket &"; } | crontab -Sources
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-linux/
https://docs.mongodb.com/manual/mongo/
https://www.mongodb.com/mongodb-security-best-practices
https://github.com/mongodb/mongo/blob/master/rpm/mongod.conf
(Examples of configurations)
NGINX
Nginx is not just a web server software, but also a reverse proxy and email proxy.
To install nginx, you will need more compilers. Please write a support request via konsoleH and ask for the package "hos-dev".
Installation
software install nginxUsage
Start nginx
nginxCheck that it's working by opening your domain on the port you chose with a web browser. (Example: example.com:8080)
@reboot cronjob
You will need to set up a cronjob so that you will not need to manually restart the daemon after the server has been restarted. To do this, go to konsoleH and select the correct account domain. Then in the menu, go to "Services; Cronjob manager; Advanced view". Then insert the following lines at the end and, finally, click on "Save":
@reboot /usr/home/<USERNAME>/.linuxbrew/bin/nginxIf necessary, adjust the path to match yours.
Additional configuration (optional)
If you want your nginx webserver to be reachable from the internet, you will need to adjust the .htaccess file. You need to edit/add the following in the .htaccess file in the document root for the account:
RewriteEngine on
RewriteRule ^(.*) http://localhost:<port>/$1 [P]node.js
Node.js is a server-side plattform you can use to operate network applications for software development. It is often used to host web servers.
Installation
software install nodeUse node.js
node "YourScript.js"@reboot cronjob
You will need to set up a cronjob so that you will not have to manually restart the daemon after the server has been restarted. To do this, go to konsoleH and select the correct account domain. Then in the menu, go to "Services; Cronjob manager; Advanced view". Then insert the following lines at the end and, finally, click on "Save":
@reboot /usr/home/<USERNAME>/.linuxbrew/bin/node script.jsIf necessary, adjust the path to match yours.
Additional configuration (optional)
If you want your node webserver to be reachable from the internet, you will need to adjust the .htaccess file. You need to edit/add the following in the .htaccess file in the document root for the account:
RewriteEngine on
RewriteRule ^(.*) http://localhost:<port>/$1 [P]Warning: Please secure your installation accordingly (e.g. via password); otherwise, third parties may access your data.
Source
PEAR
Having your own version of PEAR is sometimes necessary, for example, if you would like to install your own PEAR packages without any fuss or if you would like to use a version of PHP which is does not support the PEAR version on the server.
Installation
wget https://pear.php.net/go-pear.phar
php go-pear.pharChange the following entries for the installation (LOGIN = FTP login for the account):
2. Temporary directory for processing : /usr/home/LOGIN/.tmp
3. Temporary directory for downloads : /usr/home/LOGIN/.tmpAfter you're done editing, please press "Enter". When you are asked if the php.ini should be changed, choose [n].
Set the PATH variable so you can use the local PEAR:
echo 'export PATH="~/pear/bin:$PATH"' >> ~/.bashrc
echo 'export PHP_PEAR_PHP_BIN="/usr/bin/php"' >> ~/.bashrc
source ~/.bashrc(Note: The path /usr/bin/php always points to the newest version of PHP available on the server. If you would like to use a specific version of PHP, edit the path, for example PHP 5.5 => /usr/bin/php55 )
Use PEAR
pearList packages
pear list-allInstall new packages
pear install <package>Using your own version of PEAR in PHP scripts
Annotate the .htaccess file:
php_value include_path /usr/home/LOGIN/pear/share/pear/:.:/usr/local/lib/php/Redis
Redis is an in-memory database. For example, you can use Redis as an alternative to "memcached".
You can configure Redis databases on managed servers using konsoleH: https://docs.hetzner.com/konsoleh/account-management/configuration/redis/
Resilio Sync (BTSync)
Installation
software install rslsyncStart Resilio Sync / BTSync
Using the following command, set the IP address for the managed server and then execute it.
rslsync --webui.listen <server_ip>:8888Once the port has been opened, you can then access the administration interface via http://<"SERVER-IP">:8888/gui With the following command, you can access Help for all BTSync functions:
rslsync --helpNormally you need to create a configuration file and one folder in which to save the data.
@reboot cronjob
You will need to set up a cronjob so that you will not need to manually restart the daemon after the server has been restarted. To do this, go to konsoleH and select the correct account domain. Then in the menu, go to "Services; Cronjob manager; Advanced view". Then insert the following lines at the end and, finally, click on "Save":
@reboot /usr/home/<USERNAME>/rslsync --webui.listen <server_ip>:8888If necessary, adjust the path to match yours.
Sources
https://getsync.com/
https://wiki.archlinux.org/index.php/BitTorrent_Sync#Configuration
https://wiki.ubuntuusers.de/Archiv/BitTorrent_Sync/#Manuell
Ruby
Requirements
Pre-installation
*[REQUIRED] SSH access (for managed servers)
Post-installation
- [OPTIONAL] Request that we set the memory limit for "gem" to 500 MB for Rails (Ruby On Rails). Please do this by writing a support ticket via konsoleH.
- [OPTIONAL] If you would like to use Ruby with FCGI, please request the Debian software package "libfcgi-dev". Please do this by writing a support ticket via konsoleH.
How to use package management RubyGems (or "Gems")
You will not be able to globally install additional Gems for Ruby. However, you can install them in a local environment. For this method, you do not need root permissions. You need to use the package management "gem" like in this example:
gem install --user-install <gem-name>Ruby over FCGI
If you would like to run Ruby with FCGI, you need to install the Gem "fcgi".
gem install --user-install fcgiYou need a FCGI script and settings in your .htaccess file. It is recommended that you store your own Ruby application in a sub-directory of "public_html" and define this one as document root.
FCGI script: You need to store this script in a directory which is accessible by Apache (e.g.: public_html). That is why you should store your application in a sub-directory. Create the file "ruby_handler.fcgi" and insert the following lines into it.
#!/bin/dash
export GEM_HOME="$HOME/.gem/ruby/2.3.0/"
export GEM_PATH="$GEM_HOME:/var/lib/ruby/gems/1.8"
exec /usr/bin/ruby /usr/www/users/<FTP-USER>/<PROJECT-DIRECTORY>/index.rbWith the two "export" settings, define the directory which Ruby should search when looking for Gems. In this example it is the default directory for Gems which you have installed with the parameter "--user-install". It allows you to install Gems. In the line "exec" you need to set the path to an executable script.
.htaccess settings:
FcgidWrapper /usr/www/users/<FTP-USER>/ruby_handler.fcgi .rb
SetHandler fcgid-scriptIn this example it shows you the settings if your FCGI script is stored in "public_html".
Sources
https://rubygems.org/
https://guides.rubygems.org/faqs/#i-installed-gems-with---user-install-and-their-commands-are-not-available
https://www.binarytides.com/quick-tip-installing-ruby-gems-in-the-users-home-directory/
SabreDAV (WebDAV)
To manage files on a web hosting or managed server via WebDAV, you can install SabreDAV.
Installation
SabreDAV is installed via composer. Therefore you need to install composer first.
composer require sabre/davSetup SabreDAV
An interface is required to access the server via WebDAV. You can find the official manual at https://sabre.io/dav/gettingstarted/.
mkdir /usr/home/<USERNAME>/sabredata
mkdir /usr/www/users/<USERNAME>/sabredavCopy the file server.php from https://sabre.io/dav/gettingstarted/ to /usr/www/users/<USERNAME>/sabredav/server.php
Required changes:
require 'vendor/autoload.php'; -> require '/usr/home/<USERNAME>/vendor/autoload.php';
rootDirectory: here you configure the shared folder (for example, /usr/home/<USERNAME>)
setBaseUri: the path to the SabreDAV server, in this example /sabredav/server.php
lockBackend: the path to the lockfile, in this example /usr/home/<USERNAME>/sabredata/locks
Test SabreDAV
By default, SabreDAV is accessible via HTTP without a password: http://example.com/sabredav/server.php
Warning: Please secure your installation accordingly (e.g. via a password); otherwise, third parties may access your data.
https://sabre.io/dav/authentication/
Subversion (SVN)
This guide describes an approach that uses SSH access and assumes that you already are connected via SSH with your access details.
SVN is already installed, and therefore, you only need to set it up and start using it. You can operate SVN with multiple users, but you cannot use it with multiple SSH users.
Preparation
First, create a main folder for the repositories to help you manage your data in the correct way. Do not locate this folder in the "public_html" directory for security reasons. Create a main folder in the home directory:
mkdir ~/subversionCreate a repository
It is recommendable to create a new repository for every new project.
mkdir ~/subversion/testprojekt
svnadmin create ~/subversion/testprojekt(Optional) create a user
To do this, open the configuration folder with the editor of your choice:
nano ~/subversion/testprojekt/conf/svnserve.confWrite the following lines in this file:
anon-access = none
auth-access = write
password-db = passwdNow you need to define the user. This user must match the SSH user (FTP main user); the password should also match. For this, you can open the password file with the editor of your choice:
nano ~/subversion/testprojekt/conf/passwdIn the following format, insert your username and password:
<"USERNAME"> = <"PASSWORT">Start Subversion as a daemon
svnserve -d@reboot cronjob
You will need to set up a cronjob so that you will not need to manually restart the daemon after the server has been restarted. To do this, go to konsoleH and select the correct account domain. Then in the menu, go to "Services; Cronjob manager; Advanced view". Then insert the following lines at the end and, finally, click on "Save":
@reboot /usr/bin/svnserve -dIf necessary, adjust the path to match yours.
Use SVN
Now you can use SVN as usual via SSH.
svn co svn+ssh://sshhosteintrag/usr/home/<"FTP-USERNAME">/subversion/testprojektSources
https://civicactions.com/blog/how-to-set-up-an-svn-repository-in-7-simple-steps/
https://subversion.apache.org/
Varnish
Varnish is a cache for dynamic websites with a lot of content. Unlike other reverse proxies, which often originate from client-side proxies or servers, Varnish was designed from the ground up as a reverse proxy.
To install Varnish, you will need more compilers. Please write a support request via konsoleH and ask for the package "hos-dev".
Installation
software install varnishTest Varnish:
varnishd -V
varnishd -a localhost:6081 -T localhost:6082 -b localhost:8080@reboot cronjob
You will need to set up a cronjob so that you will not need to manually restart the daemon after the server has been restarted. To do this, go to konsoleH and select the correct account domain. Then in the menu, go to "Services; Cronjob manager; Advanced view". Then insert the following lines at the end and, finally, click on "Save":
@reboot /usr/home/<USERNAME>/.linuxbrew/sbin/varnishd -a localhost:6081 -T localhost:6082 -b localhost:8080If necessary, adjust the path to match yours.
Additional configuration (optional)
If you want your Varnish installation to be reachable from the internet, you will need to adjust the .htaccess file. You will need to edit/add the following in the .htaccess file in the document root for the account:
RewriteEngine on
RewriteRule ^(.*) http://localhost:6081/$1 [P]Warning: Please secure your installation accordingly (e.g. via a password); otherwise, third parties may access your data.
wkhtmltopdf
Installation without SSH access
Download onto your PC the appropriate package (Debian 11 (bullseye) amd64) from the developer's website.
Extract the file using the tool of your choice (for example 7-Zip.
Within the archives, or in extraction folder, you will find the necessary program in the path wkhtmltox/bin/.
Transfer this file (wkhtmltopdf) to the server via FTP.
You will be able to execute the file by assigning it the permission "755". You can change the permission of the file via the FTP program that you used, or you can use the WebFTP interface on konsoleH.
Now you can open the tool directly from the application by entering the complete path.
Installation with SSH access on a web hosting product
Please replace the download link with the one from the newest version.
wget https://downloads.wkhtmltopdf.org/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
tar xJvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xzInstallation with SSH access on a managed server
software install wkhtmltopdfSource
wp-cli
WP-CLI is the command-line interface for WordPress. You can update plugins, configure multisite installations and much more, without using a web browser
Installation (managed servers)
software install wp-cliInstallation (web hosting account with SSH support)
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
echo alias wp-cli=\"/usr/bin/php -d allow_url_fopen=On /usr/home/$USER/wp-cli.phar\" >> ~/.bashrc
source ~/.bashrc