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 installed
General 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 "mongo / 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 solr
Use Solr
Start Apache Solr using the following command:
solr start
The 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 start
If 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 tomcat
Start Tomcat
catalina run
To 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 run
If 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 composer
Installation (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 ~/.bashrc
Usage
composer install [PACKET]
composer uninstall [PACKET]
More commands:
composer list
Sources
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 elasticsearch
Start 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.size
This 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/elasticsearch
If 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 ffmpeg
Installation (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]*) ffmpeg
Installation (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.mp4
Source
https://www.johnvansickle.com/ffmpeg/
GlassFish
GlassFish is the reference implementation of Java EE.
Installation
software install glassfish
Start GlassFish
asadmin start-domain
Test GlassFish
asadmin deploy ../hello.war
You 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.war
If 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-password
The 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-admin
You 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 mongodb
Start 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/ --nounixsocket
Test MongoDB
mongo
If you can successfully start MongoDB, then the installation was also performed successfully. You shoul 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 nginx
Usage
Start nginx
nginx
Check 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/nginx
If 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 node
Use 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.js
If 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.phar
Change 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/.tmp
After 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
pear
List packages
pear list-all
Install 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 rslsync
Start Resilio Sync / BTSync
Using the following command, set the IP address for the managed server and then execute it.
rslsync --webui.listen <server_ip>:8888
Once 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 --help
Normally 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>:8888
If 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 fcgi
You 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.rb
With 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-script
In 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/dav
Setup 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>/sabredav
Copy 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 ~/subversion
Create 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.conf
Write the following lines in this file:
anon-access = none
auth-access = write
password-db = passwd
Now 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/passwd
In 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 -d
If 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/testprojekt
Sources
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 varnish
Test 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:8080
If 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.xz
Installation with SSH access on a managed server
software install wkhtmltopdf
Source
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-cli
Installation (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