Merge branch 'main' into netcupClaudiaM-UpdateTranslations

This commit is contained in:
Claudia M 2022-05-13 11:29:56 +02:00 committed by GitHub
commit 3c79b49648
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 420 additions and 422 deletions

View file

@ -6,17 +6,12 @@ jobs:
send_mail:
runs-on: ubuntu-latest
steps:
- name: Get PR Number
uses: jwalton/gh-find-current-pr@v1
id: findPr
with:
state: open
- name: Create mail body 📝
run: |
MY_STRING=$(cat << EOF
New Pull Request to Review on ${{ github.repository }}
https://github.com/${{ github.repository }}/pull/${{steps.findPr.outputs.pr}}
https://github.com/${{ github.repository }}/pull/${{github.event.number}}
EOF
)

View file

@ -1,4 +1,5 @@
## netcup Community Tutorial Guidelines
# General Criteria
- Tutorials should be delivered ideally both in English and German, while English is the default language.
- In the rare circumstance, that you are unable to provide a German translation, we may be able to translate the tutorial internally.
@ -6,11 +7,11 @@
- Name the product you're using.
- Whether it is Webhosting or a vServer you are using in your tutorial, please make sure to name it. (e.g.: Webhosting 4000)
- Make sure your tutorials work on new servers.
- If someone just ordered a new server, they should not first have to install or configure anything, except it is explained in your tutorial. In this case, make sure there is already a tutorial explaining that and link to the corresponding tutorial at the beginning of yous.
- If someone has just ordered a new server, they should not have to install or configure anything first, except it is explained in your tutorial. In that case, make sure there is already a tutorial that explains it and link to it at the beginning of your tutorial.
- Write in a structured, easy to follow manner.
- Since your content will be read by users with a wide range of experience, make sure beginners can still follow.
- If you use acronyms, write them out the first time you use them.
- If you use a word, that probably not everybody understands, explain it. Or, use a different easier to understand word or phrase.
- If you use a word that not everyone is likely to understand, explain it. Or use another word or phrase that is easier to understand.
- Don´t skip steps. Some might seem obvious or self-explanatory to you, but aren't to others.
- Don´t overdo insider jokes. (Looking over to you, dear "Duck-Community". :wink:)
- Be the original.
@ -30,12 +31,12 @@
I have read and understood the Contributor's Certificate of Origin at the end of the [template](https://github.com/netcup-community/community-tutorials/blob/main/TEMPLATE.md) and I hereby certify that I meet the contribution criteria described in it.
Signed-off-by: (Submitter´s name and email address)
Signed off by: (Submitter´s name and email address)
If your tutorial is accepted, you will receive an email from our netcup Community Team asking for your netcup Customer-ID, so the reward can be processed.
# Structure
All of your Tutorials should have the same basic structure:
All of your tutorials should have the same basic structure:
- Title
- Introduction
@ -52,7 +53,7 @@ Now we're right in the heart of the tutorial where users will follow every singl
The amount of steps will vary depending on how long or complicated your tutorial is.
Remember: none of the users walked that road before, so make sure to really explain your steps well.
Each of them should build on the previous one. It is important not to skip any steps, no matter how obvious or self-explanatory they may seem! (If you're not sure what we mean here, you might want to watch this fun video.)
Each of them should build on the previous one. It is important not to skip any steps, no matter how obvious or self-explanatory they may seem! (If you're not sure what we mean here, you might want to watch this fun video: https://www.youtube.com/watch?v=cDA3_5982h8&t=4s)
## Conclusion
Once all steps are completed you might want to add a short conclusion.
@ -75,9 +76,8 @@ For all of this we provided a template for you. See https://github.com/netcup-co
It includes:
- a basic layout for your tutorial,
- some examples of formatting
- some examples of formatting,
- tips and tricks for setting everything up.
# Submissions
You got a tutorial that meets the criteria above, and would be useful to share? Awesome! Please reach out to us via our GitHub account.
You got a tutorial that meets the criteria above and would be useful to share? Awesome! Please reach out to us via our GitHub account.

View file

@ -1,25 +1,23 @@
# netcup Community Tutorials
Community contributed tutorials about what can be done with netcup products and services.
Community-contributed tutorials about what can be done with netcup products and services.
## Contribution Guidelines
Please make sure to follow the [Contribution Guidelines](https://github.com/netcup-community/community-tutorials/blob/main/CONTRIBUTING.md) if you want to contribute a tutorial.
Once done, open a Pull Request. A Repository Maintainer will review your tutorial and either accept it or get back to you with feedback.
## Rewards
If your tutorial is accepted, you will receive an E-Mail (sent from our @anexia-it.com addresses) to the address you provide in your tutorial, asking for your netcup customer-ID in order to process your reward of €60,- in the form of netcup vouchers, exclusively for published tutorials.
If your tutorial is accepted, you will receive an email (sent from our @anexia-it.com addresses) to the address you provide in your tutorial asking for your netcup customer-ID in order to process your reward of €60,- in the form of netcup vouchers, exclusively for published tutorials.
### Details to vouchers
### Details about vouchers
1) Vouchers are not valid for: Domains, SSL Certificates, Groupware and products with hourly billing.
2) Vouchers can only be used for new orders.
3) (Minimum) order value needs to be equal to or higher than the voucher is. Example: (Minimum) Order Value for a €20,- voucher is €21,- (Difference of €1,- is to be paid.)
4) Vouchers are valid indefinitley.
4) Vouchers are valid indefinitely.
5) Vouchers are only valid for products in our regular product portfolio. (e.g.: currently vouchers can't be used to buy a netcup cup.)
## Support
If you need help with a specific tutorial, reach out to the contributor directly or join the netcup Forum for further questions, input and exchange.
You can also request content in the [netcup Forum](https://forum.netcup.de/community-tutorials/community-tutorial-vorschl%C3%A4ge/).
If you need help with something else than a tutorial, please make use of our netcup-wiki* or join the netcup Forum.
## Authors and acknowledgement

View file

@ -116,7 +116,7 @@ then
fi
```
If the ping to `8.8.8.8` is successful, the message will be displayed. We can also display another message if there is no Internet connection. So let's add an `else` statement:
If the ping to `8.8.8.8` is successful, the message will be displayed. We can also display another message if there is no internet connection. So let's add an `else` statement:
```sh
if ping -c 1 -W 3 8.8.8.8
@ -222,10 +222,10 @@ fi
Checking if a variable exists:
```sh
# This If statement will be executed
# This If statement will be executed because var was not declared
if [ -z "$var" ]
then
echo "Variable "var" does not exist"
echo "Variable 'var' does not exist"
fi
```
@ -234,7 +234,7 @@ Checking if a file exists:
```sh
if [ -f "file" ]
then
echo The file with the name "file" does exist"
echo "The file with the name 'file' does exist"
fi
```
@ -265,18 +265,18 @@ echo "$first_var + $second_var = $result_addition"
# Subtraction
result_subtraction=$(($first_var - $second_var))
echo "$first_var - $second_var = $result_addition"
echo "$first_var - $second_var = $result_subtraction"
# Multiplication
result_multiplication=$(($first_var * $second_var))
echo "$first_var * $second_var = $result_addition"
echo "$first_var * $second_var = $result_multiplication"
# Division
result_division=$(($first_var / $second_var))
echo "$first_var / $second_var = $result_addition"
echo "$first_var / $second_var = $result_division"
```
Please note that there are not floating point numbers in Bash. This means that the quotient of 3 and 4 (`$((3 / 4))`) is 0. Instead, a tool like `bc` is needed.
Please note that there are no floating point numbers in Bash. This means that the quotient of 3 and 4 (`$((3 / 4))`) is 0. Instead, a tool like `bc` is needed.
# While Loops
@ -333,7 +333,7 @@ Then we can run it:
$ /path/to/my-script
```
If the script is our current working directory, it can be executed like this:
If the script is in our current working directory, it can be executed like this:
```sh
$ ./my-script
@ -341,7 +341,7 @@ $ ./my-script
# Conclusion
In this tutorial, you've learned how to write basic POSIX compliant scripts including commands, comments, variables, If statements, While statements, maths and delays.
In this tutorial, you've learned how to write basic POSIX compliant scripts including commands, comments, variables, If statements, While statements, basic mathematical operations and delays.
# License

View file

@ -246,7 +246,7 @@ cp -a /etc/ssh/sshd_conf.d/* /mnt/debinst/etc/ssh/sshd_conf.d/
This only works if you have already put your configuration into the `sshd_conf.d` directory. If it still resides in the `sshd_conf` file, you might either extract the information (recommended) or copy that file.
To avoid problems with the host_key identification, we make a backup copy of the host keys that where generated when we installed SSH and copy the host keys from the old system to the new system.
To avoid problems with the host_key identification, we make a backup copy of the host keys that were generated when we installed SSH and copy the host keys from the old system to the new system.
```bash
# Install zip if it is not yet installed on your system

View file

@ -112,7 +112,7 @@ game_mode 1
sv_pure 1
// host_workshop_collection <WORKSHOP COL ID>
// workshop_start_map <WORKSHOP START MAP>
map de_dust2 // set default map here if not using a workshop map
map de_dust2 // set default map here if not using a workshop map
log on
sv_allow_votes 0
sv_logbans 1
@ -127,9 +127,9 @@ sv_minupdaterate "128"
sv_mincmdrate "128"
sv_pure 1
sv_pure_kick_clients 1
hostname "My CSGO Server" // change this to your servers name (optional)
rcon_password "" // change this if you want to enter commands from the cs:go client (optional)
sv_password "" // change this to protect the server with a password (optional)
hostname "My CSGO Server" // change this to your servers name (optional)
rcon_password "" // change this if you want to enter commands from the cs:go client (optional)
sv_password "" // change this to protect the server with a password (optional)
sv_cheats 0
sv_lan 0
exec banned_user.cfg
@ -140,17 +140,79 @@ The `autoexec.cfg` file is executed when the server first starts, here you can d
You can also set things like the workshop collection if you have some maps from the Steam workshop you want to play on.
But most importantly, you have to add your GSLT key that you generated for your server [here](https://steamcommunity.com/dev/managegameservers). Insert the GSLT key after `sv_setsteamaccount` in the first line. You can connect to your server over the internet if this key is present.
For all game modes and game types see this table:
| game_type | | game_mode | | |
|-----------|-------------|-------------|------------|----------------|
| | 0 | 1 | 2 | 3 |
| 0 | casual | competetive | wingman | weapons expert |
| 1 | armsrace | demolition | deathmatch | |
| 2 | training | | | |
| 3 | custom | | | |
| 4 | guardian | coop strike | | |
| 5 | skirmish | | | |
| 6 | danger zone | | | |
For all game modes and game types see this table from the [Valve Developer Wiki - CS:GO Game Modes](https://developer.valvesoftware.com/wiki/CS:GO_Game_Modes)
<table>
<thead>
<tr>
<th colspan="2" rowspan="2">game_type</th>
<th colspan="4">game_mode</th>
</tr>
<tr>
<th>0</th>
<th>1</th>
<th>2</th>
<th>3</th>
</tr>
</thead>
<tbody>
<tr>
<td>Classic</td>
<td>0</td>
<td>Casual</td>
<td>Competitive</td>
<td>Wingman</td>
<td>Weapons Expert</td>
</tr>
<tr>
<td>Gun Game</td>
<td>1</td>
<td>Arms Race</td>
<td>Demolition</td>
<td>Deathmatch</td>
<td></td>
</tr>
<tr>
<td>Training</td>
<td>2</td>
<td>Training</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Custom</td>
<td>3</td>
<td>Custom</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Cooperative</td>
<td>4</td>
<td>Guardian</td>
<td>Co-op Strike</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Skirmish</td>
<td>5</td>
<td>War Games<br></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Free For All</td>
<td>6</td>
<td>Danger Zone</td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
Now create `config.cfg` with the following content:
@ -335,7 +397,7 @@ Alternatively you sometimes might need access to the command line interface for
This can be done by attaching to the container by running:
```bash
# this is essentially the same as opening your console in the CSGO client
# this is essentially the same as opening your console in the CS:GO client
docker attach csgo
```

View file

@ -19,7 +19,7 @@ This tutorial explains how to install BigBlueButton 2.3 on your netcup virtual m
# Requirements
- You need a server that is powerful enough to run BigBlueButto (see Introduction). Because we need to install Ubuntu 18.04, you need user credentials to the [netcup server control panel](https://www.servercontrolpanel.de/SCP/Login).
- You need a server that is powerful enough to run BigBlueButton (see Introduction). Because we need to install Ubuntu 18.04, you need user credentials to the [netcup server control panel](https://www.servercontrolpanel.de/SCP/Login).
- You need a (sub) domain to run the BigBlueButton with. The (sub) domain must be configured as A record to the IP address of the server. If you don't have a subdomain, just use the hostname provided by netcup (e.g. `v112233445566778899.bestsrv.de`).
# Step 1 - Install Ubuntu 18.04 on your server

View file

@ -17,7 +17,8 @@ available_languages: en
This tutorial explains how to install the PostgreSQL database and its pgAdmin tool on a virtual server with Docker and how to connect pgAdmin to PostgreSQL. pgAdmin is a web-based administration tool for the PostgreSQL database.
# Requirements
You need a virtual server from netcup with Debian or Ubuntu installed. This tutorial also requires the setup of Docker and Docker Compose. On the netcup Community Tutorials site, you can find a tutorial that describes how to set up Docker and Docker Compose on Ubuntu.
You need a virtual server from netcup with Debian or Ubuntu installed. This tutorial also requires the setup of Docker and Docker Compose.
Refer to the netcup community tutorial [install-docker](https://github.com/netcup-community/community-tutorials/blob/main/community-tutorials/install-docker/01-en.md) for instructions on how to set up Docker and Docker Compose on Ubuntu.
# Step 1 - Check your Docker and Docker Compose versions
Check the Docker version:
@ -156,7 +157,7 @@ The server connection opens automatically and the first page displays live stati
# Step 7 - Stop and remove all services
If you don't need the PostgreSQL database and pgAdmin anymore, you can stop and remove the two services with one command:
Run in the command-line:
Run in the command line:
```
docker-compose down
```

View file

@ -0,0 +1,288 @@
---
title: Setup of Roundcube as webmail frontend on webhosting
description: Learn how to set up Roundcube, a webmail frontend based on PHP and JavaScript, as an alternative to the default netcup instances.
level: [beginner]
updated_at: 2022-04-06
slug: install-roundcube-on-webhosting
author_name: Michael Benz
author_url: https://www.asiamann.de
author_image: https://asiamann.de/img/copro.jpg
author_bio: teen, student, work slave
tags: [webmail, mail, imap, webhosting, roundcube]
netcup_product_url: https://www.netcup.de/bestellen/produkt.php?produkt=2217
language: en
available_languages: [en]
---
# Introduction
This tutorial describes how to set up [Roundcube](https://roundcube.net/) as a webmail frontend for your emails using an SQLite file backend with the netcup IMAP and SMTP server.
netcup is already providing at least one Roundcube webmail instance [https://webmail01.netcup.net/] for each domain. If the domain is example.com, the DNS A record would be `webmail.example.com`.
However, in case you want to use a newer Roundcube version or customize your installation, it might be better to install the software directly on your own webhosting instance, which also allows you to set up a Let's Encrypt certificate. Another benefit is the use of the dark mode, which is only available since Roundcube version 1.5.0.
The reading time of this tutorial is about five minutes. The implementation will take approximately 20 minutes.
The most important requirements for following this tutorial are a basic understanding of SSH and the Unix command line and a netcup webhosting package.
The tutorial uses the example domain `example.com`. This hostname needs to be replaced with the name of your own domain when you perform the steps described in this tutorial.
# Requirements
The installation can be performed on any VPS but this tutorial focuses on a default webhosting setup:
* Webhosting 1000 or better
* a (sub) domain
# Step 1 - Add the subdomain and get the document root
Adding a subdomain is easy using the WCP [Add Subdomain] button in the webhosting interface "Websites & Domains".
![WCP (plesk) adding a subdomain](images/netcup_wcp_add_subdomain.png)
We use the following subdomain: wm.example.com
At first we collect some information about the webhosting that we will need later during the configuration.
Navigate to the WCP "PHP Settings" of the new subdomain and note down the current value of the {DOCROOT} e.g.
`/var/www/vhosts/hosting123456.a1b2c.netcup.net/wm.example.com/httpdocs`
In the "SSL/TLS Certificates" settings of the new subdomain, you can add a recommended SSL certificate with Let's Encrypt.
![WCP (plesk) setup LE SSL certificate](images/netcup_wcp_sslit_lets_encrypt.png)
# Step 2 - Download Roundcube and mime.types via SSH
Download the Roundcube release from the Roundcube Download page: [https://roundcube.net/download/]
We use the stable release '1.5.2' complete package for this tutorial and we connect to the webhosting instance using SSH.
Connect to your webhosting instance via SSH using the details in the "Web Hosting Access" section of the subdomain.
Navigate to the document root:
`cd wm.example.com/httpdocs/`
Delete the favicon.ico and index.html which were created during Step 1:
`rm favicon.ico index.html`
Download the complete package in tar.gz format:
`wget https://github.com/roundcube/roundcubemail/releases/download/1.5.2/roundcubemail-1.5.2-complete.tar.gz`
Extract the tar.gz package stripping the subdirectory 'roundcubemail-1.5.2':
`tar xzvfs roundcubemail-1.5.2-complete.tar.gz --strip-components=1`
Download a mime.types definition from the Apache project:
`wget http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types`
# Step 3 - Configure the Roundcube installation with a few fixed settings
Typically a configuration is created based on the provided sample file and extended with some additional changes.
If you feel unsure about editing the files with an editor, go directly to the next Step or modify the files locally and transfer them to the webhosting instance, e.g. via FTP.
Copy the sample files configuration:
`cp config/config.inc.php.sample config/config.inc.php`
Configure the installation by editing the config.inc.php file using your favorite editor. We will be using nano.
`nano config/config.inc.php`
You may replace any settings depending on your needs, but at minimum you will have to modify the following ones:
- db_dsnw
- default_host
- des_key
- language
- mime_types
- smtp_conn_options
- smtp_server
The following is a full sample configuration that could be used after replacing the document roots in db_dsnw, mime_types and filling a new 24 character long des_key:
```
<?php
/* Local configuration for Roundcube Webmail using netcup SMTP and IMAP server*/
// Database connection string (DSN) for read+write operations
// Currently supported db_providers: mysql, pgsql, sqlite, mssql, sqlsrv, oracle
// NOTE: for SQLite use absolute path (Linux): 'sqlite:////full/path/to/sqlite.db?mode=0646'
$config['db_dsnw'] = 'sqlite:////var/www/vhosts/hosting123456.a1b2c.netcup.net/wm.example.com/httpdocs/config/sqllite.db?mode=0646';
// The netcup IMAP host chosen to perform the log-in.
$config['default_host'] = 'mail.example.com';
// Setup the default IMAP Port for SSL
$config['default_port'] = 993;
// workaround for netcup IMAP server requiring SSL
// but the certificate does not match the server name mail.example.com
$config['imap_conn_options'] = [
'ssl' =>
[
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => false,
'verify_depth' => 3,
'cafile' => '/etc/openssl/certs/ca.crt',
],
];
// netcup SMTP server host (for sending mails) using STARTTLS
$config['smtp_server'] = 'tls://mail.example.com';
// workaround for netcup SMTP server requiring STARTTLS
// but the certificate not match the server name mail.example.com
$config['smtp_conn_options'] = [
'ssl' =>
[
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => false,
'verify_depth' => 3,
'cafile' => '/etc/openssl/certs/ca.crt',
],
];
// provide an URL where a user can get support for this Roundcube installation
// (not linking to the Roundcube site itself and instead giving the webmaster address)
$config['support_url'] = 'mailto:webmaster@example.com';
// This key is used to encrypt the users imap password which is stored
// in the session record. For the default cipher method it must be
// exactly 24 characters long.
// YOUR KEY MUST BE DIFFERENT THAN THE SAMPLE VALUE FOR SECURITY REASONS
$config['des_key'] = 'rcmail-!24ByteDESkey*Str';
// Specifying the username_domain allows to login with username
// without having to specify the domain
$config['username_domain'] = 'example.com';
// the mime type definition
$config['mime_types'] = '/var/www/vhosts/hosting123456.a1b2c.netcup.net/wm.example.com/httpdocs/mime.types';
// List of active plugins in plugins/ directory (copied from netcup instance adding markasjunk and zipdownload)
$config['plugins'] = ['filesystem_attachments', 'jqueryui', 'managesieve', 'markasjunk', 'zipdownload'];
// default language is set to German (Germany)
$config['language'] = 'de_DE';
// enable the spellchecker
$config['enable_spellcheck'] = true;
// in case you want to use the installer again uncomment this
$config['enable_installer'] = true;
```
# Step 4 - Run setup in browser
After the configuration the web installer can be accessed to make additional settings and verify that the installation works.
Here you can also ensure that the configuration is properly reformatted and that the random keys are properly set, e.g. for des_key.
Just open the installer URL in a browser of your choice by going to: https://wm.example.com/installer/index.php
## Check environment
The first step, "Check environment" should not need any intervention as everything is already set up in the netcup webhosting environment.
Click [NEXT] and continue to "Create config".
## Create config
If you want, you can configure the `support_url` with an email address like `webmaster@example.com`.
You can enable a spell checker from Google by setting `enable_spellcheck` to `Google`.
Enter the Database settings beginning with `Database type` `SQLite` and remove all other entries except for the Database name where we add the absolute URL SQLite database file in:
`/var/www/vhosts/hosting123456.a1b2c.netcup.net/wm.example.com/httpdocs/config/sqllite.db`
Set the `default_host` to the netcup IMAP Host of your webhosting to `ssl://mail.example.com`.
If you want, the `username_domain` can be specified to be added to the username automatically.
Next, set the `smtp_server` to `tls://mail.example.com`.
Configure the language to your language, in my case German, by setting `language` to `de_DE` or your language.
This completes the configuration.
Click [NEXT] and continue to "Test config" by clicking on [CONTINUE].
## Test config
Here the [Send test mail] and [Check login] can be used to test the IMAP login and SMTP mail sending.
# Step 5 - Finish and secure the installation
Disable the installer by commenting or deleting the following line from `config/config.inc.php`:
`$config['enable_installer'] = true;`
Remove the installer folder from the webspace by executing the following command:
`rm -rf installer`
If you do not want to keep the release tar.gz, delete it by running:
`rm roundcubemail-1.5.2-complete.tar.gz`
If you have put the SQLite database file in a different folder that is not protected by the `.htaccess` file of the Roundcube installation, make sure to add it to the `.htaccess` file to protect it from being downloaded.
# Step 6 - Login and test
To access the webmail instance, go to `https://wm.example.com` and log in. If this does not work, please look through the previous steps as it is likely that there has been a mistake.
# Step 7 - Enhancements and updates
Other plugins can be activated by adding them to the `$config['plugins']` item in the `config/config.inc.php` file.
If you want to use your own Roundcube installation for different mail hosts, just remove the config option for `username_domain` and change the options for `default_host` and `smtp_server` like this:
```
$config['default_host'] = [
'ssl://mail.example.com' => 'netcup (example.com)',
'ssl://imap.gmail.com' => 'Gmail',
'ssl://imap.web.de' => 'WEB.DE',
'ssl://imap.gmx.net' => 'GMX',
'ssl://mx.freenet.de' => 'freenet.de',
'ssl://outlook.office365.com' => 'Outlook.com',
'ssl://imap.mail.me.com' => 'iCloud',
'ssl://secureimap.t-online.de' => 't-online.de',
'ssl://imap.mail.yahoo.com' => 'Yahoo!',
'ssl://imap.mail.de' => 'mail.de',
];
$config['smtp_server'] = [
'mail.example.com' => 'tls://mail.example.com',
'imap.gmail.com' => 'tls://smtp.gmail.com',
'imap.web.de' => 'tls://smtp.web.de',
'imap.gmx.net' => 'tls://mail.gmx.net',
'mx.freenet.de' => 'tls://mx.freenet.de',
'outlook.office365.com' => 'tls://smtp-mail.outlook.com',
'imap.mail.me.com' => 'tls://smtp.mail.me.com',
'secureimap.t-online.de' => 'tls://securesmtp.t-online.de',
'imap.mail.yahoo.com' => 'tls://smtp.mail.yahoo.com',
'imap.mail.de' => 'tls://smtp.mail.de',
];
```
# Conclusion
The webmail instance can now be used. It is recommended to perform some tests before productive use.
The default theme using dark mode looks like this:
![Roundcube 1.5.2 Login Page in Dark Mode](images/roundcube_1.5.2_darkmode_login.png)
# License
MIT
# Contributor's Certificate of Origin
By making a contribution to this project, I certify that:
1) The contribution was created in whole or in part by me and I have the right to submit it under the license indicated in the file; or
2) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same license (unless I am permitted to submit under a different license), as indicated in the file; or
3) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.
4) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the license(s) involved.
Signed off by: Michael "Copro" Benz <copro@asiamann.de>

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -21,13 +21,13 @@ This tutorial describes how to set up a Minecraft server based on [Purpur](https
The most important requirement for implementation is a basic understanding of the Unix command line. All examples were tested on a current Debian/Ubuntu (November 2021) and can be easily adapted to other distributions.
The tutorial uses the example hostname `v11111111.quicksrv.de`. This hostname needs to be replaced by the name of your own server when you perform the workflow described in this tutorial. Placeholders are written like this: `<TYPE OF PLACEGOLDER>`, eg. `<USER>` should be replaced with your linux-username.
The tutorial uses the example hostname `v11111111.quicksrv.de`. This hostname needs to be replaced by the name of your own server when you perform the workflow described in this tutorial. Placeholders are written like this: `<TYPE OF PLACEHOLDER>`, e.g. `<USER>` should be replaced with your linux-username.
# Requirements
* It should be economical,
* The server should be economical,
* have sufficient CPU power, and
* it should at least 8GB of ram.
* it should at least have 8GB of ram.
The hard disk capacity, on the other hand, is not relevant.
@ -41,7 +41,7 @@ After provisioning of the server and the first login with the username `root` an
1. Change the root password by means of `passwd`.
2. Import the current security updates with `apt-get update && apt-get upgrade -y`.
3. Create a user (`adduser`) and give him root permissions (`usermod -aG sudo <USER>`)
3. Create a user (`adduser`) and give him root permissions (`usermod -aG sudo <USER>`).
3. It is recommended to set up an SSH key at this point and to disallow password login for the root user. These procedures are not part of this tutorial and as the later functionality requires root capability, the setup of an unprivileged user is omitted at this point.
# Step 3 - Install Java
@ -78,9 +78,9 @@ sleep 20s
/usr/bin/screen -dmS minecraft-server /usr/bin/java -Xms1G -Xmx5700M -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar purpur.jar nogui
echo "Successfully started"
```
If you want to use another Minecraft version, change the 1.17.1 through your Minecraft version.
If you want to use another Minecraft version, replace 1.17.1 with your Minecraft version.
Now, make the file executable, by entering `chmod +x start.sh` and start it: `./start.sh`. It should download some stuff and it should crash. That's because you have to agree to the eula in the `eula.txt`. Do this by opening the file (`nano eula.txt`)
Now, make the file executable by entering `chmod +x start.sh` and start it: `./start.sh`. It should download some stuff and it should crash. That's because you have to agree to the eula in the `eula.txt`. Do this by opening the file (`nano eula.txt`)
and changing `false` to `true`:
```diff
@ -88,10 +88,10 @@ and changing `false` to `true`:
+ eula=true
```
Now, start the `start.sh` again (`./start.sh`). You may have noticed that there is no output to the console, since it is running in the background. You can "attach" to it by running `screen -r minecraft-server` or just `screen -r`. There, you have the full console. To access the console without stopping the server, press <kbd>STRG</kbd>+<kbd>a</kbd> and after that <kbd>STRG</kbd>+<kbd>d</kbd>.
Now, start the `start.sh` again (`./start.sh`). You may have noticed that there is no output to the console since it is running in the background. You can "attach" to it by running `screen -r minecraft-server` or just `screen -r`. There, you have the full console. To access the console without stopping the server, press <kbd>STRG</kbd>+<kbd>a</kbd> and after that <kbd>STRG</kbd>+<kbd>d</kbd>.
# Step 5 - Autostart
# Step 5 - Auto-start
If you want your Minecraft server to start automatically with your server, open the crontab (`crontab -e`) and add the following line: `@reboot sleep 10s && ./home/<USER>/minecraft-server/start.sh`.
# Conclusion

View file

@ -1,147 +0,0 @@
---
title: SSH-Proxy einrichten und nutzen
description: Einen SSH-Proxy einrichten und als Jumphost oder SOCKS-Proxy nutzen.
updated_at: 2021-10-21
slug: ssh-proxy-setup-and-usage
author_name: Niki Hansche
author_url: -
author_image: -
author_bio: -
tags: [shell, ssh, linux]
netcup_product_url: https://www.netcup.de/bestellen/produkt.php?produkt=2000
language: de
available_languages: [de, en]
---
# Introduction
Dieses Tutorial beschreibt die Einrichtung und Nutzung eines einfachen SSH-Proxys,
der es erlaubt, in Umgebungen mit gesperrten Port 22 eine SSH-Verbindung zu
eigenen Servern zu nutzen. Dies hilft z. B. auf Reisen, falls der Internetzugang
in Hotels oder Ferienwohnungen beschränkt ist. Die Lesezeit beträgt etwa fünf
Minuten; die Durchführung wird etwa 45 Minuten benötigen.
Grundvoraussetzung für die Umsetzung ist ein grundlegendes Verständnis der
Unix-Kommandozeile und der Nutzung von SSH-Diensten und Proxyservern. Alle
Beispiele wurden auf einem aktuellen Debian/Ubuntu getestet. Sie sind leicht an
andere Distributionen anzupassen.
Die Nutzung des Proxys ist ebenfalls aus Sicht des Unix-Nutzers beschrieben.
Unter macOS funktioniert sie ähnlich. Für die Nutzung unter Windows sind weitere
Anpassungen notwendig, die nicht Bestandteil dieses Tutorials sind.
Das Tutorial verwendet den beispielhaften Hostnamen `v111111111111.quicksrv.de`.
Dieser ist bei der Durchführung durch den eigenen Servernamen zu ersetzen.
# Requirements
Da die vorgestellte Technik auf kurze Einsatzzeiten von Tagen bis wenigen Wochen
optimiert ist, sollte der entsprechende Server:
* Günstig sein.
* Ausreichend CPU-Leistung besitzen.
* Eine deutsche IP-Adresse haben.
Nicht relevant ist hingegen die Festplattenkapazität.
Der einfachste VPS von Netcup erfüllt diese Bedingungen komplett und ist dank
der stundenweisen Abrechnung günstig im Preis.
# Step 1 - (Buchung des VPS)
Zum Zeitpunkt der Erstellung des Tutorials ist der [VPS 200 G8][vps200g8] das
empfohlene Produkt für die Nutzung als SSH-Proxy.
Bestandskunden können das Produkt einfach und schnell hinzubuchen, Neukunden
sollten aufgrund der teilweise manuellen Überprüfungen im Prozess ein paar
Stunden Geduld mitbringen.
# Step 2 - (Grundkonfiguration des Servers)
Nach der Bereitstellung des und dem ersten Login mit dem Nutzernamen `root` und
dem per Mail übermittelten Passwort muss zuerst die Grundkonfiguration des
Servers aktualisiert werden.
1. Mittels `passwd` wird das Root-Passwort geändert.
2. Mit `apt-get update && apt-get upgrade -y` werden die aktuellen
Sicherheitsupdates eingespielt.
3. Es ist empfehlenswert, an dieser Stelle einen SSH-Schlüssel einzurichten und
das passwortbehaftete Login für den Nutzer root zu verbieten. Diese Vorgänge
sind nicht Bestandteils dieses Tutorials. Informationen dazu findet man z. B.
bei [Heise.de][heisessh]. Die spätere Funktionalität benötigt
root-Fähigkeiten, deshalb wird an dieser Stelle auf die Einrichtung eines
unpriveligierten Benutzers verzichtet.
# Step 3 (Konfiguration des SSH-Dämons)
Der SSH-Dämon lauscht für gewöhnlich am Port 22. Um ihn auch aus restriktiven
Netzen zugänglich zu machen, wird er so konfiguriert, dass er auch über die
Ports 443 (HTTPS) und 80 (HTTP) erreichbar wird. Diese sind für gewöhnlich nicht
oder weniger stark reglementiert, sodass eine gute Chance besteht, über diese
Ports freien Zugang zum Proxy und folglich zum Internet zu haben.
1. Die Datei `/etc/ssh/sshd_config` in einem Editor wie `vi` oder `nano` öffnen.
2. Die Zeile `Port 22` suchen. Vermutlich beginnt sie mit einem `#`, um
anzuzeigen, dass dies die Grundkonfiguration ist.
3. Die Datei so ändern, dass an dieser Stelle steht:
```
Port 22
Port 80
Port 443
```
4. Speichern und den Editor beenden.
5. Mit `systemctl restart ssh` den SSH-Dämon neu starten. Die aktuelle Sitzung
sollte dabei bestehen bleiben.
6. Mit `ssh -p 443 root@v111111111111.quicksrv.de` kann der Erfolg der
Konfiguration getestet werden. v111111111111.quicksrv.de bitte durch den
eigenen Hostnamen ersetzen.
Der SSH-Dämon ist jetzt erfolgreich konfiguriert und kann über die Ports 22, 80
und 443 erreicht werden.
# Step 4 (Nutzung als SOCKS-Server)
Um Chrome oder einen anderen Browser so zu nutzen, dass er jeden
Datenverkehr über den SSH-Proxy leitet, benutzt man ihn als SOCKS-Proxy. So kann
man zum Beispiel Streaming-Diensten zeigen, dass man sich tatsächlich in
Deutschland befindet, falls die Geo-Lokalisierung der eigenen IP nicht korrekt
funktioniert. Technisch gesehen ist der eigene Rechner dabei der SOCKS-Proxy,
der den SSH-Proxy zur Weiterleitung benutzt. Deswegen wird als
(SOCKS-)Proxy-Server `localhost` angegeben (siehe Abbildung).
Man startet auf dem eigenen Rechner eine SSH-Sitzung mit dem Befehl:
`ssh -p 443 -D8080 -N root@v111111111111.quicksrv.de`. Statt
v111111111111.quicksrv.de ist der korrekte Servername einzutragen.
Anschließend startet man Chrome in einem zweiten Fenster mit dem Befehl
`google-chrome --proxy-server="socks5://localhost:8080" --host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE localhost"`.
Dies führt dazu, dass Chrome den SOCKS-Proxy auch als Nameserver für die
Namensauflösung benutzt, was die Privatsphäre schützt.
![Der SOCKS-Proxy kann mit mehreren Ports gleichzeitig umgehen.](images/socks.png)
# Step 5 (Nutzung als Jump-Server)
Um auf weitere Server zuzugreifen, deren SSH-Dämon nur an Port 22 (oder einem
anderen) gebunden ist, dient der Befehl
`ssh -J root@v111111111111.quicksrv.de:443 root@meinserver.de` Statt
v111111111111.quicksrv.de ist der korrekte Proxy-Servername einzutragen; statt
meinserver.de gibt man den gewünschten Server an, zu dem man sich über den Proxy
verbinden möchte.
![Der Jump-Host vermittelt eine Verbindung weiter.](images/jump.png)
# Conclusion
Der SSH-Proxy kann jetzt genutzt werden. Es empfiehlt sich, beides vor der produktiven Nutzung zu testen.
# License
MIT
# Contributor's Certificate of Origin
Contributor's Certificate of Origin By making a contribution to this project, I certify that:
1) The contribution was created in whole or in part by me and I have the right to submit it under the license indicated in the file; or
2) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same license (unless I am permitted to submit under a different license), as indicated in the file; or
3) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.
4) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the license(s) involved.
Signed-off-by: Niki Hansche <mf-developing@hansche.de>

View file

@ -10,7 +10,7 @@ author_bio: -
tags: [shell, ssh, linux]
netcup_product_url: https://www.netcup.de/bestellen/produkt.php?produkt=2000
language: en
available_languages: [de, en]
available_languages: [en]
---
# Introduction

View file

@ -10,7 +10,7 @@ author_bio: -
tags: [mailcow, mailserver, email, docker]
netcup_product_url: https://www.netcup.de/bestellen/produkt.php?produkt=2554
language: en
available_languages: [en, de]
available_languages: [en]
---
# Introduction

View file

@ -1,199 +0,0 @@
---
title: Setup Mailserver with Mailcow
description: Learn how to setup your own mail server with Mailcow
updated_at: 2021-11-04
slug: setup-mailserver-with-mailcow
author_name: Felix Brettnich
author_url: https://fbrettnich.de
author_image: -
author_bio: -
tags: [mailcow, mailserver, email, docker]
netcup_product_url: https://www.netcup.de/bestellen/produkt.php?produkt=2554
language: de
available_languages: [en, de]
---
# Einführung
In diesem Tutorial erfährst du, wie du deinen eigenen Mailserver mithilfe von Mailcow aufsetzen und betreiben kannst.
Wir verwenden hierfür [mailcow dockerized](https://github.com/mailcow/mailcow-dockerized).
Dieses Tutorial basiert auf der [Mailcow Documentation](https://mailcow.github.io/mailcow-dockerized-docs/i_u_m_install/).
# Anforderungen
- VPS mit mindestens 6 GB Ram und 20 GB Speicherplatz _(ohne E-Mails)_
- Debian 11 _(Jede von Docker CE unterstützte Distribution)_
- Eine eigene Domain _(in unserem Beispiel `example.com`)_
# Schritt 1 - Vorbereitung: Pakete und Docker
Zu Beginn aktualisieren wir die Paketlisten und installieren `git` und `curl` mit:
```
apt update && apt upgrade
apt install git curl
```
Anschließend installieren wir Docker und Docker-Compose:
```
curl -sSL https://get.docker.com/ | CHANNEL=stable sh
systemctl enable --now docker
```
```
curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
```
# Schritt 1.1 - Vorbereitung: Domain und Hostname
Nun öffnen wir die DNS-Verwaltung unsere Domain (in diesem Beispiel verwenden wir [Cloudflare](https://www.cloudflare.com/de-de/)) und legen einen neuen `A`-Eintrag an.
Als Type wählen wir `A`,
bei Name (Subdomain) schreiben wir `mail`,
und bei IPv4-Adresse geben wir die IPv4-Adresse unseres Server an,
den Proxy-Status setzen wir auf `DNS only` (deaktiviert).
_Bei Bedarf können wir diesen Eintrag auch für unsere IPv6-Adresse wiederholen. Dafür verwenden wir den Typ `AAAA` und unsere IPv6-Adresse._
![Cloudflare DNS A Record](./images/cloudflare-dns-a.png)
Auf unserem Server setzen wir unsere Domain als Hostname:
```
hostname mail.example.com
echo "mail.example.com" > /etc/hostname
```
Anschließend müssen wir für unsere Server IP-Adresse noch einen rDNS/PTR-Eintrag im [Netcup Customer Control Panel](https://www.customercontrolpanel.de/?login_language=DE) setzen:
![Set rDNS Record](./images/netcup-rdns.png)
# Schritt 2 - Klonen der Mailcow Repository
Wir wechseln in den Ordner `/opt`
```
cd /opt
```
und klonen uns hier die neuste Version von Mailcow:
```
git clone https://github.com/mailcow/mailcow-dockerized
```
# Schritt 3 - Mailcow konfigurieren
Um Mailcow zu konfigurieren, wechseln wir in das Mailcow Verzeichnis und generieren uns die `mailcow.conf`:
```
cd mailcow-dockerized
./generate_config.sh
```
Wir werden nach unserem `Mail server hostname (FQDN)` gefragt, hier geben wir unseren Hostname aus [Schritt 1.1](#schritt-11---vorbereitung-domain-und-hostname) an.
![Generate Mailcow config](./images/mailcow-generate-config.png)
# Schritt 4 - Mailcow das erste Mal starten
Jetzt haben wir alle Basics konfiguriert und können Mailcow das erste Mal starten:
```
docker-compose pull
docker-compose up -d
```
Wir finden das Mailcow Webinterface jetzt unter `https://mail.example.com`.
Zum Anmelden verwenden wir `admin` _(Benutzername)_ und `moohoo` _(Passwort)_.
![Mailcow Login](./images/mailcow-login.png)
# Schritt 4.1 - Mailcow Admin Passwort ändern
Es ist wichtig, dass du das Admin-Passwort schnellstmöglich änderst!
Gehe auf `Zugang` und bei deinem Admin-Benutzer auf `Bearbeiten`, dort kannst du ein neues Passwort festlegen:
![Change admin password](./images/mailcow-change-password.png)
# Schritt 5 - Einrichten einer neuen Domain: Mailcow
Um E-Mails versenden und empfangen zu können, müssen wir die Domain in Mailcow hinzufügen.
Dafür gehen wir im Webinterface `Konfiguration` => `E-Mail Setup` und klicken `Domain hinzufügen`:
![Add new domain](./images/mailcow-add-domain.png)
Dort tragen wir unsere Domain `example.com` ein und klicken `Domain hinzufügen und SOGo neustarten`.
![Domain List](./images/mailcow-domain-list.png)
Um eine neue Mailbox anzulegen, gehen wir auf `Mailboxen` und klicken `Mailbox hinzufügen`:
![Mailboxes](./images/mailcow-mailboxes.png)
Hier geben wir einen `Benutzername (linker Teil der E-Mail-Adresse)` ein und setzen ein Passwort:
![Add new mailbox](./images/mailcow-new-mailbox.png)
# Schritt 5.1 - Einrichten einer neuen Domain: DNS
Damit wir E-Mails auch empfangen und richtig versenden können, müssen wir noch einige DNS-Einträge für die Domain anlegen.
Dafür wechseln wir wieder in die DNS-Verwaltung unserer Domain und legen folgende Einträge an:
**MX-Eintrag**
Type: `MX`
Name: `@` / `example.com`
Mailserver / Ziel: `mail.example.com`
Priorität: `10`
![MX Record](./images/cloudflare-mx.png)
---
**TXT-Eintrag (SPF)**
Type: `TXT`
Name: `@` / `example.com`
Content: `v=spf1 +a +mx +a:mail.example.com -all`
![TXT-SPF Record](./images/cloudflare-txt-spf.png)
---
**TXT-Eintrag (dmarc)**
Type: `TXT`
Name: `_dmarc`
Content: `v=DMARC1; p=none`
![TXT-DMARC Record](./images/cloudflare-txt-dmarc.png)
---
Für den nächsten DNS-Eintrag brauchen wir weiter Informationen aus dem Mailcow Webinterface.
Dafür gehen wir unter `Konfiguration` => `Server Konfiguration` => `Konfiguration` auf `ARC/DKIM-Keys`.
Dort kopieren wir uns den DKIM-Public-Key unserer Domain:
![DKIM Public Key](./images/mailcow-dkim-public-key.png)
**TXT-Eintrag (dkim)**
Type: `TXT`
Name: `dkim._domainkey`
Content: `<Unseren DKIM Public Key aus dem Mailcow Webinterface>`
![TXT-DKIM Record](./images/cloudflare-txt-dkim.png)
# Abschluss und Fazit
Super! Du hast erfolgreich deinen eigenen Mailserver mit Mailcow aufgesetzt und konfiguriert.
Du kannst jetzt mit deiner eigenen Domains E-Mails versenden und empfangen.
Am besten testest du das ganze einmal aus und öffnest dafür in Mailcow den Webmailclient:
![Open Webmail](./images/mailcow-open-webmail.png)
Zum Anmelden verwendest du deinen Benutzernamen / E-Mail und das festgelegte Passwort.
Du kannst zum Beispiel eine E-Mail an [mail-tester.com](https://www.mail-tester.com/) senden und schauen welchen Score du erreichst. Ideal wäre hier 10/10.
![Mailtester Score](./images/mailtester-score.png)
# License
MIT
# Contributor's Certificate of Origin
Contributor's Certificate of Origin By making a contribution to this project, I certify that:
1) The contribution was created in whole or in part by me and I have the right to submit it under the license indicated in the file; or
2) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same license (unless I am permitted to submit under a different license), as indicated in the file; or
3) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.
4) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the license(s) involved.
Signed-off-by: fbrettnich <github@fbrettnich.de>

View file

@ -36,9 +36,9 @@ apt install curl sudo wget apache2-utils nano -y
apt install squid -y
```
# Step 1.1 - Inserting the configuration
## Step 1.1 - Inserting the configuration
Now we need to insert a configuration to the Squid proxy. <br>
Now we need to add a configuration to the Squid proxy. <br>
This configuration allows you to connect to the HTTP proxy using a username and password and makes your origin IP invisible to the web servers you visit. <br>
Open the configuration:
@ -46,7 +46,7 @@ Open the configuration:
nano /etc/squid/squid.conf
```
Now add the following lines to the beginning of the file:
Add the following lines to the beginning of the file:
```
@ -62,15 +62,15 @@ Save your changes by pressing **CTRL + X**, then **Y** and finally by hitting **
## Step 1.2 - Creating users
Now we need to create users to access the proxy. <br>
In the following command, please replace "USERNAME" with the actual username you will use to log in to the proxy with a password.
In this step we need to create users to access the proxy. <br>
In the following command, please replace "USERNAME" with the actual username you will use for password login to the proxy:
```sh
htpasswd -c /etc/squid/passwords USERNAME
```
Now enter a new secure password. <br>
Repeat this step depending on how many users you need to use this proxy.
Repeat this step depending on the number of users you want to use this proxy.
## Step 1.3 - Starting Squid
@ -92,7 +92,7 @@ The restart may take a longer while.
- Activate the checkbox "Don't use the proxy server for local (intranet) addresses". <br>
- Click the "Save" button.<br>
You will sometimes be asked for one of the usernames (and related password) that we previously created in Step 1.2.
You will sometimes be asked for one of the usernames (and related password) that we previously created in [Step 1.2](#step-12---creating-users).
## Step 2.2 - Windows 10
@ -102,7 +102,7 @@ You will sometimes be asked for one of the usernames (and related password) that
- Activate the checkbox "Don't use the proxy server for local (intranet) addresses".<br>
- Click the "Save" button.<br>
You will sometimes be asked for one of the usernames (and related password) that we previously created in Step 1.2.
You will sometimes be asked for one of the usernames (and related password) that we previously created in [Step 1.2](#step-12---creating-users).
## Step 2.3 - Android
@ -112,14 +112,14 @@ You will sometimes be asked for one of the usernames (and related password) that
- Under "Address" or "Hostname" enter the IP address or the hostname of your proxy server and under "Port" add port `3128`. <br>
- Click the "Save" button. <br>
You will sometimes be asked for one of the usernames (and related password) that we previously created in Step 1.2.
You will sometimes be asked for one of the usernames (and related password) that we previously created in [Step 1.2](#step-12---creating-users).
## Step 2.4 - IOS - iPadOS
- Open your "Settings" app and go to your Wi-Fi settings. <br>
- Press your Wi-Fi network and select "Configure proxy", then select "Manual".<br>
- Under "Server" enter the IP address or the hostname of your proxy server and under "Port" add port `3128`. <br>
- Activate the "Authentication" checkbox and enter your username (and related password) that we previously created in Step 1.2. <br>
- Activate the "Authentication" checkbox and enter your username (and related password) that we previously created in [Step 1.2](#step-12---creating-users). <br>
- Now click the upper button to save.
## Step 2.5 - macOS
@ -129,7 +129,7 @@ You will sometimes be asked for one of the usernames (and related password) that
- Enter your IP address or the hostname of your proxy server and port `3128`. <br>
- Click "Ok" and then "Apply". <br>
Now if you are asked for it (you may need to reboot), enter your username (and related password) that we previously created in Step 1.2.
Now if you are asked for it (you may need to reboot), enter your username (and related password) that we previously created in [Step 1.2](#step-12---creating-users).
## Step 2.6 - Linux
@ -142,7 +142,7 @@ apt install curl sudo wget nano -y
sudo nano /etc/environment
```
Now add the following lines replacing `username` with an actual username and define a `password` for the user. This is one of the users we previously created in Step 1.2. Also, replace "hostname" with the IP address or the hostname of your proxy server and "port" with port `3128`:
Now add the following lines replacing `username` with an actual username and define a `password` for the user. This is one of the users we previously created in [Step 1.2](#step-12---creating-users). Also, replace "hostname" with the IP address or the hostname of your proxy server and "port" with port `3128`:
```sh
http_proxy="http://<username>:<password>@<hostname>:<port>/"
@ -150,7 +150,7 @@ https_proxy="http://<username>:<password>@<hostname>:<port>/"
no_proxy="localhost,127.0.0.1,::1"
```
Now save your changes by pressing **CTRL + X**, pressing **Y** and finally by hitting \*\*Enter".
Now save your changes by pressing **CTRL + X**, pressing **Y** and finally by hitting **Enter**.
# Conclusion

View file

@ -15,7 +15,7 @@ available_languages: en
# Introduction
Especially on systems with little RAM, it can happen from time to time that the available memory becomes scarce and the system start to use swap memory. As swap memory is typically located on the hard drive, it is relatively slow compared to RAM and thus may impact the system's performance.
Especially on systems with little RAM, it can happen from time to time that the available memory becomes scarce and the system starts to use swap memory. As swap memory is typically located on the hard drive, it is relatively slow compared to RAM and thus may impact the system's performance.
A remedy is provided by a technology integrated in the Linux kernel called zRam. It creates a compressing block device directly in the computer's RAM. The kernel first occupies the available RAM and then tries to compress parts of it into zRam. It effectively only moves data within the RAM, which is magnitudes faster than swapping to disk. This technique, therefore, allows more data to be accommodated in memory. Practically, this results in the system not having to swap to a slower hard disk as quickly. The price is a slightly increased processor load which usually has a much smaller impact than swapping to disk.
@ -33,7 +33,7 @@ sudo apt install zram-tools
# Step 2 - Adjust the configuration
Edit the configuration file with your favorite text editor, e.g. `sudo vim /etc/defaults/zramswap`:
Edit the configuration file with your favorite text editor, e.g. `sudo editor /etc/default/zramswap`:
```
# EXAMPLE Configuration
@ -101,7 +101,7 @@ vm.dirty_background_ratio=1
vm.dirty_ratio=50
```
The configuration above works well on systems with low memory. We start swapping early (as we want to use our zRam as early as possible) and have set a high cache pressure to reduce memory consumption in the long run. For a full explanation of the settings take a look here: [https://www.kernel.org/doc/Documentation/sysctl/vm.txt](https://www.kernel.org/doc/Documentation/sysctl/vm.txt)
The configuration above works well on systems with low memory. We start swapping early (as we want to use our zRam as early as possible) and have set a high cache pressure to reduce memory consumption in the long run. For a full explanation of the settings take a look here: [https://www.kernel.org/doc/html/latest/admin-guide/sysctl/vm.html](https://www.kernel.org/doc/html/latest/admin-guide/sysctl/vm.html)
# License