diff --git a/wiki/*arr.md b/wiki/*arr.md new file mode 100644 index 0000000..9293761 --- /dev/null +++ b/wiki/*arr.md @@ -0,0 +1,31 @@ +# \*ARR + +\*ARR application is a class of applications made as personal video recorders in +the usenet and [BitTorrent](/wiki/bittorrent.md) domain. +These applications include but are not limited to +[Sonarr](https://github.com/Sonarr/Sonarr) for +[TV shows](/wiki/movies_&_tv_shows.md), +[Radarr](https://github.com/Radarr/Radarr) for +[movies](/wiki/movies_&_tv_shows.md) and +[Lidarr](https://github.com/Lidarr/Lidarr) for [music](/wiki/audio.md). + +## Setup + +For the different applications there are different [Docker](/wiki/docker.md) +containers for setup: +[Linuxservers Sonarr image](/wiki/docker-images/linuxserver_-_sonarr.md), +[Linuxservers Radarr image](/wiki/docker-images/linuxserver_-_radarr.md) and +[Linuxservers Lidarr image](/wiki/docker-images/linuxserver_-_lidarr.md). + +### Initial Configuration + +For the initial configuration navigate to `System` and `Status`. +Afterwards check if there are any messages. +There are probably a few steps that need to be taken to complete the setup. +Set the `Download Clients` under `Settings`. +For this an instance of a [BitTorrent Client](/wiki/bittorrent.md#clients) can +be used. +Next an indexer needs to be added. +For this [Jackett](/wiki/jackett.md) can be used. +A guide to add Jackett indexers is featured in +[the Jackett entry](/wiki/jackett.md#adding-a-jackett-indexer-to-arr-applications). diff --git a/wiki/airsonic-advanced.md b/wiki/airsonic-advanced.md new file mode 100644 index 0000000..dafd310 --- /dev/null +++ b/wiki/airsonic-advanced.md @@ -0,0 +1,49 @@ +# Airsonic-Advanced + +[Airsonic-Advanced](https://github.com/airsonic-advanced/airsonic-advanced) is +a free and open-source personal media streamer used for +[music, podcasts and audiobooks](./audio.md). +It is a more modern implementation of [Airsonic](./airsonic.md) which in turn +is a fork of [Subsonic](./subsonic.md). + +## Setup + +The software can be setup via docker with the +[linuxserver image](./docker-images/linuxserver_-_airsonic-advanced.md). + +### Initial configuration + +The administration username after installation is `admin`. +The password is `admin` too. +After installing the server make sure to change this password. +If the password was changed there are two entries in the credentials table in +the credentials tab of the settings. +The first credential with id `0` uses the encoder plaintext which is +deprecated. +The second one with id `1` is the changed password which uses the encoder +bcrypt. +Make sure to delete the credential with id `0`. +This entry is not secure due to its encoder type. +When using clients as described in [the relating section](#clients) make sure +to set up the credentials according to the following instructions. +To make the clients log in work with the server store the Airsonic credentials +with a decodable encoder. +Select `Add credentials` and select `encrypted-AES-GCM` as encoder. +Type in the Airsonic password and confirm it and create the new credential. +Log in with the clients now works correctly. + +### Clients + +It is possible to use many different clients because the server is compatible +with all the Subsonic clients. +These can be found in the [Subsonic entry](./subsonic.md#clients). + +## Scrobbling with Last.fm + +To set up the scrobbling of music with Last.fm check +`Register what I'm playing at Last.fm` in the personal tab of the settings. +Following this the Last.fm credentials need to be added under the credentials +tab. +Select `Add credentials`, set the App to Last.fm and put in the Last.fm +password. +After the creation of credentials in this way the music will be scrobbled. diff --git a/wiki/airsonic.md b/wiki/airsonic.md index b67fe3c..d35d51a 100644 --- a/wiki/airsonic.md +++ b/wiki/airsonic.md @@ -1,17 +1,19 @@ # Airsonic -Airsonic is a free and open-source personal media streamer. -It is a fork of [Subsonic](./subsonic.md) and thus is compatible with -most of its clients. +[Airsonic](https://github.com/airsonic/airsonic) is a free and open-source +personal media streamer used for [music,podcasts and audiobooks](./audio.md). +It is a fork of [Subsonic](./subsonic.md). +Airsonic is not maintained anymore and therefore deprecated. +A more modern implementation of it is +[Airsonic-Advanced](./airsonic-advanced.md). -## Server +## Set up -A server can be setup via docker with the [linuxserver image](./docker-images/linuxserver_-_airsonic.md). +The software can be setup via [Docker](/wiki/docker.md) with the +[linuxserver image](./docker-images/linuxserver_-_airsonic.md). -## Client +### Clients -As already mentioned it is possible to use a bunch of different clients because -the server is compatible with most of the Subsonic clients. - -- [Ultrasonic](https://www.f-droid.org/en/packages/org.moire.ultrasonic) is a - free and open-source android subsonic/airsonic client. +It is possible to use many different clients because the server is compatible +with all the Subsonic clients. +These can be found in the [Subsonic entry](./subsonic.md#clients). diff --git a/wiki/android/f-droid.md b/wiki/android/f-droid.md index b74fb34..2b1b541 100644 --- a/wiki/android/f-droid.md +++ b/wiki/android/f-droid.md @@ -3,6 +3,6 @@ [F-Droid](https://f-droid.org) is an installable catalogue of free and open source software for Android systems. -## Installation +## Setup To install F-Droid simply download and run the [apk](https://f-droid.org/F-Droid.apk). diff --git a/wiki/audio.md b/wiki/audio.md new file mode 100644 index 0000000..a5b42f4 --- /dev/null +++ b/wiki/audio.md @@ -0,0 +1,132 @@ +# Audio + +Music, audiobooks and podcast are widely enjoyed. +There are multiple different approaches on how to get them onto your system +depending on your needs. +This entry describes how to handle audio data. +Music and Audiobooks can be obtained by buying the digital files or by +[extracting them off of a CD](#extract-audio-files-from-cds). +Podcasts need a so called Podcatcher. +A Podcatcher is used to subscribe to podcasts and download them automatically. + +## Media Software + +If you want to keep your system clean of much data, you can use this kind of +setup. +There are differences depending on your preffered software interface. + +### Software for Music/Podcasts/Audiobooks + +- [Subsonic](./subsonic.md) is a media streamer for music, podcasts and + audiobooks. + Subsonic is self-hostable. + Subsonic that can be dockerized and has a web-interface aswell as several + clients that can be used. + There are also the free and open-source implementations - that feature all the + same features and using its API - named [Airsonic](./airsonic.md) (no longer + maintained) and its inofficial successor [Airsonic-advanced](./airsonic.md). + +### Software for Podcasts + +- [Podgrab](./podgrab.md) is a free and open-source podcatcher that can also be + used to listen to them. + It is self-hostable and can be dockerized. + It has a web-interface and does not feature client software. + +## Audio Formats + +An audio format is an encoding of an audio file. +There are lossy and lossless formats, the latter not compromising quality for +smaller file sizes. +Following is a list of often used formats: + +- wav is an uncompressed lossless format +- aiff is an uncompressed lossless format +- [flac](./flac_(codec).md) is a compressed lossless format +- alac is a compressed lossless format +- ape is a compressed lossless format +- mp3 is a compressed lossy codec +- aac is a compressed lossy codec +- wma is a compressed lossy codec +- ac3 is a compressed lossy codec usually found in DVDs +- dts is a compressed lossy codec usually found in DVDs + +### Lossy and Lossless Formats and Their Conversion + +Music files can either be encoded lossy or lossless. +Lossless formats can be converted from and to each other without loosing +information. +Lossless formats can also be converted to lossy formats to make the files +smaller and save space. +Files should not be converted to lossy formats more than once. +Additionally lossy formats should not be converted to lossless formats as it +increases the file size without adding any audio information. +These not recommended conversions are called bad conversions. + +#### Detect Bad Conversions + +The bitrate, format and the sample rate can be usually checked with simple +tools. +For Linux a simple software solution for this is the `file` command. +Running it will display these features of a given audio file. +This will however only display the format features. +Bad convserions as described in +[the previous section](#lossy-and-lossless-formats-and-their-conversion) can not +be detected by this. +A spectral analysis can detect bad conversions. +For this a audio analyzer like +[Sonic Visualizer](https://www.sonicvisualiser.org/) is needed. +Select a audio file and press `Add Spectogram` under `Layer`. +This will display a spectogram. +Music off of a retail CD and lossless songs have frequencies that extend up to +22kHz and can extend even further for hi-res music. +If the frequency extends up to at least 22kHz the file is lossless for sure. +If the frequency is cut before and the file is encoded in a lossless file it has +undergone a bad conversion and is not really lossless. + +## Extract Audio Files from CDs + +You can convert your CDs to files on your computer. +This way you don't have to search for your CDs all the time. + +- [Exact Audio Copy](https://www.exactaudiocopy.de) for windows can rip music + and automatically tag it with the help of a list of databases. +- [metaflac](./linux/flac_(package).md) for linux is a programm + to edit the tags of [flac](./flac_(codec).md) files from the command line. + It is bundled in the `flac` package for debian and arch based systems. +- [MusicBrainz Picard](./picard.md) for linux is a + graphical user interface for tagging files of many different formats. + +## Analysis of Different Versions of an Album + +While deciding on what version of an album is the best visit +[Dynamic Range DB](https://dr.loudness-war.info). +It shows dynamic range scorings of each version. + +## Get Additional Data to an Album/Single + +If additional information for an album is needed, visit +[Discogs](https://www.discogs.com). +Discogs has tracklists, dates and more information to nearly all versions of +albums and singles. + +## Naming Convention + +It is suggested to place the audio files in a directory named after the album they +belong to. +These album directories are placed in directories named after the album artist. +Files can be named in the following scheme: + +- music: `[.].__-_` +- audiobooks: `[<discnumber>.]<tracknumber>._<artist>_-_<album>_<tracknumber>` + +## Cue Files + +`.cue` files act as a table of contents for a CD rip. +These can be created when the +[audio of a CD is extracted](#extract-audio-files-from-cds). +Usually this appears together with a single file for the whole CD. +The audio file can then be split according to the `.cue` file. +For splitting of `.flac` files on a Linux system check the +[a flac (package) entry](/wiki/linux/flac_(package).md#splitting-flac-file-according-to-cue-file) +for further informations. diff --git a/wiki/bibliogram.md b/wiki/bibliogram.md index 4bca633..99a53dc 100644 --- a/wiki/bibliogram.md +++ b/wiki/bibliogram.md @@ -2,14 +2,18 @@ [Bibliogram](https://sr.ht/~cadence/bibliogram/) is an alternative frontend for Instagram. +Please note that Bibliogram is now officially discontinued according to +[the developer](https://cadence.moe/blog/2022-09-01-discontinuing-bibliogram) +as it is not possible anymore to show user pages but only single posts. -## Server +## Setup -A server can be setup via docker with the [cloudrac3r image](./docker-images/cloudrac3r_-_bibliogram.md). +The software can be setup via [Docker](/wiki/docker.md) with the +[cloudrac3r image](./docker-images/cloudrac3r_-_bibliogram.md). ## Automatic redirect from Instagram -There are various addons to redirect from Instagram links to your (or a public) +There are various add-ons to redirect from Instagram links to your (or a public) Bibliogram instance. For Firefox for example there is [privacy redirect](https://addons.mozilla.org/en-US/firefox/addon/privacy-redirect/). diff --git a/wiki/bind.md b/wiki/bind.md new file mode 100644 index 0000000..968ddc6 --- /dev/null +++ b/wiki/bind.md @@ -0,0 +1,200 @@ +# Bind + +[Bind](https://www.isc.org/bind/) is an open-source software suite for +interacting with the [DNS](./dns.md). + +## Setup + +The software can be setup via docker with the +[ventz image](./docker-images/ventz_-_bind.md). + +## Usage + +The following sections describe various use cases for Bind and how to set up +specific domains. + +### Configure Local DNS server with forwarding + +After setting up the server. +Look into the file `/etc/bind/named.conf.options`. +Change it to something like the following lines. +Note that `192.168.178.0/24` is the subnet that is used mainly in this example. +Only queries from within it will be handled. +The forwarders `8.8.8.8` and `8.8.4.4` can be changed according to the specific +needs. + +```txt +acl "trusted" { + 192.168.178.0/24; + localhost; + localnets; +}; + +options { + directory "/var/cache/bind"; + listen-on-v6 { any; }; + recursion yes; # enables resursive queries + allow-query { trusted; }; # allows recursive queries from "trusted" clients + allow-transfer { none; }; # disable zone transfers by default + + forwarders { + 8.8.8.8; + 8.8.4.4; + }; + forward only; + + dnssec-enable yes; + dnssec-validation yes; + + auth-nxdomain no; +}; +``` + +### Configure local domains + +This section explains how to add local domains for local systems. +It is explicitly compatible with the +[previous section](#setup-a-local-dns-server-with-forwarding). +Locate the `named.conf.local` file in the `/etc/bind` directory. +Add the forward zone first. +Substitute `<domain>` and `<tld>` to your wishes. + +```txt +zone "<domain>.<tld>" IN { + type master; + file "/etc/bind/extra-zones/zone.<domain>.<tld>"; +}; +``` + +Then add the reverse zone. +The following lines assume the subnet is at `192.168.178.0/24`. +Note the reverse subnet address without the `.0/24` in the lines. + +```txt +zone "178.168.192.in-addr.arpa" { + type master; + file "/etc/bind/extra-zones/revp.178.168.192"; +}; +``` + +Following this create the directory `/etc/bind/extra-zones/`. +Then place the file `zone.<domain>.<tld>` inside it with the following content: + +```txt +$TTL 1D +@ IN SOA <domain>.<tld>. <thisserver>.<domain>.<tld> ( + 200405191 ; serial + 8H ; refresh + 4H ; retry + 4W ; expire + 1D ) ; minimum +@ NS <servername> + +<servername> A <ip of server> +``` + + +To make the server you operate on the nameserver select a subdomain for it and +subsitute `<servername>` for it and its IP address `<ip of server>`. +The following uses a filled in example with multiple subdomains. +It uses CNAME records as a placeholder for the ip. +In the last section the domain itself `home.server` is mapped to the ip +`192.168.178.16`. +This cannot be done with CNAME as `home.server` is already mapped as a +nameserver and assigning it multiple times is not supported. + +```txt +$TTL 1D +@ IN SOA home.server. kenny.home.server ( + 200405191 ; serial + 8H ; refresh + 4H ; retry + 4W ; expire + 1D ) ; minimum +@ NS kenny + +bag IN CNAME kenny +home IN CNAME kenny +links IN CNAME kenny +search IN CNAME kenny +speedtest IN CNAME kenny +sync.kenny IN CNAME kenny +www IN CNAME kenny + +audio IN CNAME quentin +insta IN CNAME quentin +jelly IN CNAME quentin +media IN CNAME quentin +music IN CNAME quentin +plex IN CNAME quentin +reddit IN CNAME quentin +rss IN CNAME quentin +sync.quentin IN CNAME quentin +transmission IN CNAME quentin +tv IN CNAME quentin +twitter IN CNAME quentin +yt IN CNAME quentin + +folding IN CNAME sheldon + +home.server. IN A 192.168.178.16 +localhost IN A 127.0.0.1 +kenny IN A 192.168.178.16 +mario IN A 192.168.178.15 +quentin IN A 192.168.178.18 +sheldon IN A 192.168.178.19 +``` + +More [DNS records](./dns.md#records) can be added. +Most importantly used and needed for [reverse proxies](./reverse-proxy.md) are +[A records](./dns.md#a-record) and [CNAME records](./dns.md#cname-record). + +Then create `/etc/bind/extra-zones/revp.178.168.192` and fill it with the +following lines. + +```txt +$ORIGIN 178.168.192.in-addr.arpa. +$TTL 1D +@ IN SOA <domain>.<tld>. <thisserver>.<domain>.<tld>. ( + 200405190 ; serial + 28800 ; refresh + 14400 ; retry + 2419200 ; expire + 86400 ; minimum + ) +@ IN NS <thisserver>.<domain>.<tld>. + +<last part of ipv4> IN PTR <thisserver>.<domain>.<tld>. +``` + +Additionally add all domain names in front of the first `(` that have been +added in the `zone.<domain>.<tld>` file as an [A record](./dns.md#a-record). +Note that all these have to be followed by a `.` just like +`<thisserver>.<domain>.<tld>.` is. +For all these records add a PTR record too. +The first part of the PTR line is part of the IP address. +To get the full address add it to the subnet. +In this case this server has the IP `192.168.178.15`. + +An example of `/etc/bind/extra-zones/revp.178.168.192` that is compatible with +the previous examples is shown in the following. + +```txt +$ORIGIN 178.168.192.in-addr.arpa. +$TTL 1D +@ IN SOA home.server. kenny.home.server. ( + 200405190 ; serial + 28800 ; refresh + 14400 ; retry + 2419200 ; expire + 86400 ; minimum + ) +@ IN NS kenny.home.server. +1 IN PTR fritz.box. +16 IN PTR kenny.home.server. +18 IN PTR quentin.home.server. +19 IN PTR sheldon.home.server. +``` + +According to your IPs and domains you may need to create multiple `revp.` or +`zone.` files and need to map them back to `named.conf.local`. diff --git a/wiki/bittorrent.md b/wiki/bittorrent.md new file mode 100644 index 0000000..4a14ace --- /dev/null +++ b/wiki/bittorrent.md @@ -0,0 +1,30 @@ +# BitTorrent + +[BitTorrent](https://www.bittorrent.org) is a communication protocol for +peer-to-peer file sharing. +In BitTorrent context Leeching describes the process of only downloading a +file, seeding describes the download followed by also uploading it. + +## Clients + +There are various clients to use for BitTorrent down- and uploading. +The list below shows clients with an existing entry in this wiki. + +- [Transmission](/wiki/transmission.md) is an easy to use client +- [qBittorrent](/wiki/qbittorrent.md) is a very feature rich client + +## Personal Video Recorders + +There are a bunch of applications intended as personal video recorders for +usenet or BitTorrent usage. +These include the so called [\*ARR applications](/wiki/*arr.md). +Usually an indexer application like [Jackett](/wiki/jackett.md) is needed. + +## Legal Situation + +This is not a legal advice. +Take your local laws into account when downloading torrents. +Some torrents can be copyright infringing and therefor illegal to download. +Only download legal and safe torrents like the +[Arch Linux ISO](/wiki/linux/arch-linux/arch-linux.md#iso-medium). +Seeding it can help the community. diff --git a/wiki/calibre.md b/wiki/calibre.md new file mode 100644 index 0000000..deee176 --- /dev/null +++ b/wiki/calibre.md @@ -0,0 +1,11 @@ +# Calibre + +[Calibre](https://calibre-ebook.com/) is a cross-platform, free and open-source +software suite for [e-book](/wiki/e-books.md) management. +It supports various formats aswell as conversion between them. + +## Adding a Plugin + +A plugin by a third party can be added by selecting a `.zip` archive - usually +named `<plugin name>_plugin.zip` - under Preferences, Plugins, Load plugin from +file. diff --git a/wiki/cue_sheet.md b/wiki/cue_sheet.md new file mode 100644 index 0000000..0ba66cc --- /dev/null +++ b/wiki/cue_sheet.md @@ -0,0 +1,51 @@ +# Cue sheet + +A cue sheet is a metadata file containing information for the tracks of a CD or +a file [ripped](./audio.md#extract-audio-files-from-cds) from it. + +## Example file + +To understand the structure of a cue file the following lines show the contents +of an example cue file. All lines starting with `REM`, `PERFORMER` or `TITLE` +are optional. The following example is taken from the +[wikipedia article](https://en.wikipedia.org/wiki/Cue_sheet_(computing)): + +```cue +REM GENRE Electronica +REM DATE 1998 +PERFORMER "Faithless" +TITLE "Live in Berlin" +FILE "Faithless - Live in Berlin.mp3" MP3 + TRACK 01 AUDIO + TITLE "Reverence" + PERFORMER "Faithless" + INDEX 01 00:00:00 + TRACK 02 AUDIO + TITLE "She's My Baby" + PERFORMER "Faithless" + INDEX 01 06:42:00 + TRACK 03 AUDIO + TITLE "Take the Long Way Home" + PERFORMER "Faithless" + INDEX 01 10:54:00 + TRACK 04 AUDIO + TITLE "Insomnia" + PERFORMER "Faithless" + INDEX 01 17:04:00 + TRACK 05 AUDIO + TITLE "Bring the Family Back" + PERFORMER "Faithless" + INDEX 01 25:44:00 + TRACK 06 AUDIO + TITLE "Salva Mea" + PERFORMER "Faithless" + INDEX 01 30:50:00 + TRACK 07 AUDIO + TITLE "Dirty Old Man" + PERFORMER "Faithless" + INDEX 01 38:24:00 + TRACK 08 AUDIO + TITLE "God Is a DJ" + PERFORMER "Faithless" + INDEX 01 42:35:00 +``` diff --git a/wiki/cups.md b/wiki/cups.md index f4374e8..66ff8b4 100644 --- a/wiki/cups.md +++ b/wiki/cups.md @@ -1,15 +1,23 @@ -# Cups +# CUPS -## Server +[CUPS](https://www.cups.org/) is a open source printing software developed for +unix and unix-like systems. -A server can be setup via docker with the [linuxserver image](./docker-images/linuxserver_-_airsonic.md). +## Setup -## Client +The software can be setup via [Docker](/wiki/docker.md) with the +[linuxserver image](./docker-images/linuxserver_-_airsonic.md). +Additionally to this a client is needed on the system that need access to the +server software. + +### Client + +To use CUPS an additional client software is needed. For Linux computers follow these instructions: -- Install the cups-client package (in Arch Linux it is included in `cups`) +- Install the CUPS-client package (in Arch Linux it is included in `cups`) - Edit `/etc/cups/client.conf` and insert `ServerName <ip to print-server>:631` -- Restart the cups service: `systemctl restart cups` +- Restart the CUPS service: `systemctl restart cups` - Test connectivity: `lpstat -r` - Check the detected printers with: `lpstat -v` diff --git a/wiki/dns.md b/wiki/dns.md index b448be8..b09ebf8 100644 --- a/wiki/dns.md +++ b/wiki/dns.md @@ -4,9 +4,12 @@ The Domain Name System (DNS) is a naming system for computers or other resources connected to a network. It associates various information with domain names. -## Server +## Software suites for DNS interaction -A server can be setup via docker with the [ventz image](./docker-images/ventz_-_bind.md) +The following list shows possible DNS software suites that can be used to set +up a DNS server. + +- [Bind](./bind.md) is a open source package for setting up DNS ## Records diff --git a/wiki/docker-images/alexta69_-_metube.md b/wiki/docker-images/alexta69_-_metube.md new file mode 100644 index 0000000..e5517d1 --- /dev/null +++ b/wiki/docker-images/alexta69_-_metube.md @@ -0,0 +1,55 @@ +# alexta69 - metube + +This is a [Docker](/wiki/docker.md) container for a [MeTube](/wiki/metube.md) +server. +The official container and documentation was made by +[alexta69](https://github.com/alexta69/metube). +This docker-rebuild is made up by a `docker-compose.yml` file. + +## Set-up + +Create the files `rebuild.sh` and `docker-compose.yml` at the same place. +Change the settings according to your needs and run `./rebuild.sh` afterwards. + +## Volumes + +Set the following volumes in the `volumes:` section of the docker-compose file. + +| Outside mount/volume name | Container mount | Description | +| ------------------------- | --------------- | ------------------------------------ | +| `downloads` | `/downloads` | folder to download data to | + +## Ports + +Set the following ports in the `ports:` section. + +| Container Port | Recommended outside port | Protocol | Description | +| -------------- | ------------------------ | -------- | ----------- | +| `8881` | `8081` | TCP | WebUI | + +## rebuild.sh + +```sh +#!/bin/sh +docker-compose down +docker pull vim alexta69/metube +docker-compose up -d +``` + +## docker-compose.yml + +```yml +version: "3" +services: + metube: + image: alexta69/metube + restart: unless-stopped + ports: + - "8881:8081" + volumes: + - downloads:/downloads + +volumes: + downloads: + driver: local +``` diff --git a/wiki/docker-images/awesometechnologies_-_synapse-admin.md b/wiki/docker-images/awesometechnologies_-_synapse-admin.md index f96add2..a4e4660 100644 --- a/wiki/docker-images/awesometechnologies_-_synapse-admin.md +++ b/wiki/docker-images/awesometechnologies_-_synapse-admin.md @@ -1,9 +1,15 @@ # awesometechnologies - synapse-admin +This is a [Docker](/wiki/docker.md) container for a Synapse server of [Matrix](../matrix.md). The official container and documentation was made by [awesometechnologies](https://hub.docker.com/awesometechnologies/synapse-admin). This docker-rebuild is made up by a `docker-compose.yml` file. +## Set-up + +Create the files `rebuild.sh` and `docker-compose.yml` at the same place. +Change the settings according to your needs and run `./rebuild.sh` afterwards. + ## Ports Set the following ports in the `ports:` section. @@ -14,7 +20,7 @@ Set the following ports in the `ports:` section. ## rebuild.sh -```shell +```sh #!/bin/sh docker-compose down docker pull awesometechnologies/synapse-admin:latest diff --git a/wiki/docker-images/axhilrex_-_podgrab.md b/wiki/docker-images/axhilrex_-_podgrab.md new file mode 100644 index 0000000..5f29171 --- /dev/null +++ b/wiki/docker-images/axhilrex_-_podgrab.md @@ -0,0 +1,51 @@ +# axhilrex - podgrab + +This is a [Docker](/wiki/docker.md) container for a [Podgrab](../podgrab.md) +server. +The official container and documentation was made by +[axhilrex](https://github.com/akhilrex/podgrab). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. + +## Environment-variables + +Set the following variables with the -e tag. + +| Name | Usage | Default | +| ---------- | ----------------------------- | ------- | +| `PASSWORD` | Password for `podgrab` user | | + +## Volumes + +Set the following volumes with the -v tag. + +| Outside mount/volume name | Container mount | Description | +| ------------------------- | --------------- | ----------------------- | +| `podgrab_config` | `/config` | Configuration files | +| `media_podcasts` | `/assets` | location for podcasts | + +## Ports + +Set the following ports with the -p tag. + +| Container Port | Recommended outside port | Protocol | Description | +| -------------- | ------------------------ | -------- | ----------- | +| `8080` | `8080` | TCP | WebUI | + +## rebuild.sh + +```sh +#!/bin/sh +docker stop podgrab +docker rm podgrab +docker pull akhilrex/podgrab +docker run --name=podgrab \ + --restart unless-stopped \ + -p 8000:8080 \ + -v "media_podcasts:/assets" \ + -v "podgrab_config:/config" \ + -d akhilrex/podgrab +``` diff --git a/wiki/docker-images/b4bz_-_homer.md b/wiki/docker-images/b4bz_-_homer.md index 9155be4..6680f85 100644 --- a/wiki/docker-images/b4bz_-_homer.md +++ b/wiki/docker-images/b4bz_-_homer.md @@ -1,7 +1,16 @@ # b4bz - homer +This is a [Docker](/wiki/docker.md) container for a Homer static site. The official container and documentation was made by [b4bz](https://hub.docker.com/r/b4bz/homer). +## Set-up + +Create the file `rebuild.sh`. +Run `./rebuild.sh` afterwards to create the volumes. +Place the file `config.yml` in the `homer` docker volume and change it to your +needs. +After that rerun `./rebuild.sh` to make update your config. + ## Volumes Set the following volumes with the -v tag. @@ -20,7 +29,7 @@ Set the following ports with the -p tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop homer docker rm homer diff --git a/wiki/docker-images/benbusby_-_whoogle-search.md b/wiki/docker-images/benbusby_-_whoogle-search.md new file mode 100644 index 0000000..71ae787 --- /dev/null +++ b/wiki/docker-images/benbusby_-_whoogle-search.md @@ -0,0 +1,69 @@ +# benbusby - whoogle-search + +This is a [Docker](/wiki/docker.md) container for a [whoogle](../whoogle.md) +meta-search machine. +The official container and documentation was made by +[benbusby](https://github.com/benbusby/whoogle-search). + +## Set-up + +First of all create a folder for your `rebuild.sh`. +After that clone whoogle from +[github](https://github.com/benbusby/whoogle-search) into a folder within the +just created folder. +You can find the `docker-compose.yml` in the cloned directory. +Set the variables, volumes and ports according and run the `rebuild.sh`. + +## Volumes + +Set the following volumes with the -v tag. + +| Outside mount/volume name | Container mount | Description | +| ------------------------- | ---------------- | ---------------- | +| `searx_config` | `/config` | configurations | + +## Ports + +Set the following ports with the -p tag. + +| Container Port | Recommended outside port | Protocol | Description | +| -------------- | ------------------------ | -------- | ----------- | +| `5000` | `8000` | TCP | WebUI | + +## rebuild.sh + +```sh +#!/bin/sh +cd whoogle-search +docker-compose down +docker-compose up -d +cd .. +``` + +## docker-compose.yml + +```yml +version: "2.2" + +services: + whoogle-search: + image: ${WHOOGLE_IMAGE:-benbusby/whoogle-search} + container_name: whoogle-search + restart: unless-stopped + user: whoogle + security_opt: + - no-new-privileges + cap_drop: + - ALL + tmpfs: + - /config/:size=10M,uid=927,gid=927,mode=1700 + - /var/lib/tor/:size=15M,uid=927,gid=927,mode=1700 + - /run/tor/:size=1M,uid=927,gid=927,mode=1700 + volumes: + - config:/config + ports: + - 8000:5000 + +volumes: + config: +``` diff --git a/wiki/docker-images/bilde2910_-_hauk.md b/wiki/docker-images/bilde2910_-_hauk.md new file mode 100644 index 0000000..ff08a08 --- /dev/null +++ b/wiki/docker-images/bilde2910_-_hauk.md @@ -0,0 +1,64 @@ +# bilde2910 - Hauk + +This is a docker container for a [Hauk](../hauk.md). + +## Set-up + +Create the files `rebuild.sh` and `docker-compose.yml` at the same place. +Additionally create a `config.php` file based on the +[config-sample](https://github.com/bilde2910/Hauk/blob/master/backend-php/include/config-sample.php) +at the location specified in your `docker-compose.yml` (in this example it's +`./config/hauk`). +Change the config according to your needs. +Do not change anything starting with `memcached` inside the `config.php`. +Most importantly set the `public_url` correctly. +For a simple multi-user setup set `auth_method` to `HTPASSWD`. +Then inside the same folder of `config.php` run the following command to setup +the first and optionally more users. + +```sh +htpasswd -cBC 10 /etc/hauk/users.htpasswd <first user name> +htpasswd -BC 10 /etc/hauk/users.htpasswd <other user name> +``` + +Finally run `./rebuild.sh`. + +## Volumes + +Set the following volumes in the `volumes:` section of the docker-compose file. + +| Outside mount/volume name | Container mount | Description | +| ------------------------- | ------------------ | ------------------------------ | +| `./config/hauk` | `/etc/hauk` | config and password location | + +## Ports + +Set the following ports in the `ports:` section. + +| Container Port | Recommended outside port | Protocol | Description | +| -------------- | ------------------------ | -------- | ---------------------- | +| `80` | `80` | TCP | Basic service | + +## rebuild.sh + +```sh +#!/bin/sh +docker-compose down +docker pull bilde2910/hauk +docker-compose up -d +``` + +## docker-compose.yml + +```yml +version: "2" + +services: + hauk: + image: bilde2910/hauk + restart: unless-stopped + volumes: + - ./config/hauk:/etc/hauk + ports: + - "80:80" +``` diff --git a/wiki/docker-images/chocobozzz_-_peertube.md b/wiki/docker-images/chocobozzz_-_peertube.md new file mode 100644 index 0000000..bb77c05 --- /dev/null +++ b/wiki/docker-images/chocobozzz_-_peertube.md @@ -0,0 +1,120 @@ +# chocobozz - peertube + +This is a [Docker](/wiki/docker.md) container for a [PeerTube](../peertube.md) +server. +The official container and documentation was made by +[chocobozz](https://github.com/chocobozzz/peertube). +This docker-rebuild is made up by a `docker-compose.yml` file. +In addition to the main container you need to connect a +[redis container](./redis.md) to it. + +## Set-up + +Create the files `rebuild.sh`, `.env` and `docker-compose.yml` at the same +place. +Change the settings according to your needs and run `./rebuild.sh` afterwards. + +## Ports + +Set the following ports in the `ports:` section. + +| Container Port | Recommended outside port | Protocol | Description | +| -------------- | ------------------------ | -------- | ----------- | +| `9000` | `9000` | TCP | WebUI | + +## Volumes + +Set the following volumes with the -v tag. + +| Outside mount/volume name | Container mount | Description | +| ------------------------- | -------------------------- | ---------------------- | +| `assets` | `/app/client/dist` | storage for icons, etc | +| `config` | `/config` | configuration data | +| `data` | `/data` | further data storage | + +## rebuild.sh + +```sh +#!/bin/sh +docker-compose down +docker-compose up -d +``` + +## .env + +```txt +TZ="Europe/Berlin" + +PT_INITIAL_ROOT_PASSWORD=<root password> +PEERTUBE_ADMIN_EMAIL=<admin email> +PEERTUBE_WEBSERVER_HOSTNAME=<domain> +PEERTUBE_WEBSERVER_PORT=<port> + + + +POSTGRES_USER=peertube +POSTGRES_PASSWORD=<postgres password> +POSTGRES_DB=peertube + + + +PEERTUBE_DB_USERNAME=peertube +PEERTUBE_DB_PASSWORD=<db password> +PEERTUBE_DB_SSL=false +PEERTUBE_DB_HOSTNAME=postgres + +PEERTUBE_TRUST_PROXY=["127.0.0.1", "loopback", "172.18.0.0/16"] + +# E-mail configuration +PEERTUBE_SMTP_USERNAME=<smtp email> +PEERTUBE_SMTP_PASSWORD=<smtp password> +PEERTUBE_SMTP_HOSTNAME=mail.<domain> +PEERTUBE_SMTP_PORT=587 +PEERTUBE_SMTP_FROM=<smtp email> +PEERTUBE_SMTP_TLS=false +PEERTUBE_SMTP_DISABLE_STARTTLS=false +``` + +## docker-compose.yml + +```yml +version: "3.3" + +services: + + peertube: + image: chocobozzz/peertube:production-bullseye + ports: + - "9000:9000" + env_file: + - .env + volumes: + - assets:/app/client/dist + - data:/data + - config:/config + depends_on: + - postgres + - redis + restart: unless-stopped + + postgres: + image: postgres:13-alpine + env_file: + - .env + volumes: + - db:/var/lib/postgresql/data + restart: unless-stopped + + redis: + image: redis:6-alpine + volumes: + - redis:/data + restart: unless-stopped + +volumes: + assets: + data: + config: + db: + redis: +``` diff --git a/wiki/docker-images/cloudrac3r_-_bibliogram.md b/wiki/docker-images/cloudrac3r_-_bibliogram.md index b91bc84..d00a22c 100755 --- a/wiki/docker-images/cloudrac3r_-_bibliogram.md +++ b/wiki/docker-images/cloudrac3r_-_bibliogram.md @@ -1,15 +1,18 @@ # cloudrac3r - bibliogram -The official container and documentation was made by [cloudrac3r](https://github.com/cloudrac3r/bibliogram). +This is a [Docker](/wiki/docker.md) container for the alternative Instagram +frontend [Bibliogram](../bibliogram.md). +The official container and documentation was made by +[cloudrac3r](https://github.com/cloudrac3r/bibliogram). This docker-rebuild is made up by a `docker-compose.yml` file. -## Set-up for building process +## Set-up First of all create a folder for your `rebuild.sh`. -After that clone bibliogram from [sr.ht](https://sr.ht/~cadence/bibliogram/) -into a folder within the just created folder. -Set the variables, volumes and ports in the `docker-compose.yml` in the cloned -repository according and run the `rebuild.sh` +After that clone bibliogram from [sr.ht](https://sr.ht/~cadence/bibliogram/) into +a folder within the just created folder. +You can find the `docker-compose.yml` in the cloned directory. +Set the variables, volumes and ports according and run the `rebuild.sh`. ## Volumes @@ -29,7 +32,7 @@ Set the following ports in the `ports:` section. ## rebuild.sh -```shell +```sh #!/bin/sh cd /root/docker/bibliogram/bibliogram docker-compose down diff --git a/wiki/docker-images/dperson_-_torproxy.md b/wiki/docker-images/dperson_-_torproxy.md index d42bc04..7160ee1 100644 --- a/wiki/docker-images/dperson_-_torproxy.md +++ b/wiki/docker-images/dperson_-_torproxy.md @@ -1,7 +1,13 @@ # dperson - torproxy +This is a [Docker](/wiki/docker.md) container for a [Tor](../tor.md) proxy. The container and documentation was made by [dperson](https://hub.docker.com/r/dperson/torproxy). +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. + ## Volumes Set the following volumes with the -v tag. @@ -15,14 +21,14 @@ Set the following volumes with the -v tag. Set the following ports with the -p tag. -| Container Port | Recommended outside port | Protocol | Description | -| -------------- | ------------------------ | -------- | ------------------- | -| `8118` | `8118` | TCP | privoxy web proxy | -| `9050` | `9050` | TCP | socks protocol port | +| Container Port | Recommended outside port | Protocol | Description | +| -------------- | ------------------------ | -------- | -------------------- | +| `8118` | `8118` | HTTP | privoxy web proxy | +| `9050` | `9050` | SOCKS | socks protocol proxy | ## rebuild.sh -```shell +```sh #!/bin/sh docker stop tor-proxy docker rm tor-proxy diff --git a/wiki/docker-images/dyonr_-_jackettvpn.md b/wiki/docker-images/dyonr_-_jackettvpn.md new file mode 100644 index 0000000..235492a --- /dev/null +++ b/wiki/docker-images/dyonr_-_jackettvpn.md @@ -0,0 +1,54 @@ +# dyonr - jackettvpn + +This is a [Docker](/wiki/docker.md) container for a [VPN](/wiki/vpn.md) +protected [Jackett](/wiki/jackett.md) server. +The official container and documentation was made by +[dyonr](https://github.com/DyonR/docker-Jackettvpn). + +## Set-up + +Create the file `rebuild.sh` and set `<username>` and `<password>` according to +your openvpn. +Additionally change the `LAN_NETWORK` if it differs for your local area network. +Run `./rebuild.sh` afterwards to create the volumes. +Place the openvpn certificate in the `jacket_config` docker volume inside the +`openvpn` folder. +After that rerun `./rebuild.sh` to make update your config. + +## Volumes + +Set the following volumes with the -v tag. + +| Outside mount/volume name | Container mount | Description | +| ------------------------- | --------------- | ---------------------- | +| `jackett_config` | `/config` | storage for configs | +| `jackett_blackhole` | `/blackhole` | storage for magnets | + +## Ports + +Set the following ports with the -p tag. + +| Container Port | Recommended outside port | Protocol | Description | +| -------------- | ------------------------ | -------- | ----------- | +| `9117` | `9117` | TCP | WebUI | + +## rebuild.sh + +```sh +docker stop jackett +docker rm jackett +docker pull dyonr/jackettvpn +docker run --name jackett \ + --restart unless-stopped \ + -p 9117:9117 \ + -v jackett_config:/config \ + -v jackett_blackhole:/blackhole \ + -e "VPN_ENABLED=yes" \ + -e "VPN_TYPE=openvpn" \ + -e "VPN_USERNAME=<username>" \ + -e "VPN_PASSWORD=<password>" \ + -e "LAN_NETWORK=192.168.178.0/24" \ + --privileged \ + -d dyonr/jackettvpn + +``` diff --git a/wiki/docker-images/dyonr_-_qbittorrentvpn.md b/wiki/docker-images/dyonr_-_qbittorrentvpn.md new file mode 100644 index 0000000..32592d8 --- /dev/null +++ b/wiki/docker-images/dyonr_-_qbittorrentvpn.md @@ -0,0 +1,76 @@ +# dyonr - qbittorrentvpn + +This is a [Docker](/wiki/docker.md) container for a +[qBittorrent](../qbittorrent.md) server that is connected to the internet via +an [openVPN tunnel](/wiki/vpn.md). +The official container and documentation was made by +[dyonr](https://github.com/DyonR/docker-qbittorrentvpn). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. +The default username of the web interface is `admin`. +The default password is `adminadmin`. +Both can be changed in the web interface after setup. + +## Environment-variables + +Set the following variables with the -e tag. + +| Name | Usage | Default | +| ------------------- | --------------------------- | ------- | +| `VPN_ENABLE` | Enable VPN | ` ` | +| `VPN_USERNAME` | Username for OpenVPN | ` ` | +| `VPN_PASSWORD` | Password for OpenVPN | ` ` | +| `LAN_NETWORK` | Subnet of the local network | ` ` | + +## Volumes + +Set the following volumes with the -v tag. + +| Outside mount/volume name | Container mount | Description | +| ------------------------- | ------------------- | ----------------------- | +| `qbittorrentvpn_config` | `/config` | Configuration files | +| `qbittorrentvpn_data` | `/downloads` | Storage for data | + +## Ports + +Set the following ports with the -p tag. + +| Container Port | Recommended outside port | Protocol | Description | +| -------------- | ------------------------ | -------- | ----------- | +| `9091` | `8080` | TCP | WebUI | + +## Additional + +There are some special variables to set. + +| Flag | Usage | +| ----------- | ---------------------- | +| `--cap-add` | add linux capabilities | +| `--device` | connect devices | +| `--sysctl` | configure systemctl | + +## rebuild.sh + +```sh +#!/bin/sh +docker stop qbittorrentvpn +docker rm qbittorrentvpn +docker pull dyonr/qbittorrentvpn +docker run --name qbittorrentvpn \ + --restart unless-stopped \ + -p 9091:8080 \ + -v qbittorrentvpn_config:/config \ + -v qbittorrentvpn_data:/downloads \ + -e "VPN_ENABLED=yes" \ + -e "VPN_TYPE=openvpn" \ + -e "VPN_USERNAME=username" \ + -e "VPN_PASSWORD=password" \ + -e "LAN_NETWORK=192.168.0.0/16" \ + --cap-add NET_ADMIN \ + --device /dev/net/tun \ + --sysctl "net.ipv4.conf.all.src_valid_mark=1" \ + -d dyonr/qbittorrentvpn +``` diff --git a/wiki/docker-images/gitea_-_gitea.md b/wiki/docker-images/gitea_-_gitea.md index 1719727..0fa6b78 100644 --- a/wiki/docker-images/gitea_-_gitea.md +++ b/wiki/docker-images/gitea_-_gitea.md @@ -1,10 +1,16 @@ # gitea - gitea +This is a [Docker](/wiki/docker.md) container for a [Gitea](../gitea.md). The Server consists of 2 Docker containers, one is the gitea main server and one is a database. In addition to the main container you need to connect a [mySQL container](./mysql.md) to it. +## Set-up + +Create the files `rebuild.sh` and `docker-compose.yml` at the same place. +Change the settings according to your needs and run `./rebuild.sh` afterwards. + ## Environment-variables Set the following environment-variables in the `environment:` section of the @@ -58,7 +64,7 @@ docker-compose file. ## rebuild.sh -```shell +```sh #!/bin/sh docker-compose down docker-compose up -d diff --git a/wiki/docker-images/haugene_-_transmission-openvpn.md b/wiki/docker-images/haugene_-_transmission-openvpn.md new file mode 100644 index 0000000..c77f4f5 --- /dev/null +++ b/wiki/docker-images/haugene_-_transmission-openvpn.md @@ -0,0 +1,71 @@ +# haugene - transmission-openvpn + +This is a [Docker](/wiki/docker.md) container for a +[transmission](../transmission.md) server that is connected to the internet via +an [openVPN tunnel](/wiki/vpn.md). +The official container and documentation was made by +[haugene](https://github.com/haugene/docker-transmission-openvpn). + +## Set-up + +Create the file `rebuild.sh`. +To see which providers are supported take a look at the +[official documentation](https://haugene.github.io/docker-transmission-openvpn/supported-providers/). +Change the settings according to your needs and run `./rebuild.sh` afterwards. + +## Environment-variables + +Set the following variables with the -e tag. + +| Name | Usage | Default | +| ------------------- | --------------------------- | ------- | +| `OPENVPN_PROVIDER` | Provider for OpenVPN | ` ` | +| `OPENVPN_USERNAME` | Username for OpenVPN | ` ` | +| `OPENVPN_PASSWORD` | Password for OpenVPN | ` ` | +| `LOCAL_NETWORK` | Subnet of the local network | ` ` | +| `CREATE_TUN_DEVICE` | Use a tunnel device | ` ` | +| `WEBPROXY_ENABLES` | Use a webproxy | ` ` | + +## Volumes + +Set the following volumes with the -v tag. + +| Outside mount/volume name | Container mount | Description | +| ------------------------- | --------------- | ----------------------- | +| `transmission_config` | `/config` | Configuration files | +| `transmission data` | `/data` | Storage for data | +| `/etc/localtime` | `/etc/localtime:ro` | Link to the systemtime | + +## Ports + +Set the following ports with the -p tag. + +| Container Port | Recommended outside port | Protocol | Description | +| -------------- | ------------------------ | -------- | ----------- | +| `9091` | `9091` | TCP | WebUI | + +## rebuild.sh + +```sh +#!/bin/sh +docker stop transmission +docker rm transmission +docker pull haugene/transmission-openvpn +docker run --name transmission \ + --restart unless-stopped \ + --cap-add NET_ADMIN \ + -v /etc/localtime:/etc/localtime:ro \ + -v transmission_data:/data \ + -v transmission_config:/config \ + -e OPENVPN_PROVIDER=<vpn provider> \ + -e OPENVPN_CONFIG=<vpn_-_country-udp> \ + -e OPENVPN_USERNAME=<username> \ + -e OPENVPN_PASSWORD=<password> \ + -e LOCAL_NETWORK=192.168.178.0/24 \ + -e CREATE_TUN_DEVICE=true \ + -e WEBPROXY_ENABLES=false \ + --log-driver json-file \ + --log-opt max-size=50m \ + -p 9091:9091 \ + -d haugene/transmission-openvpn +``` diff --git a/wiki/docker-images/henrywhitaker3_-_speedtest-tracker.md b/wiki/docker-images/henrywhitaker3_-_speedtest-tracker.md index 7bd98ef..6696dc8 100644 --- a/wiki/docker-images/henrywhitaker3_-_speedtest-tracker.md +++ b/wiki/docker-images/henrywhitaker3_-_speedtest-tracker.md @@ -1,6 +1,14 @@ # henrywhitaker3 - speedtest-tracker -The official container and documentation was made by [henrywhitaker3](https://hub.docker.com/r/henrywhitaker3/speedtest-tracker). +This is a [Docker](/wiki/docker.md) container for a selfhosted internet speed +tracker. +The official container and documentation was made by +[henrywhitaker3](https://hub.docker.com/r/henrywhitaker3/speedtest-tracker). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Environment-variables @@ -29,7 +37,7 @@ Set the following ports with the -p tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop speedtest docker rm speedtest diff --git a/wiki/docker-images/itzg_-_minecraft-server.md b/wiki/docker-images/itzg_-_minecraft-server.md index 5197f59..fcc25a9 100755 --- a/wiki/docker-images/itzg_-_minecraft-server.md +++ b/wiki/docker-images/itzg_-_minecraft-server.md @@ -1,6 +1,14 @@ # itzg - minecraft-server -The container and documentation was made by [itzg](https://hub.docker.com/r/itzg/minecraft-server). +This is a [Docker](/wiki/docker.md) container for a +[Minecraft](../games/minecraft.md) server. +The container and documentation was made by +[itzg](https://hub.docker.com/r/itzg/minecraft-server). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Environment-variables @@ -34,7 +42,7 @@ Set the following ports with the -p tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop minecraft docker rm minecraft diff --git a/wiki/docker-images/iv-org_-_invidious.md b/wiki/docker-images/iv-org_-_invidious.md index 1975bf9..8c9b8b6 100755 --- a/wiki/docker-images/iv-org_-_invidious.md +++ b/wiki/docker-images/iv-org_-_invidious.md @@ -1,14 +1,21 @@ # iv-org - invidious -The official container and documentation was made by [invidious](https://github.com/iv-org/invidious). +This is a [Docker](/wiki/docker.md) container for [Invidious](../invidious.md). +The official container and documentation was made by +[invidious](https://github.com/iv-org/invidious). This docker-rebuild is made up by a `docker-compose.yml` file. There is no official pre-build on docker-hub. +In addition to the main container you need to connect a +[postgres container](./postgres.md) to it. -## Set-up for building process +## Set-up First of all create a folder for your `rebuild.sh`. -After that clone invidious from github into a folder within the just created folder. -Set the variables, volumes and ports according and run the `rebuild.sh` +After that clone invidious from +[github](https://github.com/iv-org/invidious) into a folder within the +just created folder. +You can find the `docker-compose.yml` in the cloned directory. +Set the variables, volumes and ports according and run the `rebuild.sh`. ## Environment-variables @@ -41,11 +48,12 @@ Set the following ports in the `ports:` section. ## rebuild.sh -```shell +```sh #!/bin/sh cd invidious docker-compose down -docker pull postgres:10 +docker pull quay.io/invidious/invidious:latest +docker pull docker.io/library/postgres:14 docker-compose up -d cd .. ``` @@ -55,45 +63,54 @@ cd .. ```yml version: "3" services: - postgres: - image: postgres:10 - restart: unless-stopped - volumes: - - postgresdata:/var/lib/postgresql/data - - ./config/sql:/config/sql - - ./docker/init-invidious-db.sh:/docker-entrypoint-initdb.d/init-invidious-db.sh - environment: - POSTGRES_DB: invidious - POSTGRES_PASSWORD: kemal - POSTGRES_USER: kemal - healthcheck: - test: ["CMD", "pg_isready", "-U", "postgres"] + invidious: - build: - context: . - dockerfile: docker/Dockerfile + image: quay.io/invidious/invidious:latest restart: unless-stopped ports: - "3000:3000" environment: - # Adapted from ./config/config.yml + # Please read the following file for a comprehensive list of all available + # configuration options and their associated syntax: + # https://github.com/iv-org/invidious/blob/master/config/config.example.yml INVIDIOUS_CONFIG: | - channel_threads: 1 - check_tables: true - feed_threads: 1 db: + dbname: invidious user: kemal password: kemal - host: postgres + host: invidious-db port: 5432 - dbname: invidious - full_refresh: false + check_tables: true + # external_port: + domain: sub.domain.tld https_only: false - registration_enabled: false popular_enabled: false - domain: yt.home.server + #registration_enabled: false + # statistics_enabled: false + default_user_preferences: + dark_mode: true + default_home: "Subscriptions" + healthcheck: + test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/comments/jNQXAC9IVRw || exit 1 + interval: 30m + timeout: 5m + retries: 3 depends_on: - - postgres + - invidious-db + + invidious-db: + image: docker.io/library/postgres:14 + restart: unless-stopped + volumes: + - postgresdata:/var/lib/postgresql/data + - ./config/sql:/config/sql + - ./docker/init-invidious-db.sh:/docker-entrypoint-initdb.d/init-invidious-db.sh + environment: + POSTGRES_DB: invidious + POSTGRES_USER: kemal + POSTGRES_PASSWORD: kemal + healthcheck: + test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"] volumes: postgresdata: diff --git a/wiki/docker-images/jkarlos_-_git-server-docker.md b/wiki/docker-images/jkarlos_-_git-server-docker.md index 04804a7..c584a20 100644 --- a/wiki/docker-images/jkarlos_-_git-server-docker.md +++ b/wiki/docker-images/jkarlos_-_git-server-docker.md @@ -1,6 +1,13 @@ # jkarlos - git-server-docker -The official container and documentation was made by [jkarlos](https://hub.docker.com/r/jkarlos/git-server-docker). +This is a [Docker](/wiki/docker.md) container for a [git](../git.md) server. +The official container and documentation was made by +[jkarlos](https://hub.docker.com/r/jkarlos/git-server-docker). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Volumes @@ -21,7 +28,7 @@ Set the following ports with the -p tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop git-server docker rm git-server diff --git a/wiki/docker-images/johnktims_-_folding-at-home.md b/wiki/docker-images/johnktims_-_folding-at-home.md index 3d06409..51be612 100644 --- a/wiki/docker-images/johnktims_-_folding-at-home.md +++ b/wiki/docker-images/johnktims_-_folding-at-home.md @@ -1,6 +1,14 @@ # johnktims - folding-at-home -The official container and documentation was made by [johnktims](https://hub.docker.com/r/johnktims/folding-at-home). +This is a [Docker](/wiki/docker.md) container for +[Folding@home](https://foldingathome.org/). +The official container and documentation was made by +[johnktims](https://hub.docker.com/r/johnktims/folding-at-home). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Ports @@ -22,11 +30,11 @@ There are some special variables to set. ### GPU -GPU support is documented in [the docker entry](../docker.md). +GPU support is documented in [the docker article](../docker.md). ## rebuild.sh -```shell +```sh #!/bin/sh docker stop folding-at-home docker rm folding-at-home diff --git a/wiki/docker-images/jonohill_-_docker-openvpn-proxy.md b/wiki/docker-images/jonohill_-_docker-openvpn-proxy.md new file mode 100644 index 0000000..5fc2a0f --- /dev/null +++ b/wiki/docker-images/jonohill_-_docker-openvpn-proxy.md @@ -0,0 +1,68 @@ +# jonohill - docker-openvpn-proxy + +This is a [Docker](/wiki/docker.md) container for an +[OpenVPN proxy](/wiki/vpn.md#proxy). +The official container and documentation was made by +[jonohill](https://github.com/jonohill/docker-openvpn-proxy). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. + +## Volumes + +Set the following volumes with the -v tag. + +| Outside mount/volume name | Container mount | Description | +| ------------------------- | --------------- | ------------------------ | +| `ovpn-proxy` | `/config` | storage for openvpn data | + +## Ports + +Set the following ports with the -p tag. + +| Container Port | Recommended outside port | Protocol | Description | +| -------------- | ------------------------ | -------- | ------------ | +| `9050` | `8080` | HTTP | proxy port | + +## Environment-variables + +Set the following variables with the -e tag. + +| Name | Usage | Default | +| ------------------- | --------------------------- | ------- | +| `LOCAL_NETWORK` | Set local network subnet | ` ` | +| `OPENVPN_USERNAME` | username for OpenVPN | ` ` | +| `OPENVPN_PASSWORD` | password for OpenVPN | ` ` | + +## Additional + +There are some special variables to set. + +| Flag | Usage | +| ----------- | ---------------------- | +| `--cap-add` | add linux capabilities | +| `--device` | connect devices | +| `--sysctl` | configure systemctl | + +## rebuild.sh + +```sh +#!/bin/sh +docker stop openvpn-proxy +docker rm openvpn-proxy +docker pull jonoh/openvpn-proxy +docker run --name openvpn-proxy \ + --restart unless-stopped \ + -p "9050:8080" \ + -v "openvpn-proxy:/config" \ + -e LOCAL_NETWORK=192.168.178.0/24 \ + -e OPENVPN_USERNAME="<OVPN_USERNAME>" \ + -e OPENVPN_PASSWORD="<OVPN_PASSWORD>" \ + --cap-add=NET_ADMIN \ + --device /dev/net/tun \ + --sysctl net.ipv6.conf.all.disable_ipv6=0 \ + -d jonoh/openvpn-proxy + +``` diff --git a/wiki/docker-images/kylemanna_-_openvpn.md b/wiki/docker-images/kylemanna_-_openvpn.md index a4177e9..e1bd7cf 100644 --- a/wiki/docker-images/kylemanna_-_openvpn.md +++ b/wiki/docker-images/kylemanna_-_openvpn.md @@ -1,6 +1,14 @@ # kylemanna - openvpn -The official container and documentation was made by [kylemanna](https://hub.docker.com/r/kylemanna/openvpn). +This is a [Docker](/wiki/docker.md) container for an +[OpenVPN server](/wiki/vpn.md). +The official container and documentation was made by +[kylemanna](https://hub.docker.com/r/kylemanna/openvpn). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Volumes @@ -28,7 +36,7 @@ There are some special variables to set. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop openvpn docker rm openvpn diff --git a/wiki/docker-images/linuxserver_-_airsonic-advanced.md b/wiki/docker-images/linuxserver_-_airsonic-advanced.md new file mode 100644 index 0000000..a24e229 --- /dev/null +++ b/wiki/docker-images/linuxserver_-_airsonic-advanced.md @@ -0,0 +1,63 @@ +# linuxserver - airsonic-advanced + +This is a [Docker](/wiki/docker.md) container for a +[Airsonic-Advanced](../airsonic-advanced.md) server. +The official container and documentation was made by +[linuxserver](https://github.com/linuxserver/docker-airsonic-advanced). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. + +## Environment-variables + +Set the following variables with the -e tag. + +| Name | Usage | Default | +| ------ | -------- | ------- | +| `PUID` | UserID | | +| `PGID` | GroupID | | +| `TZ` | Timezone | | + +## Volumes + +Set the following volumes with the -v tag. + +| Outside mount/volume name | Container mount | Description | +| ------------------------- | --------------- | ----------------------- | +| `airsonicadv_config` | `/config` | Configuration files | +| `airsonic_media` | `/media` | Various other media | +| `media_playlists` | `/playlists` | Location for playlists | +| `media_music` | `/music` | Location for music | +| `media_audiobooks` | `/audiobooks` | Location for audiobooks | +| `media_podcasts` | `/podcasts` | location for podcasts | + +## Ports + +Set the following ports with the -p tag. + +| Container Port | Recommended outside port | Protocol | Description | +| -------------- | ------------------------ | -------- | ----------- | +| `4040` | `4040` | TCP | WebUI | + +## rebuild.sh + +```sh +#!/bin/sh +docker stop airsonicadv +docker rm airsonicadv +docker pull lscr.io/linuxserver/airsonic-advanced:latest +docker run --name=airsonicadv \ + --restart unless-stopped \ + -p 4040:4040 \ + -v airsonicadv_config:/config \ + -v media_music:/music \ + -v media_playlists:/playlists \ + -v media_podcasts:/podcasts \ + -v media_audiobooks:/media \ + -e PUID=0 \ + -e PGID=0 \ + -e TZ=Europe/Berlin \ + -d lscr.io/linuxserver/airsonic-advanced:latest +``` diff --git a/wiki/docker-images/linuxserver_-_airsonic.md b/wiki/docker-images/linuxserver_-_airsonic.md index dac1688..32b6f8a 100644 --- a/wiki/docker-images/linuxserver_-_airsonic.md +++ b/wiki/docker-images/linuxserver_-_airsonic.md @@ -1,6 +1,14 @@ # linuxserver - airsonic -The official container and documentation was made by [linuxserver](https://hub.docker.com/r/linuxserver/airsonic). +This is a [Docker](/wiki/docker.md) container for a [airsonic](../airsonic.md) +server. +The official container and documentation was made by +[linuxserver](https://hub.docker.com/r/linuxserver/airsonic). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Environment-variables @@ -35,7 +43,7 @@ Set the following ports with the -p tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop airsonic docker rm airsonic diff --git a/wiki/docker-images/linuxserver_-_jellyfin.md b/wiki/docker-images/linuxserver_-_jellyfin.md index 39e961b..852cb3e 100644 --- a/wiki/docker-images/linuxserver_-_jellyfin.md +++ b/wiki/docker-images/linuxserver_-_jellyfin.md @@ -1,8 +1,16 @@ # linuxserver - jellyfin -The official container and documentation was made by [linuxserver](https://hub.docker.com/linuxserver/jellyfin). +This is a [Docker](/wiki/docker.md) container for a [jellyfin](../jellyfin.md) +server. +The official container and documentation was made by +[linuxserver](https://hub.docker.com/r/linuxserver/jellyfin). This docker-rebuild is made up by a `docker-compose.yml` file. +## Set-up + +Create the files `rebuild.sh` and `docker-compose.yml` at the same place. +Change the settings according to your needs and run `./rebuild.sh` afterwards. + ## Environment-variables Set the following environment-variables in the `environment:` section of the @@ -42,7 +50,7 @@ Set the following ports in the `ports:` section. ## rebuild.sh -```shell +```sh #!/bin/sh docker-compose down docker pull linuxserver/jellyfin:latest diff --git a/wiki/docker-images/linuxserver_-_lidarr.md b/wiki/docker-images/linuxserver_-_lidarr.md new file mode 100644 index 0000000..0af1538 --- /dev/null +++ b/wiki/docker-images/linuxserver_-_lidarr.md @@ -0,0 +1,86 @@ +# linuxserver - lidarr + +This is a [Docker](/wiki/docker.md) container for a [Lidarr](/wiki/*arr.md) +server. +The official container and documentation was made by +[linuxserver](https://hub.docker.com/r/linuxserver/lidarr). + +## Set-up + +Create the files `rebuild.sh` and `docker-compose.yml` at the same place. +Change the settings according to your needs and run `./rebuild.sh` afterwards. +It is recommended to set a download completed folder with the same internal and +external mounts as your [BitTorent](/wiki/bittorrent.md) client. +This guide uses the same mounts as used in the +[Transmission](/wiki/transmission.md) +[Docker container](/wiki/docker-images/haugene_-_transmission-openvpn.md). +This namely causes the following line in the +[`docker-compose.yml`](#docker-composeyml). + +```txt + - /var/lib/docker/volumes/transmission_data/_data/completed:/data/completed #optional +``` + +## Environment-variables + +Set the following environment-variables in the `environment:` section of the +docker-compose file. + +| Name | Usage | Default | +| --------------------- | --------------------------- | ----------------------- | +| `PUID` | user id for container user | `1000` | +| `PGID` | group id for container user | `1000` | +| `TZ` | specify the timezone | `Etc/UTC` | + +## Volumes + +Set the following volumes in the `volumes:` section of the docker-compose file. + +| Outside mount/volume name | Container mount | Description | +| ------------------------- | ----------------- | --------------------------------- | +| `config` | `/config` | directory for config | +| `complete` | `/music` | directory for music | + +## Ports + +Set the following ports in the `ports:` section. + +| Container Port | Recommended outside port | Protocol | Description | +| -------------- | ------------------------ | -------- | ------------ | +| `8686` | `8686` | TCP | webUI | + +## rebuild.sh + +```sh +#!/bin/sh +docker-compose down +docker pull lscr.io/linuxserver/lidarr:latest +docker-compose up -d +``` + +## docker-compose.yml + +```yml +version: "2.1" +services: + lidarr: + image: lscr.io/linuxserver/lidarr:latest + container_name: lidarr + environment: + - PUID=0 + - PGID=0 + - TZ=Etc/UTC + volumes: + - config:/config + - complete:/music #optional + - /var/lib/docker/volumes/transmission_data/_data/completed:/data/completed #optional + ports: + - 8686:8686 + restart: unless-stopped + +volumes: + config: + driver: local + complete: + driver: local +``` diff --git a/wiki/docker-images/linuxserver_-_radarr.md b/wiki/docker-images/linuxserver_-_radarr.md new file mode 100644 index 0000000..53bcccb --- /dev/null +++ b/wiki/docker-images/linuxserver_-_radarr.md @@ -0,0 +1,86 @@ +# linuxserver - radarr + +This is a [Docker](/wiki/docker.md) container for a [Radarr](/wiki/*arr.md) +server. +The official container and documentation was made by +[linuxserver](https://hub.docker.com/r/linuxserver/radarr). + +## Set-up + +Create the files `rebuild.sh` and `docker-compose.yml` at the same place. +Change the settings according to your needs and run `./rebuild.sh` afterwards. +It is recommended to set a download completed folder with the same internal and +external mounts as your [BitTorent](/wiki/bittorrent.md) client. +This guide uses the same mounts as used in the +[Transmission](/wiki/transmission.md) +[Docker container](/wiki/docker-images/haugene_-_transmission-openvpn.md). +This namely causes the following line in the +[`docker-compose.yml`](#docker-composeyml). + +```txt + - /var/lib/docker/volumes/transmission_data/_data/completed:/data/completed #optional +``` + +## Environment-variables + +Set the following environment-variables in the `environment:` section of the +docker-compose file. + +| Name | Usage | Default | +| --------------------- | --------------------------- | ----------------------- | +| `PUID` | user id for container user | `1000` | +| `PGID` | group id for container user | `1000` | +| `TZ` | specify the timezone | `Etc/UTC` | + +## Volumes + +Set the following volumes in the `volumes:` section of the docker-compose file. + +| Outside mount/volume name | Container mount | Description | +| ------------------------- | ----------------- | --------------------------------- | +| `config` | `/config` | directory for config | +| `complete` | `/movies` | directory for music | + +## Ports + +Set the following ports in the `ports:` section. + +| Container Port | Recommended outside port | Protocol | Description | +| -------------- | ------------------------ | -------- | ------------ | +| `7878` | `7878` | TCP | webUI | + +## rebuild.sh + +```sh +#!/bin/sh +docker-compose down +docker pull lscr.io/linuxserver/radarr:latest +docker-compose up -d +``` + +## docker-compose.yml + +```yml +version: "2.1" +services: + radarr: + image: lscr.io/linuxserver/radarr:latest + container_name: radarr + environment: + - PUID=0 + - PGID=0 + - TZ=Etc/UTC + volumes: + - config:/config + - complete:/movies #optional + - /var/lib/docker/volumes/transmission_data/_data/completed:/data/completed #optional + ports: + - 7878:7878 + restart: unless-stopped + +volumes: + config: + driver: local + complete: + driver: local +``` diff --git a/wiki/docker-images/linuxserver_-_sonarr.md b/wiki/docker-images/linuxserver_-_sonarr.md new file mode 100644 index 0000000..ba870ff --- /dev/null +++ b/wiki/docker-images/linuxserver_-_sonarr.md @@ -0,0 +1,86 @@ +# linuxserver - sonarr + +This is a [Docker](/wiki/docker.md) container for a [Sonarr](/wiki/*arr.md) +server. +The official container and documentation was made by +[linuxserver](https://hub.docker.com/r/linuxserver/sonarr). + +## Set-up + +Create the files `rebuild.sh` and `docker-compose.yml` at the same place. +Change the settings according to your needs and run `./rebuild.sh` afterwards. +It is recommended to set a download completed folder with the same internal and +external mounts as your [BitTorent](/wiki/bittorrent.md) client. +This guide uses the same mounts as used in the +[Transmission](/wiki/transmission.md) +[Docker container](/wiki/docker-images/haugene_-_transmission-openvpn.md). +This namely causes the following line in the +[`docker-compose.yml`](#docker-composeyml). + +```txt + - /var/lib/docker/volumes/transmission_data/_data/completed:/data/completed #optional +``` + +## Environment-variables + +Set the following environment-variables in the `environment:` section of the +docker-compose file. + +| Name | Usage | Default | +| --------------------- | --------------------------- | ----------------------- | +| `PUID` | user id for container user | `1000` | +| `PGID` | group id for container user | `1000` | +| `TZ` | specify the timezone | `Etc/UTC` | + +## Volumes + +Set the following volumes in the `volumes:` section of the docker-compose file. + +| Outside mount/volume name | Container mount | Description | +| ------------------------- | ----------------- | --------------------------------- | +| `config` | `/config` | directory for config | +| `complete` | `/tv` | directory for music | + +## Ports + +Set the following ports in the `ports:` section. + +| Container Port | Recommended outside port | Protocol | Description | +| -------------- | ------------------------ | -------- | ------------ | +| `8989` | `8989` | TCP | webUI | + +## rebuild.sh + +```sh +#!/bin/sh +docker-compose down +docker pull lscr.io/linuxserver/sonarr:latest +docker-compose up -d +``` + +## docker-compose.yml + +```yml +version: "2.1" +services: + sonarr: + image: lscr.io/linuxserver/sonarr:latest + container_name: sonarr + environment: + - PUID=0 + - PGID=0 + - TZ=Etc/UTC + volumes: + - config:/config + - complete:/tv #optional + - /var/lib/docker/volumes/transmission_data/_data/completed:/data/completed #optional + ports: + - 8989:8989 + restart: unless-stopped + +volumes: + config: + driver: local + complete: + driver: local +``` diff --git a/wiki/docker-images/linuxserver_-_syncthing.md b/wiki/docker-images/linuxserver_-_syncthing.md index 19cb9e1..5adbd58 100644 --- a/wiki/docker-images/linuxserver_-_syncthing.md +++ b/wiki/docker-images/linuxserver_-_syncthing.md @@ -1,6 +1,14 @@ # linuxserver - syncthing -The official container and documentation was made by [linuxserver](https://hub.docker.com/r/linuxserver/syncthing). +This is a [Docker](/wiki/docker.md) container for syncthing for +[file synchronization](../file-synchronization.md). +The official container and documentation was made by +[linuxserver](https://hub.docker.com/r/linuxserver/syncthing). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Environment-variables @@ -33,7 +41,7 @@ Set the following ports with the -p tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop syncthing docker rm syncthing diff --git a/wiki/docker-images/linuxserver_-_tvheadend.md b/wiki/docker-images/linuxserver_-_tvheadend.md new file mode 100644 index 0000000..9312344 --- /dev/null +++ b/wiki/docker-images/linuxserver_-_tvheadend.md @@ -0,0 +1,72 @@ +# linuxserver - tvheadend + +This is a [Docker](/wiki/docker.md) container for a [TVHeadend](../tvheadend.md) +server. +The official container and documentation was made by +[linuxserver](https://hub.docker.com/r/linuxserver/tvheadend). + +## Set-up + +Create the files `rebuild.sh` and `docker-compose.yml` at the same place. +Change the settings according to your needs and run `./rebuild.sh` afterwards. + +## Environment-variables + +Set the following environment-variables in the `environment:` section of the +docker-compose file. + +| Name | Usage | Default | +| --------------------- | --------------------------- | ----------------------- | +| `PUID` | user id for container user | `1000` | +| `PGID` | group id for container user | `1000` | +| `TZ` | specify the timezone | `Europe/London` | +| `RUN_OPTS` | specify the timezone | ` ` | + +## Volumes + +Set the following volumes in the `volumes:` section of the docker-compose file. + +| Outside mount/volume name | Container mount | Description | +| ------------------------- | --------------- | --------------------------------- | +| `config` | `/config` | directory for config | +| `tvdvr` | `/recordings` | directory for storage | + +## Ports + +Set the following ports in the `ports:` section. + +| Container Port | Recommended outside port | Protocol | Description | +| -------------- | ------------------------ | -------- | ------------ | +| `9981` | ` ` | TCP | webUI | +| `9982` | ` ` | TCP | HTSP port | + +## rebuild.sh + +```sh +#!/bin/sh +docker-compose down +docker pull lscr.io/linuxserver/tvheadend:latest +docker-compose up -d +``` + +## docker-compose.yml + +```yml +version: "2.1" +services: + tvheadend: + image: lscr.io/linuxserver/tvheadend:latest + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/London + volumes: + - config:/config + - tvdvr:/recordings + network_mode: "host" + restart: unless-stopped + +volumes: + config: + tvdvr: +``` diff --git a/wiki/docker-images/mailserver_-_docker-mailserver.md b/wiki/docker-images/mailserver_-_docker-mailserver.md index 599d825..f2d20d4 100644 --- a/wiki/docker-images/mailserver_-_docker-mailserver.md +++ b/wiki/docker-images/mailserver_-_docker-mailserver.md @@ -1,12 +1,16 @@ # mailserver - docker-mailserver -The official container and documentation was made by [mailserver](https://hub.docker.com/r/mailserver/docker-mailserver). +This is a [Docker](/wiki/docker.md) container for a mailserver. +The official container and documentation was made by +[mailserver](https://hub.docker.com/r/mailserver/docker-mailserver). It contains dovecot, antispam, antivirus, ssl, etc. +## Set-up + The configuration is done automatically using scripts by mailserver. First you need to download the essential setup files. -```shell +```sh wget -O .env https://raw.githubusercontent.com/docker-mailserver/docker-mailserver/master/compose.env wget https://raw.githubusercontent.com/docker-mailserver/docker-mailserver/master/docker-compose.yml wget https://raw.githubusercontent.com/docker-mailserver/docker-mailserver/master/mailserver.env @@ -17,6 +21,7 @@ chmod a+x ./setup.sh After that you need to edit the `.env` and the `mailserver.env<>` files to configure the mailserver. +Create the file `rebuild.sh`. You then need to start the container with the `rebuild.sh` and add email accounts using the following command. @@ -27,11 +32,15 @@ And finally generate the DCIM keys and rebuild once again. `./setup.sh config dkim` +Finally if a reverse proxy is used check the +[traefik entry](/wiki/docker-images/traefik.md#setup-mailserver) or the +[nginx entry](./nginx.md). + Afterwards you're ready to go by once again running the `rebuild.sh` file. ## rebuild.sh -```shell +```sh #!/bin/sh docker-compose down docker pull mailserver/docker-mailserver:latest diff --git a/wiki/docker-images/mariadb.md b/wiki/docker-images/mariadb.md index 83cceb4..9197f08 100644 --- a/wiki/docker-images/mariadb.md +++ b/wiki/docker-images/mariadb.md @@ -1,5 +1,6 @@ # mariadb +This is a [Docker](/wiki/docker.md) container for a mariadb database. The official container and documentation was made by [mariadb](https://hub.docker.com/_/mariadb). The Docker container is mainly used in combination with other containers. To achieve this in the easiest way use a docker-compose file. diff --git a/wiki/docker-images/matrixdotorg_-_synapse.md b/wiki/docker-images/matrixdotorg_-_synapse.md index 8ed666d..113b346 100644 --- a/wiki/docker-images/matrixdotorg_-_synapse.md +++ b/wiki/docker-images/matrixdotorg_-_synapse.md @@ -1,10 +1,15 @@ # matrixdotorg - synapse +This is a [Docker](/wiki/docker.md) container for a synapse server using the +[matrix](../matrix.md) protocol. The official container and documentation was made by [matrixdotorg](https://hub.docker.com/matrixdotorg/synapse). This docker-rebuild is made up by a `docker-compose.yml` file. -If you want to setup a Matrix homeserver please take a look at -[the matrix setup guide](../matrix.md). + +## Set-up + +Create the files `rebuild.sh` and `docker-compose.yml` at the same place. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Environment-variables @@ -37,7 +42,7 @@ Set the following ports in the `ports:` section. ## rebuild.sh -```shell +```sh #!/bin/sh docker-compose down docker pull matrixdotorg/synapse:latest @@ -47,7 +52,6 @@ docker-compose up -d ## docker-compose.yml ```yml - services: synapse: image: "matrixdotorg/synapse:latest" diff --git a/wiki/docker-images/mysql.md b/wiki/docker-images/mysql.md index cfb4d0b..3ab043b 100644 --- a/wiki/docker-images/mysql.md +++ b/wiki/docker-images/mysql.md @@ -1,6 +1,8 @@ # mysql -The official container and documentation was made by [MySQL](https://hub.docker.com/_/mysql). +This is a [Docker](/wiki/docker.md) container for a MySQL database. +The official container and documentation was made by +[MySQL](https://hub.docker.com/_/mysql). The Docker container is mainly used in combination with other containers. To achieve this in the easiest way use a docker-compose file diff --git a/wiki/docker-images/nasourso_-_nginx-certbot-docker-tui.md b/wiki/docker-images/nasourso_-_nginx-certbot-docker-tui.md deleted file mode 100644 index ea08631..0000000 --- a/wiki/docker-images/nasourso_-_nginx-certbot-docker-tui.md +++ /dev/null @@ -1,20 +0,0 @@ -# nasourso - nginx-certbot-docker-tui - -The official script/image and documentation [nasourso](https://github.com/nasourso/nginx-certbot-docker-tui). -The first step is downloading it. - -`wget https://raw.githubusercontent.com/nasourso/nginx-certbot-docker-tui/master/src/ncdt.sh` - -You can just run the script and it will install all needed dependencies. -After that just go ahead and start the container. -You can then configure reverse proxies by adding websites. - -## rebuild.sh - -```shell -#!/bin/sh -docker-compose down -docker pull nginx:latest -docker pull certbot/certbot:latest -docker-compose up -d -``` diff --git a/wiki/docker-images/nasourso_-_pltu.md b/wiki/docker-images/nasourso_-_pltu.md deleted file mode 100644 index 562c077..0000000 --- a/wiki/docker-images/nasourso_-_pltu.md +++ /dev/null @@ -1,42 +0,0 @@ -# nasourso - pltu - -The official container and documentation was made by [nasourso](https://hub.docker.com/r/nasourso/pltu). - -## Volumes - -Set the following volumes with the -v tag. - -| Outside mount/volume name | Container mount | Description | -| ------------------------- | --------------- | --------------------------------------------------- | -| `pltu` | `/cert` | storage for openvpn certificate of server with plex | - -## Ports - -Set the following ports with the -p tag. - -| Container Port | Recommended outside port | Protocol | Description | -| -------------- | ------------------------ | -------- | ----------- | -| `80` | `32400` | TCP | Plex webUI | - -## Additional - -There are some special variables to set. - -| Flag | Usage | -| -------------- | ------------------------ | -| `--privileged` | is needed due to openvpn | - -## rebuild.sh - -```shell -#!/bin/sh -docker stop pltu -docker rm pltu -docker pull nasourso/pltu:latest -docker run --name pltu \ - --restart unless-stopped \ - --privileged \ - -p 32400:80 \ - -v pltu:/cert/ \ - -d nasourso/pltu:latest -``` diff --git a/wiki/docker-images/nextcloud.md b/wiki/docker-images/nextcloud.md index 1cd26ab..90b4067 100644 --- a/wiki/docker-images/nextcloud.md +++ b/wiki/docker-images/nextcloud.md @@ -1,11 +1,18 @@ # NextCloud -The official container and documentation was made by [NextCloud](https://hub.docker.com/_/nextcloud). +This is a [Docker](/wiki/docker.md) container for [NextCloud](../nextcloud.md). +The official container and documentation was made by +[NextCloud](https://hub.docker.com/_/nextcloud). This docker-rebuild is made up by a `docker-compose.yml` file. The services in this files are explained seperately. The main Docker container needs a database in form of a [MariaDB](./mariadb.md) Docker container. +## Set-up + +Create the files `rebuild.sh` and `docker-compose.yml` at the same place. +Change the settings according to your needs and run `./rebuild.sh` afterwards. + ## Volumes Set the following volumes in the `volumes:` section of the docker-compose file. @@ -24,7 +31,7 @@ Set the following ports in the `ports:` section. ## rebuild.sh -```shell +```sh #!/bin/sh docker-compose down docker pull nextcloud:latest diff --git a/wiki/docker-images/nginx.md b/wiki/docker-images/nginx.md index d4169c4..00e027a 100644 --- a/wiki/docker-images/nginx.md +++ b/wiki/docker-images/nginx.md @@ -1,9 +1,16 @@ # nginx +This is a [Docker](/wiki/docker.md) container for an +[nginx server](../nginx.md). The official container and documentation was made by [nginx](https://hub.docker.com/_/nginx). This docker-rebuild is made up by a `docker-compose.yml` file. +## Set-up + +Create the files `rebuild.sh` and `docker-compose.yml` at the same place. +Change the settings according to your needs and run `./rebuild.sh` afterwards. + ## Volumes Set the following volumes in the `volumes:` section of the docker-compose file. @@ -23,7 +30,7 @@ Set the following ports in the `ports:` section. ## rebuild.sh -```shell +```sh #!/bin/sh docker-compose down docker pull nginx:latest diff --git a/wiki/docker-images/olbat_-_cupsd.md b/wiki/docker-images/olbat_-_cupsd.md index f60b55a..55c476b 100644 --- a/wiki/docker-images/olbat_-_cupsd.md +++ b/wiki/docker-images/olbat_-_cupsd.md @@ -1,6 +1,13 @@ # olbat - cupsd -The official container and documentation was made by [olbat](https://hub.docker.com/r/olbat/cupsd). +This is a [Docker](/wiki/docker.md) container for a [Cups](../cups.md) server. +The official container and documentation was made by +[olbat](https://hub.docker.com/r/olbat/cupsd). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Volumes @@ -25,7 +32,7 @@ The default username is `print`, the default password is `print`. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop cups docker rm cups diff --git a/wiki/docker-images/owncloud.md b/wiki/docker-images/owncloud.md index 9a0c313..0f95d86 100644 --- a/wiki/docker-images/owncloud.md +++ b/wiki/docker-images/owncloud.md @@ -1,11 +1,18 @@ # owncloud -The official container and documentation was made by [owncloud](https://hub.docker.com/_/owncloud). +This is a [Docker](/wiki/docker.md) container for a [owncloud](../owncloud.md) server. +The official container and documentation was made by +[owncloud](https://hub.docker.com/_/owncloud). This docker-rebuild is made up by a `docker-compose.yml` file. The services in this files are explained seperately. The main Docker container needs a database in form of a [MariaDB](./mariadb.md) Docker container. +## Set-up + +Create the files `rebuild.sh` and `docker-compose.yml` at the same place. +Change the settings according to your needs and run `./rebuild.sh` afterwards. + ## Volumes Set the following volumes in the `volumes:` section of the docker-compose file. @@ -25,7 +32,7 @@ Set the following ports in the `ports:` section. ## rebuild.sh -```shell +```sh #!/bin/sh docker-compose down docker pull owncloud diff --git a/wiki/docker-images/oznu_-_docker-cloudflare-ddns.md b/wiki/docker-images/oznu_-_docker-cloudflare-ddns.md index 182b9cc..c215bcf 100644 --- a/wiki/docker-images/oznu_-_docker-cloudflare-ddns.md +++ b/wiki/docker-images/oznu_-_docker-cloudflare-ddns.md @@ -1,6 +1,14 @@ # oznu - docker-cloudflare-ddns -The official container and documentation was made by [oznu](https://github.com/oznu/docker-cloudflare-ddns). +This is a [Docker](/wiki/docker.md) container for dynamically updating +cloudflare dns entries. +The official container and documentation was made by +[oznu](https://github.com/oznu/docker-cloudflare-ddns). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Environment variables @@ -14,7 +22,7 @@ Set the following variables with the -e tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop ddns docker rm ddns diff --git a/wiki/docker-images/oznu_-_onedrive.md b/wiki/docker-images/oznu_-_onedrive.md index 1c1a2ad..671b083 100644 --- a/wiki/docker-images/oznu_-_onedrive.md +++ b/wiki/docker-images/oznu_-_onedrive.md @@ -1,7 +1,13 @@ # oznu - onedrive +This is a docker container for a onedrive client. The official container and documentation was made by [oznu](https://hub.docker.com/r/oznu/onedrive). +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. + ## Environment-variables Set the following variables with the -e tag. @@ -22,7 +28,7 @@ Set the following volumes with the -v tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop onedrive docker rm onedrive diff --git a/wiki/docker-images/portainer_-_agent.md b/wiki/docker-images/portainer_-_agent.md index 2fbd456..bf8783c 100644 --- a/wiki/docker-images/portainer_-_agent.md +++ b/wiki/docker-images/portainer_-_agent.md @@ -1,6 +1,14 @@ # portainer - agent -The official container and documentation was made by [portainer](https://hub.docker.com/r/portainer/agent). +This is a [Docker](/wiki/docker.md) container for a [portainer](../portainer.md) +agent. +The official container and documentation was made by +[portainer](https://hub.docker.com/r/portainer/agent). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Volumes @@ -21,7 +29,7 @@ Set the following ports with the -p tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop portainer_agent docker rm portainer_agent diff --git a/wiki/docker-images/portainer_-_portainer.md b/wiki/docker-images/portainer_-_portainer.md index 2c12834..1e9f474 100644 --- a/wiki/docker-images/portainer_-_portainer.md +++ b/wiki/docker-images/portainer_-_portainer.md @@ -1,6 +1,14 @@ # portainer - portainer -The official container and documentation was made by [portainer](https://hub.docker.com/r/portainer/portainer). +This is a [Docker](/wiki/docker.md) container for a [portainer](../portainer.md) +server. +The official container and documentation was made by +[portainer](https://hub.docker.com/r/portainer/portainer). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Volumes @@ -21,7 +29,7 @@ Set the following ports with the -p tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop portainer docker rm portainer diff --git a/wiki/docker-images/postgres.md b/wiki/docker-images/postgres.md index 2e31848..2254d4a 100644 --- a/wiki/docker-images/postgres.md +++ b/wiki/docker-images/postgres.md @@ -1,6 +1,8 @@ # Postgres -The official container and documentation was made by [Postgres](https://hub.docker.com/_/postgres). +This is a [Docker](/wiki/docker.md) container for a postgresql database. +The official container and documentation was made by +[Postgres](https://hub.docker.com/_/postgres). The Docker container is mainly used in combination with other containers. To achieve this in the easiest way use a docker-compose file diff --git a/wiki/docker-images/prologic_-_golinks.md b/wiki/docker-images/prologic_-_golinks.md index 39596c8..bcb397e 100644 --- a/wiki/docker-images/prologic_-_golinks.md +++ b/wiki/docker-images/prologic_-_golinks.md @@ -1,5 +1,15 @@ # prologic - golinks +This is a [Docker](/wiki/docker.md) container for golinks, a web app to create +bookmarks, commands and aliases. +The official container and documentation was made by +[prologic](https://git.mills.io/prologic/golinks). + +## Set-up + +Create the files `rebuild.sh` and `docker-compose.yml` at the same place. +Change the settings according to your needs and run `./rebuild.sh` afterwards. + ## Volumes Set the following volumes with the -v tag. @@ -18,7 +28,7 @@ Set the following ports with the -p tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker-compose down docker pull prologic/golinks:latest diff --git a/wiki/docker-images/prologic_-_gopherproxy.md b/wiki/docker-images/prologic_-_gopherproxy.md index 0a180be..f585bdd 100644 --- a/wiki/docker-images/prologic_-_gopherproxy.md +++ b/wiki/docker-images/prologic_-_gopherproxy.md @@ -1,6 +1,13 @@ # prologic - gopherproxy -The official container and documentation was made by [prologic](https://hub.docker.com/r/prologic/gopherproxy). +This is a [Docker](/wiki/docker.md) container for a gopher to http proxy. +The official container and documentation was made by +[prologic](https://hub.docker.com/r/prologic/gopherproxy). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Ports @@ -20,7 +27,7 @@ There are some special variables to set. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop gopheroverhttp docker rm gopheroverhttp diff --git a/wiki/docker-images/prologic_-_todo.md b/wiki/docker-images/prologic_-_todo.md index 5fe1ca0..73f4c2e 100644 --- a/wiki/docker-images/prologic_-_todo.md +++ b/wiki/docker-images/prologic_-_todo.md @@ -1,6 +1,13 @@ # prologic - todo -The official container and documentation was made by [prologic](https://hub.docker.com/r/prologic/todo). +This is a [Docker](/wiki/docker.md) container for a todo-manager. +The official container and documentation was made by +[prologic](https://hub.docker.com/r/prologic/todo). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Volumes @@ -20,7 +27,7 @@ Set the following ports with the -p tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop todo docker rm todo diff --git a/wiki/docker-images/rblsb_-_synctube.md b/wiki/docker-images/rblsb_-_synctube.md index 5e2c99c..bb65e9d 100644 --- a/wiki/docker-images/rblsb_-_synctube.md +++ b/wiki/docker-images/rblsb_-_synctube.md @@ -1,13 +1,19 @@ # rblsb - synctube -The official container and documentation was made by [rblsb](https://github.com/rblsb/synctube). +This is a [Docker](/wiki/docker.md) container for the synchronized video +platform synctube. +The official container and documentation was made by +[rblsb](https://github.com/rblsb/synctube). There is no official pre-build on docker-hub. -## Set-up for building process +## Set-up First of all create a folder for your `rebuild.sh`. -After that clone synctube from github into a folder within the just created folder. +After that clone synctube from [github](https://github.com/rblsb/synctube) into +a folder within the just created folder. Then build the image inside the git folder with `docker build -t synctube .`. +Set the variables, volumes and ports according and run the `rebuild.sh`. + ## Volumes @@ -27,7 +33,7 @@ Set the following ports with the -p tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop synctube docker rm synctube diff --git a/wiki/docker-images/redis.md b/wiki/docker-images/redis.md index d8ea9cb..ee551fa 100644 --- a/wiki/docker-images/redis.md +++ b/wiki/docker-images/redis.md @@ -1,6 +1,8 @@ # redis -The official container and documentation was made by [redis](https://hub.docker.com/_/redis). +This is a [Docker](/wiki/docker.md) container for a redis database. +The official container and documentation was made by +[redis](https://hub.docker.com/_/redis). The Docker container is mainly used in combination with other containers. To achieve this in the easiest way use a docker-compose file. diff --git a/wiki/docker-images/rlister_-_hastebin.md b/wiki/docker-images/rlister_-_hastebin.md index 1c13353..7cc3ae0 100644 --- a/wiki/docker-images/rlister_-_hastebin.md +++ b/wiki/docker-images/rlister_-_hastebin.md @@ -1,6 +1,13 @@ # rlister - hastebin -The official container and documentation was made by [rlister](https://hub.docker.com/r/rlister/hastebin). +This is a [Docker](/wiki/docker.md) container for a hastebin server. +The official container and documentation was made by +[rlister](https://hub.docker.com/r/rlister/hastebin). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Environment-variables @@ -28,7 +35,7 @@ Set the following ports with the -p tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop hastebin docker rm hastebin diff --git a/wiki/docker-images/samba.md b/wiki/docker-images/samba.md index bdbd58b..b2b2c79 100644 --- a/wiki/docker-images/samba.md +++ b/wiki/docker-images/samba.md @@ -1,6 +1,14 @@ # samba -The official container and documentation was made by [dperson](https://hub.docker.com/r/samba). +This is a [Docker](/wiki/docker.md) container for a [Samba](../samba.md) +server. +The official container and documentation was made by +[dperson](https://hub.docker.com/r/samba). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Volumes @@ -36,7 +44,7 @@ There are some special variables to set. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop samba docker rm samba diff --git a/wiki/docker-images/searx_-_searx.md b/wiki/docker-images/searx_-_searx.md index 8fce3f0..0be2ef6 100644 --- a/wiki/docker-images/searx_-_searx.md +++ b/wiki/docker-images/searx_-_searx.md @@ -1,6 +1,14 @@ # searx - searx -The official container and documentation was made by [searx](https://hub.docker.com/r/searx/searx). +This is a [Docker](/wiki/docker.md) container for a [searx](../searx.md) +meta-search machine. +The official container and documentation was made by +[searx](https://hub.docker.com/r/searx/searx). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Volumes @@ -21,7 +29,7 @@ Set the following ports with the -p tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop searx docker rm searx diff --git a/wiki/docker-images/sissbrueckner_-_linkding.md b/wiki/docker-images/sissbrueckner_-_linkding.md new file mode 100644 index 0000000..2aa136d --- /dev/null +++ b/wiki/docker-images/sissbrueckner_-_linkding.md @@ -0,0 +1,49 @@ +# sissbrueckner - linkding + +This is a [Docker](/wiki/docker.md) container for a [linkding](../linkding.md) +bookmark and archive service. +The official container and documentation was made by +[sissbrueckner](https://github.com/sissbruecker/linkding). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. +Afterwards you need to create a user. +This can be done by running the following line with changed credentials: + +```sh +docker exec -it linkding python manage.py createsuperuser --username=joe --email=joe@example.com +``` + +You will be asked for a password via the commandline. + +## Volumes + +Set the following volumes with the -v tag. + +| Outside mount/volume name | Container mount | Description | +| ------------------------- | ---------------------- | --------------------------- | +| `linkding` | `/etc/linkding/data` | storage for persistent data | + +## Ports + +Set the following ports with the -p tag. + +| Container Port | Recommended outside port | Protocol | Description | +| -------------- | ------------------------ | -------- | ----------- | +| `9090` | `9090` | TCP | WebUI | + +## rebuild.sh + +```sh +#!/bin/sh +docker stop linkding +docker rm linkding +docker pull sissbruecker/linkding:latest +docker run --name linkding \ + --restart unless-stopped \ + -p 9090:9090 \ + -v linkding:/etc/linkding/data \ + -d sissbruecker/linkding:latest +``` diff --git a/wiki/docker-images/spikecodes_-_libreddit.md b/wiki/docker-images/spikecodes_-_libreddit.md index 3804b04..cac448c 100755 --- a/wiki/docker-images/spikecodes_-_libreddit.md +++ b/wiki/docker-images/spikecodes_-_libreddit.md @@ -1,6 +1,14 @@ # spikecodes - libreddit -The official container and documentation was made by [spikecodes](https://github.com/spikecodes/libreddit). +This is a [Docker](/wiki/docker.md) container for the alternative reddit +frontend [libreddit](../libreddit.md). +The official container and documentation was made by +[spikecodes](https://github.com/spikecodes/libreddit). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Ports @@ -12,7 +20,7 @@ Set the following ports with the -p tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop libreddit docker rm libreddit diff --git a/wiki/docker-images/teamspeak.md b/wiki/docker-images/teamspeak.md index 38ee18a..5f511bd 100644 --- a/wiki/docker-images/teamspeak.md +++ b/wiki/docker-images/teamspeak.md @@ -1,6 +1,14 @@ # teamspeak -The official container and documentation was made by [teamspeak](https://hub.docker.com/_/teamspeak). +This is a [Docker](/wiki/docker.md) container for a +[teamspeak3](../teamspeak3.md) server. +The official container and documentation was made by +[teamspeak](https://hub.docker.com/_/teamspeak). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Environment-variables @@ -30,7 +38,7 @@ Set the following ports with the -p tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop teamspeak3 docker rm teamspeak3 diff --git a/wiki/docker-images/tetricz_-_mordhau-server.md b/wiki/docker-images/tetricz_-_mordhau-server.md index 838a633..7362119 100644 --- a/wiki/docker-images/tetricz_-_mordhau-server.md +++ b/wiki/docker-images/tetricz_-_mordhau-server.md @@ -1,6 +1,15 @@ # tetricz - mordhau-server -The official container and documentation was made by [tetricz](https://hub.docker.com/r/tetricz/mordhau-server). +This is a [Docker](/wiki/docker.md) container for a mordhau server. +The official container and documentation was made by +[tetricz](https://hub.docker.com/r/tetricz/mordhau-server). + +## Set-up + +Create the files `start.sh` and `stop.sh`. +Change the settings according to your needs and run `./start.sh` to start +the server. +With `stop.sh` you can stop it. ## Environment-variables @@ -41,9 +50,8 @@ Set the following ports with the -p tag. ## start.sh -```shell +```sh #!/bin/sh - docker pull tetricz/mordhau-server docker run --name=mordhau \ --restart=unless-stopped \ @@ -69,9 +77,8 @@ docker run --name=mordhau \ ## stop.sh -```shell +```sh #/bin/sh - docker stop mordhau docker rm mordhau ``` diff --git a/wiki/docker-images/tomsquest_-_docker-radicale.md b/wiki/docker-images/tomsquest_-_docker-radicale.md index f28b78e..58f7401 100644 --- a/wiki/docker-images/tomsquest_-_docker-radicale.md +++ b/wiki/docker-images/tomsquest_-_docker-radicale.md @@ -1,10 +1,19 @@ # tomsquest - docker-radicale -The official container and documentation was made by [tomsquest](https://hub.docker.com/r/tomsquest/docker-radicale). +This is a [Docker](/wiki/docker.md) container for a radicale CalDAV server. +The official container and documentation was made by +[tomsquest](https://hub.docker.com/r/tomsquest/docker-radicale). The `latest` tag at the moment of writing this readme was corrupted. The last usable tag was used therefore to guarantee best performance for all users. +## Set-up + +Create the file `rebuild.sh`. +Create a volume with the name `radicale_config`. +Then create the `config` file in the volume `radicale_config`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. + ## Volumes Set the following volumes with the -v tag. @@ -32,7 +41,7 @@ There are some special variables to set. ## rebuild.sh -```shell +```sh #/bin/sh docker stop radicale docker rm radicale @@ -46,7 +55,7 @@ docker run --name radicale \ -d tomsquest/docker-radicale:2.1.11.4 ``` -## radicale\_config/config +## radicale\_config/\_data/config ```txt # -*- mode: conf -*- diff --git a/wiki/docker-images/traefik.md b/wiki/docker-images/traefik.md index 89aa777..83190a4 100644 --- a/wiki/docker-images/traefik.md +++ b/wiki/docker-images/traefik.md @@ -1,13 +1,17 @@ # traefik +This is a [Docker](/wiki/docker.md) container for a traefik edge router. The official container and documentation was made by [traefik](https://hub.docker.com/_/traefik). This docker-rebuild is made up by a `docker-compose.yml` file. -## Set-up for config files +## Set-up -First of all create a folder for your `rebuild.sh` and `docker-compose.yml`. +Create the files `rebuild.sh` and `docker-compose.yml` at the same place. In that folder create the directories `data/config`. +Place the files `data/traefik.yml` and `data/config/dynamic.yml` in the +according directories. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Volumes @@ -56,7 +60,7 @@ The last line is to add authentication. ## rebuild.sh -```shell +```sh #!/bin/sh docker-compose down docker pull traefik:v2.4 @@ -180,6 +184,7 @@ To create a reverse proxy from a docker container add the following lines in the ```yml - "traefik.enable=true" + - "traefik.docker.network=proxy" - "traefik.http.routers.<service name>-secure.entrypoints=websecure" - "traefik.http.routers.<service name>-secure.rule=Host(`<subdomain>.<domain>`)" - "traefik.http.routers.<service name>-secure.service=<service name>" @@ -187,3 +192,23 @@ To create a reverse proxy from a docker container add the following lines in the ``` This configuration automatically redirects http to https. +When using this configuration the port specified in the latter lines can be +ommitted in the `ports:` section if not used directly. +This ensures access only via https and restricts access via ip and port. + +## Setup Mailserver + +If setting up a +[docker-mailserver by mailserver](./mailserver_-_docker-mailserver.md) no http +or https is needed. +But a certificate for the mailserver is needed regardless. +In this case add the following lines to the file `docker-compose.yml` in the +`services:` section and adapt them. + +```yml + whoami: + image: docker.io/traefik/whoami:latest + labels: + - "traefik.enable=true" + - "traefik.http.routers.whoami.rule=Host(`<subdomain>.<domain>`)" +``` diff --git a/wiki/docker-images/vectorim_-_riot-web.md b/wiki/docker-images/vectorim_-_riot-web.md index fda5aef..e5cb20d 100644 --- a/wiki/docker-images/vectorim_-_riot-web.md +++ b/wiki/docker-images/vectorim_-_riot-web.md @@ -1,9 +1,16 @@ # vectorim - riot-web +This is a [Docker](/wiki/docker.md) container for a [matrix](../matrix.md) +client. The official container and documentation was made by [linuxserver](https://hub.docker.com/vectorim/riot-web). This docker-rebuild is made up by a `docker-compose.yml` file. +## Set-up + +Create the files `rebuild.sh` and `docker-compose.yml` at the same place. +Change the settings according to your needs and run `./rebuild.sh` afterwards. + ## Volumes Set the following volumes in the `volumes:` section of the docker-compose file. @@ -22,7 +29,7 @@ Set the following ports in the `ports:` section. ## rebuild.sh -```shell +```sh #!/bin/sh docker-compose down docker pull vectorim/riot-web:latest diff --git a/wiki/docker-images/ventz_-_bind.md b/wiki/docker-images/ventz_-_bind.md index 4873881..942e0a2 100644 --- a/wiki/docker-images/ventz_-_bind.md +++ b/wiki/docker-images/ventz_-_bind.md @@ -1,6 +1,14 @@ # ventz - bind -The official container and documentation was made by [ventz](https://hub.docker.com/r/ventz/bind). +This is a [Docker](/wiki/docker.md) container for a [bind](../bind.md) +[DNS](../dns.md) resolver. +The official container and documentation was made by +[ventz](https://hub.docker.com/r/ventz/bind). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Volumes @@ -8,8 +16,8 @@ Set the following volumes with the -v tag. | Outside mount/volume name | Container mount | Description | | ------------------------- | ----------------- | --------------------- | -| `bind_cache` | `/var/cache/bind` | cache for dns | -| `bind_etc` | `/etc/bind` | configuration for dns | +| `bind_cache` | `/var/cache/bind` | cache for DNS | +| `bind_etc` | `/etc/bind` | configuration for DNS | ## Ports @@ -17,8 +25,8 @@ Set the following ports with the -p tag. | Container Port | Recommended outside port | Protocol | Description | | -------------- | ------------------------ | -------- | ----------------- | -| `53` | `53` | TCP | dns protocol port | -| `53` | `53` | UDP | dns protocol port | +| `53` | `53` | TCP | DNS protocol port | +| `53` | `53` | UDP | DNS protocol port | ## Additional @@ -26,11 +34,11 @@ There are some special variables to set. | Flag | Usage | | ------- | ------------------------------------------------------- | -| `--dns` | set two of these flags for specific dns forward servers | +| `--dns` | set two of these flags for specific DNS forward servers | ## Rebuild -```shell +```sh #!/bin/sh docker stop bind docker rm bind diff --git a/wiki/docker-images/wallabag_-_wallabag.md b/wiki/docker-images/wallabag_-_wallabag.md index 61be50e..a7c7e0e 100644 --- a/wiki/docker-images/wallabag_-_wallabag.md +++ b/wiki/docker-images/wallabag_-_wallabag.md @@ -1,10 +1,17 @@ # wallabag - wallabag +This is a [Docker](/wiki/docker.md) container for a [wallabag](../wallabag.md) +server. The Server consists of 3 Docker containers, one is the wallabag main server, one is a database and one a redis instance. In addition to the main container you need to connect a [mariadb container](./mariadb.md) and a [redis container](./redis.md) to it. +## Set-up + +Create the files `rebuild.sh` and `docker-compose.yml` at the same place. +Change the settings according to your needs and run `./rebuild.sh` afterwards. + ## Environment-variables Set the following environment-variables in the `environment:` section of the @@ -45,7 +52,7 @@ Set the following ports in the `ports:` section. ## rebuild.sh -```shell +```sh #!/bin/sh docker-compose down docker pull wallabag/wallabag:latest @@ -86,12 +93,6 @@ services: - MYSQL_ROOT_PASSWORD=wallaroot volumes: - /opt/wallabag/data:/var/lib/mysql - db: - image: mariadb - environment: - - MYSQL_ROOT_PASSWORD=wallaroot - volumes: - - /opt/wallabag/data:/var/lib/mysql redis: image: redis:alpine volumes: diff --git a/wiki/docker-images/xy2z_-_pinedocs.md b/wiki/docker-images/xy2z_-_pinedocs.md index 3ef520a..9aed653 100644 --- a/wiki/docker-images/xy2z_-_pinedocs.md +++ b/wiki/docker-images/xy2z_-_pinedocs.md @@ -1,6 +1,13 @@ # xy2z - pinedocs -The official container and documentation was made by [xy2z](https://hub.docker.com/r/xy2z/pinedocs). +This is a [Docker](/wiki/docker.md) container for the file viewer pinedocs. +The official container and documentation was made by +[xy2z](https://hub.docker.com/r/xy2z/pinedocs). + +## Set-up + +Create the file `rebuild.sh`. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Volumes @@ -20,7 +27,7 @@ Set the following ports with the -p tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop pinedocs docker rm pinedocs diff --git a/wiki/docker-images/yourls.md b/wiki/docker-images/yourls.md index c72d467..cae39b3 100644 --- a/wiki/docker-images/yourls.md +++ b/wiki/docker-images/yourls.md @@ -1,8 +1,15 @@ # yourls -The official container and documentation was made by [yourls](https://hub.docker.com/_/yourls). -In addition to the main container you need to connect a [mySQL container](./mysql.md) -to it. +This is a [Docker](/wiki/docker.md) container for the URl shortener yourls. +The official container and documentation was made by +[yourls](https://hub.docker.com/_/yourls). +In addition to the main container you need to connect a +[mySQL container](./mysql.md) to it. + +## Set-up + +Create the files `rebuild.sh` and `docker-compose.yml` at the same place. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Environment-variables @@ -33,7 +40,7 @@ Set the following ports with the -p tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker-compose down docker-compose up -d diff --git a/wiki/docker-images/zedeus_-_nitter.md b/wiki/docker-images/zedeus_-_nitter.md index becb9f5..2cf9a04 100755 --- a/wiki/docker-images/zedeus_-_nitter.md +++ b/wiki/docker-images/zedeus_-_nitter.md @@ -1,6 +1,14 @@ # zedeus - nitter -The official container and documentation was made by [zedeus](https://github.com/zedeus/nitter). +This is a [Docker](/wiki/docker.md) container for the alternative Twitter +frontend [nitter](../nitter.md). +The official container and documentation was made by +[zedeus](https://github.com/zedeus/nitter). + +## Set-up + +Create the file `rebuild.sh` and `nitter.conf` at the same place. +Change the settings according to your needs and run `./rebuild.sh` afterwards. ## Volumes @@ -20,7 +28,7 @@ Set the following ports with the -p tag. ## rebuild.sh -```shell +```sh #!/bin/sh docker stop nitter docker rm nitter @@ -37,7 +45,7 @@ docker run --name nitter \ ```txt [Unit] -Description=Nitter (An alternative Twitter front-end) +Description=Nitter (An alternative Twitter frontend) After=syslog.target After=network.target diff --git a/wiki/docker.md b/wiki/docker.md index 702521c..2b344b5 100644 --- a/wiki/docker.md +++ b/wiki/docker.md @@ -3,7 +3,7 @@ Docker is a virtualization software that deploys docker containers. Due to easy handling and reproducable environments it is a useful tool. -## Installation +## Setup - Arch linux: run `pacman -S docker` to install docker - Ubuntu: visit [the official installation guide](https://docs.docker.com/engine/install/ubuntu/) @@ -11,7 +11,7 @@ Due to easy handling and reproducable environments it is a useful tool. Another possibility is to try the official convenience script. To get and execute it run the following in your terminal. -```shell +```sh curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh ``` diff --git a/wiki/e-books.md b/wiki/e-books.md new file mode 100644 index 0000000..2083e93 --- /dev/null +++ b/wiki/e-books.md @@ -0,0 +1,23 @@ +# E-books + +E-books are digital publications of books. +They can be read with specific hardware - an e-reader - or on a personal +computer. +E-books are usually available in `.epub` or `.pdf` files. +Amazon (`.azw`), Mobi (`.mobi`) and other brands selling e-readers have +proprietary formats. + +## Management + +The management of e-books can be achieved by using special software suites like +[calibre](/wiki/calibre.md). + +## DRM + +Proprietary formats may but don't have to feature DRM. +There are some software solutions for handling DRM like the no longer supported +[DeDRM by apprenticeharper](https://github.com/apprenticeharper/DeDRM_tools) or +its supported counterpart [DeDRM by noDRM](https://github.com/noDRM/DeDRM_tools). +Due to legal issues in many places it is recommended to not use these or +similar software. +If the software is to be used by you check your local laws first. diff --git a/wiki/firefox.md b/wiki/firefox.md index 7416a20..3d40a4e 100644 --- a/wiki/firefox.md +++ b/wiki/firefox.md @@ -1,64 +1,88 @@ # Firefox -[Firefox](https://www.mozilla.org/en-US/firefox) is a free and open-source web +[Firefox](https://www.mozilla.org/en-US/Firefox) is a free and open-source web browser. -## List of useful Firefox addons +## Telemetry -Following is a list of useful Firefox addons. +Telemetry is the remote measurement and transmission of data. +To change the telemetry of Firefox navigate to `about:telemetry` and click the +options to toggle between enabled and disabled. + +## Configuration + +Firefox has many possible settings and precerences. +This section addresses possible settings and preferences for specific use cases. + +### Scrolling + +On Linux distributions auto scroll is disabled by default. +This means that you cant click the middle mouse button to use it for scrolling. +To enable it go into the preferences and check `Use autoscrolling`. + +### Sponsorings + +Sponsorings are embedded ads in Firefox. +After navigating to `about:config` enabling and disabling of sponsorings can be done at +`browser.newtabpage.activity-stream.showSponsored`. + +### Compact Mode + +In Firefox compact mode is a configuration to make tabs and navigation elements +including bookmarks smaller. +After navigating to `about:config` the configuration can be done at +`browser.compactmode.show`. + +## List of useful Firefox add-ons + +Following is a list of useful Firefox add-ons. They can be removed and configured under `about:config`. -- [ClearURLs](https://addons.mozilla.org/en-GB/firefox/addon/clearurls) removes +- [Cameleon](https://addons.mozilla.org/en-GB/firefox/addon/chameleon-ext/) + spoofs your browser profile including user agent and screen size. +- [ClearURLs](https://addons.mozilla.org/en-GB/Firefox/addon/clearurls) removes tracking elements from URLs. -- [Dark Reader](https://addons.mozilla.org/en-GB/firefox/addon/darkreader) creates +- [Dark Reader](https://addons.mozilla.org/en-GB/Firefox/addon/darkreader) creates an automatic dark mode for sites without native dark mode. -- [Firefox Multi-Account Containers](https://addons.mozilla.org/en-GB/firefox/addon/multi-account-containers) +- [Firefox Multi-Account Containers](https://addons.mozilla.org/en-GB/Firefox/addon/multi-account-containers) lets you separate cookies in different containers on a per site base. -- [Floccus](https://addons.mozilla.org/en-US/firefox/addon/floccus/) syncs your + With this add-on a proxy can be selected for each container which enables + usage of [a VPN proxy](/wiki/vpn.md#proxy). +- [Floccus](https://addons.mozilla.org/en-US/Firefox/addon/floccus/) syncs your bookmarks across devices (supports Nextcloud and WebDAV (ownCloud, etc)). -- [hide-scrollbars](https://addons.mozilla.org/en-GB/firefox/addon/hide-scrollbars) +- [hide-scrollbars](https://addons.mozilla.org/en-GB/Firefox/addon/hide-scrollbars) hides scrollbars. -- [Never-Consent](https://addons.mozilla.org/en-GB/firefox/addon/never-consent) +- [Never-Consent](https://addons.mozilla.org/en-GB/Firefox/addon/never-consent) automatically refuses GDPR consent to a bunch of platforms. -- [NoScript](https://addons.mozilla.org/en-GB/firefox/addon/noscript) blocks all +- [NoScript](https://addons.mozilla.org/en-GB/Firefox/addon/noscript) blocks all javascript so that the parts you need can be reenabled and the rest is not used. -- [Privacy Badger](https://addons.mozilla.org/en-GB/firefox/addon/privacy-badger17) +- [Privacy Badger](https://addons.mozilla.org/en-GB/Firefox/addon/privacy-badger17) blocks unwanted invisible trackers. -- [Privacy Redirect](https://addons.mozilla.org/en-US/firefox/addon/privacy-redirect/) +- [Privacy Redirect](https://addons.mozilla.org/en-US/Firefox/addon/privacy-redirect/) redirects youtube, instagram, twitter, etc to free alternatives or alternative frontends. -- [Temporary Containers](https://addons.mozilla.org/en-GB/firefox/addon/temporary-containers) +- [Sidebery](https://addons.mozilla.org/en-GB/Firefox/addon/sidebery) + is a sidebar with treestyle tabs and bookmarks. +- [SponsorBlock](https://addons.mozilla.org/en-US/firefox/addon/sponsorblock/) + skips YouTube video sponsors automatically, works with + [invidious](./invidious.md) too. +- [Temporary Containers](https://addons.mozilla.org/en-GB/Firefox/addon/temporary-containers) opens tabs and websites, that are not already managed by `Firefox Multi-Account Containers` in a new container. -- [uBlock Origin](https://addons.mozilla.org/en-GB/firefox/addon/ublock-origin) +- [Tree Style Tab](https://addons.mozilla.org/en-GB/Firefox/addon/tree-style-tab) + shows tabs like a tree. This is especially useful if many tabs are used. +- [uBlock Origin](https://addons.mozilla.org/en-GB/Firefox/addon/ublock-origin) blocks unwanted content like ads. -- [User-Agent Switcher and Manager](https://addons.mozilla.org/en-GB/firefox/addon/user-agent-string-switcher) +- [User-Agent Switcher and Manager](https://addons.mozilla.org/en-GB/Firefox/addon/user-agent-string-switcher) spoofs websites that try to gather information about your webbrowser. -- [Vim Vixen](https://addons.mozilla.org/en-GB/firefox/addon/vim-vixen) enables - vim movement for firefox. -- Plugins for Tabs, etc. in tree style: - - [Sidebery](https://addons.mozilla.org/en-GB/firefox/addon/sidebery) - is a sidebar with treestyle tabs and bookmarks. - - [Tree Style Tab](https://addons.mozilla.org/en-GB/firefox/addon/tree-style-tab) - shows tabs like a tree. This is especially useful if many tabs are used. - -## Useful configuration - -To disable the telemetry of firefox navigate to `about:telemetry` and (if it says -enabled) click on `enabled` and disable all the options. - -To disable ads from firefox navigate to `about:config`, search for -`browser.newtabpage.activity-stream.showSponsored` and disable all upcoming results. - -On Linux distributions auto scroll is disabled by default. -This means that you cant click the middle mouse button to use it for scrolling. -To enable it go into the preferences and check `Use autoscrolling`. +- [Vim Vixen](https://addons.mozilla.org/en-GB/Firefox/addon/vim-vixen) enables + vim movement for Firefox. ## Add a new search engine -You can add a new search engine with the addon `Add custom search engine`. +You can add a new search engine with the add-on `Add custom search engine`. Make sure to replace `<url to search engine>` with the according url. -It is possible to add it without an addon. +It is possible to add it without an add-on. Navigate to the search engine and click the `...` in the address bar. Then click `Add Search Engine` diff --git a/wiki/flac_(codec).md b/wiki/flac_(codec).md new file mode 100644 index 0000000..5da5369 --- /dev/null +++ b/wiki/flac_(codec).md @@ -0,0 +1,27 @@ +# flac (Codec) + +This article describes the `flac` codec. +For the linux `flac` package see the +[flac package entry](./linux/flac_(package).md. + +`flac` - short for Free Lossless Audio Codec - is a [audio](./audio.md) codec +without compression losses. + +## Tagging + +The following explains the most general tags in short. + +- `title` is the name of the music piece. +- `artist` is the artist of the song - for classical music it is the composer. +- `album` is the name of the album. +- `tracknumber` is the number of the music piece in the album +- `date` is the year of publication +- `albumartist` is the artist that made the album +- `discnumber` is the disc number of the music piece in the album +- `genre` is the genre of the music piece +- `totaldiscs` is the amount of discs of the album +- `totaltracks` is the amount of tracks in the disc of the music piece +- `front` is an image of the front cover +- `performer` is used in classical music and defines the artist that + played the piece. In audiobooks it can be used to signal the reader of the + book. diff --git a/wiki/games/bottles.md b/wiki/games/bottles.md new file mode 100644 index 0000000..56d80d4 --- /dev/null +++ b/wiki/games/bottles.md @@ -0,0 +1,13 @@ +# Bottles + +[Bottles](https://usebottles.com/) is an application similar to +[Lutris](/wiki/games/lutris.md) that focusses on running both +[Windows](/wiki/windows/windows.md) applications aswell as games through +[WINE](/wiki/linux/wine.md) or their own runner [Caffe](#caffe). + +## Caffe + +[Caffe](https://docs.usebottles.com/components/runners) is the official runner +of [Windows](/wiki/windows/windows.md) programs in Bottles. +It is a patched version of [WINE](/wiki/linux/wine.md) that can have positive +effects on certain programs. diff --git a/wiki/games/dolphin.md b/wiki/games/dolphin.md new file mode 100644 index 0000000..b945ebf --- /dev/null +++ b/wiki/games/dolphin.md @@ -0,0 +1,58 @@ +# Dolphin + +[Dolphin](https://dolphin-emu.org/) is a GameCube and Wii +[emulator](./emulators.md). + +## Setup + +Dolphin can be installed on different systems, a list for this can be found on +the [Dolphin website](https://dolphin-emu.org/download/). +Additionally it can be installed using [Flatpak](../linux/flatpak.md) where the +package is called `org.DolphinEmu.dolphin-emu`. + +## Usage + +The following sections describe specific issues relating to the configuration +and usage of Dolphin. + +### Steam Deck specific settings + +The following settings are especially useful when emulating games on the +[Steam Deck](./steam_deck.md) as pointed out by +[nchristopher](https://github.com/nchristopher/steamdeck-emulation/blob/main/emulators/dolphin.md). +But it is a good starting point for other systems aswell. +It is important to emphasize that the system needs to meet the requirements to +run Vulkan. +Select the configuration and select the paths tab. +There the directories for Wii and GameCube [ROMs](./emulators.md) can be added. +In the audio tab select `Pulse` as your audio backend. +In the interface tab select `Confirm to Stop` to avoid prompts when closing the +game. +Close the configuration and select the graphics menu. +Set the backend to Vulkan. +[Fullscreen Mode](#fullscreen-mode) can be enabled when starting the game too. +In the enhancements tab select `3x Native` as internal resolution, as it will +upscale the image to 1080p. +In the main tab check the `Render to Main Window` box. +Close the graphics menu and open the controllers menu. +For the first GameCube controller open the configuration, select +`SDL/0/Microsoft X-Box 360 Pad 0` as type, clear and change the buttons to your +preference. +Select emulate Wii Bluetooth adapter for Wii controllers, alternatively you can +leave it empty to use the GameCube controller settings. +For the first Wii controller open the configuration, select +`SDL/0/Microsoft X-Box 360 Pad 0` as type, clear and change the buttons to your +preference. + +### Fullscreen Mode + +Check the `Start in Fullscreen` box to start games automatically in fullscreen +mode. +To exit it use `Esc`. + +### Running a game without selection in the menu + +To run a game instantly the path to the [ROM](./emulators.md) needs to be +appended to the command used for starting Dolphin. +This should be made in quotation marks as it could contain characters that need +to be escaped. diff --git a/wiki/games/emulators.md b/wiki/games/emulators.md new file mode 100644 index 0000000..a389766 --- /dev/null +++ b/wiki/games/emulators.md @@ -0,0 +1,13 @@ +# Emulators + +An Emulator is a hard- or software that enables a computer to behave like +another computer. +In the gaming context this is mainly used to run games from a console on +another computer. +Emulators usually need ROMs to run games. +ROMs are a digital copy of a video game. + +## List of Emulator software + +- [PPSSPP](./ppsspp.md) is made to emulate Playstation Portable games +- [Dolphin](./dolphin.md) is made to emulate GameCube and Wii games diff --git a/wiki/games/guild_wars_2.md b/wiki/games/guild_wars_2.md new file mode 100644 index 0000000..4b7d922 --- /dev/null +++ b/wiki/games/guild_wars_2.md @@ -0,0 +1,120 @@ +# Guild Wars 2 + +[Guild Wars 2](https://www.guildwars2.com) is a MMORPG which is available as +a standalone Launcher for Windows and on [Steam](./steam.md). + +## Add-ons + +Guild Wars 2 features a large add-on community. +All add-ons described in this guide will assume +[gw2-add-on-loader](#gw2-add-on-loader) is already installed. +It has to be set up first if not already done. +Additionally this guide assumes the usage of DX11 rendering which is enabled by +default. + +The following subsections assume that Guild Wars 2 is installed at +`gw2_root_directory`. +Replace this directory placeholder according to your installation. +Updating of the add-ons is done by downloading newer versions of the mentioned +files and replacing the old ones at the corresponding locations. + +### gw2-add-on-loader + +To make multiple add-ons work together an add-on loader is recommended. +One option for this is +[gw2-add-on-loader](https://github.com/gw2-addon-loader/loader-core). + +Download the current version from the +[releases page](https://github.com/gw2-addon-loader/loader-core/releases). +Proceed to place the files in the Guild Wars 2 Directory according to the +installation instruction. +This files namely include the following: + +- `gw2_root_directory/addonLoader.dll` +- `gw2_root_directory/d3d11.dll` +- `gw2_root_directory/dxgi.dll` +- `gw2_root_directory/bin64/d3d9.dll` + +This add-on loader loads both DX9 and DX11 add-ons. +[d3d9_wrapper](#d3d9wrapper) is needed for some functionality of the following +add-ons. +The installation of it is therefore recommended. + +This add-on does not need to be updated often. +It only is required when Guild Wars 2 switches its API. + +### d3d9_wrapper + +[d3d9_wrapper](https://github.com/gw2-addon-loader/d3d9_wrapper) is a wrapper +to the d3d9 API that includes d3d9 loading. + +Download the current version from the +[releases page](https://github.com/gw2-addon-loader/d3d9_wrapper/releases). +From there place the included Directory +`d3d9_wrapper/gw2addon_d3d9_wrapper.dll` in Guild Wars 2 +`gw2_root_directory/addon` directory. + +This add-on does not need to be updated often. +It only is required when Guild Wars 2 switches its API. + +### arcdps + +[arcdps](https://www.deltaconnected.com/arcdps/) is a damage meter. +Its menu is accessible in-game via the hotkeys `Alt-Shift-T`. + +Download the file `d3d11.dll` from +[their website](https://www.deltaconnected.com/arcdps/x64/). +Then rename it to `gw2addon_arcdps.dll` and move it to a newly created +directory inside the Guild Wars 2 add-on directory +`gw2_root_directory/addons/arcdps/gw2addon_arcdps.dll`. + +This add-on and its sub-add-ons needs to be updated regularly to work correctly. + +#### boon-tables + +There is an extension to the arcdps add-on regarding the boon stats which are +not easily readable otherwise. +For this download the current version of the +[gw2-arcdps-boon-table](https://github.com/knoxfighter/GW2-ArcDPS-Boon-Table/releases) +and move the downloaded `.dll` file without changing its name to +`gw2_root_directory/addons/arcdps/d3d9_arcdps_table.dll`. +This extension can be opened via the main menu of the original arcdps settings +with the `Boon Table` checkmark or with the hotkey `Alt-Shift-B`. + +#### mechanics + +Another extension to the arcdps addon is a log of mechanics for various +strikes, fractals and raids. +For this download the current version of +[gw2-arcdps-mechanics-log](https://github.com/knoxfighter/GW2-ArcDPS-Mechanics-Log/releases) +and move the downloaded `.dll` file without changing its name to +`gw2_root_directory/addons/arcdps/d3d9_arcdps_mechanics.dll`. +This extension can be opened via the extensions menu of the original arcdps +settings. + +#### healing_stats + +The following is an extension of the arcdps addon that allows easier readability +of healing. +For this download the current version of +[arcdps_healing_stats](https://github.com/Krappa322/arcdps_healing_stats/releases) +and move the downloaded `.dll` file without changing its name to +`gw2_root_directory/addons/arcdps/arcdps_healing_stats.dll`. +This extension can be opened via the extensions menu of the original arcdps +settings. + +### gw2radial + +[gw2radial](https://github.com/Friendly0Fire/GW2Radial) is a add-on for Guild +Wars 2 that allows faster access to markers, mounts and novelties. +It is accessible in-game via the hotkeys `Alt-Shift-M`. + +Download the current version from the +[releases page](https://github.com/gw2-addon-loader/GW2Radial/releases). +Then place the folder `gw2radial_d3d9` which contains the file +`gw2addon_gw2radial_d3d9.dll` in the add-on directory of Guild Wars 2 +`gw2_root_directory/addons`. + +This add-on does not need to be updated often. +Updates are only required to get new functions working for example when new +mounts are added. diff --git a/wiki/games/lutris.md b/wiki/games/lutris.md new file mode 100644 index 0000000..3b9696e --- /dev/null +++ b/wiki/games/lutris.md @@ -0,0 +1,149 @@ +# Lutris + +[Lutris](https://lutris.net/) is a free and open source video game platform for +[Linux](/wiki/linux/linux.md) systems. +It features compatibility with [GOG](https://www.gog.com/), +[Humble Bundle](https://humblebundle.com/), +[Epic Games](https://www.epicgames.com/), [Steam](/wiki/games/steam.md) and many +other [Windows](/wiki/windows/windows.md) games via its own installer that uses +[WINE](/wiki/linux/wine.md). Lutris can also use [Proton](/wiki/games/proton.md) +- a patched version of WINE developed by +[Valve](https://www.valvesoftware.com/). +Additionally to that Lutris supports many different +[emulators](/wiki/games/emulators.md). +For running both Windows applications aswell as games +[Bottles](/wiki/games/bottles.md) can be used. + +## Usage + +### Manually Add a Game + +By clicking on the `+` in the left upper corner of the Lutris application a new +game can be manually added. + +Mount `.iso` files first using the `mount -o loop <path to iso> <path to mount>` +command. +Check the directory the media was mounted to afterwards to select the appropiate +Option. + +If a setup executable is available select `Install a Windows game from media`. +Then select the setup executable from the mounted path. +And proceed with the installation. +Lutris will automatically pick the correct executable to start the game after +setup. + +For non-setup `.exe` files of completely downloaded games select +`Add locally installed game`. +Make sure to select the runner [WINE](/wiki/linux/wine.md) for the game in the +following window. +Make sure to set the `Wine prefix` to the desired location. +Select the `Working directory` to be the location of the downloaded game. +For cleanup afterwards the game can be moved into the WINE prefix folder as if +it was installed inside Windows. +If so make sure to point the `Executable` after right-clicking the game and +selecting `Configure` to the right location and remove the `Working directory` +entry as it is not needed if the executable is inside the WINE prefix. + + +### Setting Environment Variables + +Environment variables can be set globally or on a per game basis. +To set them globally navigate to the `Global options` tab in the `Preferences`. +There the `Environment variables` can be added and removed by selecting the +corresponding buttons. +To set the environment variables for a single game right-click the game and +select `Configure`. +Navigate to the `System options` tab where the `Environment variables` can be +found. + +An environment variable has two parts. +The key and the value. +This guide uses the notation `key=value` for better readability. +The following is an example of an environment variable in this notation. + +```txt +__GL_SHADER_DISK_CACHE=1 +``` + +### Nvidia Shader Cache Settings + +This section is based on a +[piece of documentation by Lutris](https://github.com/lutris/docs/blob/master/Performance-Tweaks.md#nvidia-gpu-only-optimization) +regarding performance optimization for systems with [Nvidia](/wiki/nvidia.md) +GPUs. + +For Nvidia GPUs the shader cache is set to have a softlimit of 128MB. +This can be easily reached by some games and will cause performance limitations. +The cleanup of the cache after reaching 128MB can be disabled. +For this set `__GL_SHADER_DISK_CACHE_SKIP_CLEANUP` to `1` as explained in the +[section regarding environment variables](#setting-environment-variables). + +By default Lutris uses a cache location for all games. +For better trouble shooting capabilities a unique shader location for each game +can be set. +This can be done with the [environment variable](#setting-environment-variables) +`__GL_SHADER_DISK_CACHE_PATH=</path/to/shaders/>` that has to be set as a per +game variable and adapted with a path of your choosing. + +### Performance Tweaks + +This section addresses ways of increasing the performance of games when run by +Lutris. + +An easy way to increase the performance of games is to install and enable +[Feral GameMode](https://github.com/FeralInteractive/gamemode) as recommended in +the [documentation of Lutris](https://github.com/lutris/docs/blob/master/Performance-Tweaks.md#enable-game-mode). +It is important to install both the 64-bit and the 32-bit version to ensure full +functionality. +Check the package manager of your distribution for packages with the names +`gamemode` and `lib32-gamemode` or similar names or install it manually via git. +Afterwards check in Lutris `Preferences` if `Enable Feral GameMode` is checked +under the `Global options` tab. + +Another way to increase the performance is to increase the +[Nvidia Shader Cache](#nvidia-shader-cache-settings) limit. + +### Installing Windows DLLs + +Select the game in the `Games` tab of the library. +Then select the upwards arrow next to the [WINE](/wiki/linux/wine.md) symbol in +the bar at the lower screen. +Select `Winetricks` and `Select the default wineprefix` in the window +afterwards. +After selecting `Install a Windows DLL or component` the package to install can +be selected. + +### Change WINE/Proton Version + +[Windows](/wiki/windows/windows.md) games are handled by +[WINE](/wiki/linux/wine.md). +After right-clicking a game and selecting `Configure` the `Wine version` can be +changed under the `Runner options` tab. +There are many different versions of WINE, WINE-fshack and various +[Proton](/wiki/games/proton.md) and +[Proton GE versions](/wiki/games/proton.md#ge-version) to select. +Using the default runner of [Bottles called Caffe](/wiki/games/bottles.md#caffe) +is also possible. + +## Troubleshooting + +This section explains ways of solving various problems that can occur when using +Lutris. + +### DX12/DX13 is not Supported on Your System + +This section handles a fix if the game is not able to run due to the system not +supporting DX12 or DX13. +This can be easily fixed by inserting `-dx11` in `Arguments` under the +`Game options` tab that pops up after selecting `Configure` for a selected game. + +### Crashes for Windows Games + +When it comes to crashes for [Windows](/wiki/windows/windows.md) games that get +handled by [WINE](/wiki/linux/wine.md) one point of failure is the selected +WINE version. +Change the version used as explained in +[the regarding section](#change-wineproton-version). +Especially trying [Proton GE versions](/wiki/games/proton.md#ge-version) or +WINE fshack versions can lead to successful running of the game. +Specific games also benefit from running [Caffe](/wiki/games/bottles.md#caffe). diff --git a/wiki/games/medieval_2_total_war.md b/wiki/games/medieval_2_total_war.md new file mode 100644 index 0000000..fed9a9a --- /dev/null +++ b/wiki/games/medieval_2_total_war.md @@ -0,0 +1,47 @@ +# Medieval 2: Total War + +Medieval 2: Total War is a game from the [Total War](https://www.totalwar.com) +series. + +## Mods + +### Third Age: Total War - Divide and Conquer + +[Divide and Conquer](https://www.moddb.com/mods/divide-and-conquer) is a submod +for the [Third Age Total War](https://www.moddb.com/mods/third-age-total-war) +mod. +It is a Lord of the Rings themed mod, not only adding a large array of new +units, castles and factions, but converting it to a setting based in +Middle-earth. + +#### Setup (Windows) + +For Windows guides follow the official installation guide at +[MOD DB](https://www.moddb.com/mods/divide-and-conquer/). + +#### Setup (Linux) + +The installation guide for this mod is based on +[Laetus'](http://www.twcenter.net/forums/showthread.php?724777-Third-Age-and-Linux) +post in the Total War Center Forum and assumes Medieval 2: Total War was +purchased via [Steam](./steam.md) and being on a linux system. +For installation the latest version needs to be downloaded from +[MOD DB](https://www.moddb.com/mods/divide-and-conquer/downloads/). +Following this run the executable (`.exe`) file with [wine](../linux/wine.md) +and select not the game but a newly createt folder. +The executable will create many files in the directory. +At last it will open a dialog for large adress awareness, which you can +immediately close without further actions. +The important files are located in a subdirectory called `mods`. +Rename all the files and directories under the `mods` folder to lowercase. +This can be done by running +`find . -depth -exec perl-rename 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;` after +changing the working directory to the `mods` folder. +`perl-rename` can be called just `rename` depending on the distribution. +Rename the directory below the `mods` folder to `third_age`. +`third_age` now has to be moved to the modding folder of Medieval 2: Total War. +This folder named `mods` too can be found on the top level of the game +directory. +Lastly you need to change the launch options in steam. +Open `Properties` of Medieval 2: Total War and set the launch options under the +general tab to `--features.mod=mods/third_age` diff --git a/wiki/minecraft.md b/wiki/games/minecraft.md similarity index 85% rename from wiki/minecraft.md rename to wiki/games/minecraft.md index f98e0a8..30fc5e2 100644 --- a/wiki/minecraft.md +++ b/wiki/games/minecraft.md @@ -4,7 +4,8 @@ ## Server -A server can be setup via docker with the [linuxserver image](./docker-images/itzg_-_minecraft-server.md). +A server can be setup via docker with the +[itzg image](../docker-images/itzg_-_minecraft-server.md). ## Client @@ -18,7 +19,7 @@ There are different Minecraft Clients available: ### Link Minecraft to a subdomain -To link Minecraft to one of your subdomains you need to add a [DNS](./dns.md) +To link Minecraft to one of your subdomains you need to add a [DNS](../dns.md) SRV-record: ```txt diff --git a/wiki/games/multimc5.md b/wiki/games/multimc5.md new file mode 100644 index 0000000..d26fb0f --- /dev/null +++ b/wiki/games/multimc5.md @@ -0,0 +1,28 @@ +# MultiMC5 + +[MultiMC5](https://multimc.org) is a custom launcher that allows multiple +[Minecraft](./minecraft.md) instances installed at once. + +## Usage + +### Adding OptiFine to a Minecraft instance + +[OptiFine](https://www.optifine.net/home) is a Minecraft optimization mod. +The following steps show how to add optifine to a MultiMC5 Minecraft instance. +It is based on a comment by +[FuchsFuchs1](https://gist.github.com/jspanos71/32dc422eb4435a8f8dd5604e7a77c327). +The setup uses the [Fabric Mod Loader](https://fabricmc.net/) together with +[OptiFabric](https://www.curseforge.com/minecraft/mc-mods/optifabric) to make +OptiFine available. + +- If not already done create an instance on MultiMC5 +- Select `Edit Instance`, navigate to `Version` and `Install Fabric` +- Download the version of + [OptiFabric](https://www.curseforge.com/minecraft/mc-mods/optifabric/files) + according to your Minecraft version +- Navigate to `Loader Mods` and press `Add`, then select the downloaded + OptiFabric file +- Download the version of [OptiFine](https://optifine.net/downloads) according + to your Minecraft version +- Navigate to `Loader Mods` and press `Add`, then select the downloaded + OptiFine file diff --git a/wiki/games/ppsspp.md b/wiki/games/ppsspp.md new file mode 100644 index 0000000..7284d8c --- /dev/null +++ b/wiki/games/ppsspp.md @@ -0,0 +1,43 @@ +# PPSSPP + +[PPSSPP](https://ppsspp.org/) is a Playstation Portable (PSP) +[emulator](./emulators.md). + +## Setup + +PPSSPP can be installed on different systems, a list for this can be found on +the [PPSSPP website](https://ppsspp.org/downloads.html). +Additionally it can be installed using [Flatpak](../linux/flatpak.md) where the +package is called `org.ppsspp.PPSSPP`. + +## Usage + +The following sections describe specific issues relating to the configuration +and usage of PPSSPP. + +### Steam Deck specific settings + +The following settings are especially useful when emulating PSP games on the +[Steam Deck](./steam_deck.md) as pointed out by +[nchristopher](https://github.com/nchristopher/steamdeck-emulation/blob/main/emulators/ppsspp.md). +But it is a good starting point for other systems aswell. +It is important to emphasize that the system needs to meet the requirements to +run Vulkan. +The Device name will change if you are not using a +[Steam Deck](./steam_deck.md). + +- Backend: `Vulkan` +- Device: `AMD RADV VANGOGH` +- Fullscreen: `on` +- VSync: `on` +- Rendering solution: `Auto (1:1)` +- Upscale level: `2x` +- Upscale type: `Hybrid + Bicubic` +- Deposterize: `on` + +### Running a game without selection in the menu + +To run a game instantly the path to the [ROM](./emulators.md) needs to be +appended to the command used for starting PPSSPP. +This should be made in quotation marks as it could contain characters that need +to be escaped. diff --git a/wiki/games/proton.md b/wiki/games/proton.md new file mode 100644 index 0000000..bc034b1 --- /dev/null +++ b/wiki/games/proton.md @@ -0,0 +1,48 @@ +# Proton + +[Proton](https://github.com/ValveSoftware/Proton) is a compatibility tool for +[Steam](./steam.md) by its developers, [Valve](https://www.valvesoftware.com), +based on [WINE](../linux/wine.md). + +## GE-Version + +[Proton GE](https://github.com/GloriousEggroll/proton-ge-custom) is a community +built version of Proton. +GE stands for Glorious Eggroll, the lead developer of Proton GE. +It often contains fixes for bugs which are not yet included in the official +Proton releases. +Thus some games, that do not work with Proton, can be run with Proton GE. + +## Setup + +Proton and [Proton GE](#ge-version) can be installed on Linux systems by using the +[ProtonUp](https://github.com/AUNaseef/protonup) application using +[Flatpak](../linux/flatpak.md) or the package manager of the distribution. +ProtonUp is usually bundled in a package named `protonup-qt`. +It can be used to install Proton GE versions for both +[Steam](/wiki/games/steam.md) and [Lutris](/wiki/games/lutris.md). + +## Troubleshooting + +This section addresses various errors that can happen when using Proton. + +### Errors with the Wine prefix of a specific game + +The last ressort for fixing problems that are related to the wine prefix of a +game is to delete the Wine prefix. +For this the id of the Steam game first has to be known. +This is done by navigating to the Steam website or the community page of the +specific game. +The URLs will have one of the following forms where the game id can be read: + +``` +http://steamcommunity.com/app/<game id>/ +http://store.steampowered.com/app/<game id>/ +``` + +After that navigate to the place your Steam games are stored. +You can remove `<steam location>/steamapps/compatdata/<game id>` to reset the +Wine prefix completely. +It is recommended to keep a backup of the folder containing the old Wine prefix +as it stores game saves and other important data, that can be useful. + diff --git a/wiki/games/sid_meier's_civilization_vi.md b/wiki/games/sid_meier's_civilization_vi.md new file mode 100644 index 0000000..9833215 --- /dev/null +++ b/wiki/games/sid_meier's_civilization_vi.md @@ -0,0 +1,19 @@ +# Sid Meier's Civilization VI + +[Sid Meier's Civilization VI](https://civilization.com/de-DE/) is a round-based +strategy game which is available as a standalone Launcher for Windows and on +[Steam](./steam.md) and many other video game distribution services. + +## Troubleshooting + +### Problems launching with [Proton](./steam.md) + +Due to the standalone launcher of Civilization VI being used in the startup +process of steam, it can be useful to skip the launcher by +setting the following line as launch options in the general tab of +steams game related settings: + +```sh +eval $( echo "%command%" | sed "s/2KLauncher\/LauncherPatcher.exe'.*/Base\/Binaries\/Win64Steam\/CivilizationVI'/" ) +``` + diff --git a/wiki/games/steam.md b/wiki/games/steam.md new file mode 100644 index 0000000..374c985 --- /dev/null +++ b/wiki/games/steam.md @@ -0,0 +1,101 @@ +# Steam + +[Steam](https://store.steampowered.com/) is a software for digital game +destribution. +It is developed by [Valve](https://www.valvesoftware.com). +Steam uses its compatibility layer, [Proton](./proton.md) for running windows +games on linux based operating systems. + +## Usage + +### Adding non-Steam Games + +Games that are not in the Steam store can be added to the Steam application. +This is done by opening (the desktop mode) of Steam and selecting +`Add a Non-Steam Game to My Library` under the `Games` tab in the top left +corner. +A dialog window will open to select the software to add to Steam. +Check the box or boxes of the software to add to Steam and tap +`Add Selected Programs`. + +For games such as launchers a `Launch Option` can be set most of the time to +skip the launcher and go directly into the specified game. +This option usually mirrors the command that would be used in the command line +of a system to go directly into the game. +Often this is done by simply appending the path of the specified game to the +command but this can also differ depending on the launcher. + +Websites can be added by setting `xdg-open "<url/ip>"` as the `Launch Option`. +This will open the website with the Steam browser. + +### Setting Icons and Banners for Games + +Images for games can be changed by downloading them and applying them manually. +An easier route can be taken by using +[SGDBoop](https://www.steamgriddb.com/boop). +To use it, you first need to install it. +It is available in the [flatpak package manager](../linux/flatpak.md). +After that navigate to the +[SteamGridDB website](https://www.steamgriddb.com/boop) and log in with your +Steam account. +Follow the remaining steps as described on the website. +Following this different images, banners and icons can be found on +[the website](https://www.steamgriddb.com/). +When hovering over an asset a little blue button will appear. +On the press of the button a game can be chosen that will use the asset in the +Steam application. +Make sure the game is a Steam game or +[added to Steam as a non-Steam game](#adding-non-steam-games). +After the installation of the game, the system may need to restart to correctly +work with [SGDBoop](https://www.steamgriddb.com/boop) for the game. + +## Steam Cloud + +The [Steam Cloud](https://partner.steamgames.com/doc/features/cloud) allows +games and the platform to utilize cloud storage hosted by Steam. +Games can use this to store data including game settings and saves. + +### Synchronize games saves without non-Steam-Cloud + +By using [Syncthing](../syncthing.md) game saves can be synchronized without +the Steam Cloud. +First set up Syncthing as described in the +[Syncthing entry](../syncthing.md#setup). +If the [Steam Deck](./steam_deck.md) or another system with only user access is +used the +[user space configuration](../syncthing.md#user-space-configuration-for-linux) +is recommended. +Afterwards move the game saves to the directory set up by Syncthing and create +symbolic links to link them back to the original place. + +## Error Handling + +The following section addresses errors that can handle inside Steam or game +errors that are specific to Steam. + +### Store Wishlist Displays More Items Than Shown + +It is possible for the counter of the Steam wishlist to display more games than +the number of games shown when showing the wishlist. +This happens when a game is removed from the Steam store but still being on the +wishlist. +To remove it navigate to the wishlist in a browser like +[Firefox](/wiki/firefox.md). +Press `F12` to open up the developer tools. +Then navigate to the `Console` tab and enter `g_rgWishlistData` in it. +It will display the list of games inside the wishlist. +Identify the game that has been removed and is not shown in the wishlist +anymore. +Remember the `appid` of the game +Then run the following command inside the console and change `<appid>` +accordingly. + +```js +$J.post( g_strWishlistBaseURL + 'remove/', { + 'appid' : <appid>, + 'sessionid' : g_sessionID +}); +``` + +By running this the game will be removed from the wishlist causing it to display +the correct number of games. diff --git a/wiki/games/steam_deck.md b/wiki/games/steam_deck.md new file mode 100644 index 0000000..1e15f75 --- /dev/null +++ b/wiki/games/steam_deck.md @@ -0,0 +1,20 @@ +# Steam Deck + +The [Steam Deck](https://store.steampowered.com/steamdeck) is a handheld gaming +computer made by the same developers as [Steam](./steam.md), +[Valve](https://www.valvesoftware.com). +Due to its form factor it can be used especially well to play games that need a +controller, such as many games that run on [emulators](./emulators.md). +But by adding a USB-hub and connecting keyboard and mouse it can be used to +play classical PC games aswell. +As the Steam Deck is using a linux based operating system all the windows based +games are run with the help of [Proton](./proton.md). +The Steam Deck includes the Flatpak based [Discover](../linux/flatpak.md) +software management suite to install additional software. + +## Usage + +### Shortcuts + +- Esc: `STEAM + D-Pad Left` +- Show Keyboard: `STEAM + X` diff --git a/wiki/git.md b/wiki/git.md index ce60f47..ceb6982 100644 --- a/wiki/git.md +++ b/wiki/git.md @@ -3,18 +3,29 @@ Git is probably the best version control system (VCS) there is. It's easy and can be lightweight, but also has tons of possibilities for using graphical (/web) user interfaces. -## Client +## Setup -The Client is pretty simple to understand. +Git consists of two parts: [a client](#client) and [a server](#server) + +### Client + +The client is pretty simple to understand. With only a handfull of commands you should be able to get your versioning going. For servers with web interfaces there are different cli tools to control it without using a browser. +For most linux distributions it is packaged with the `git` package -- Arch based systems: `pacman -S git` +There is also an interactive +[fixup guide by Seth Robertson](https://sethrobertson.github.io/GitFixUm/fixup.html). -There is also an interactive [fixup guide by Seth Robertson](https://sethrobertson.github.io/GitFixUm/fixup.html). +### Server -## Server with web interface +The server hosts the data that is needed for the versioning. +A distinction can be made between +[GUI-less servers](#server-without-graphical-interface) and +[servers with a web-GUI](#server-with-web-interface). + +#### Server with web interface Web interfaces for git are quite useful for easily showing code to other people. Additionally it is easy to collaborate together. @@ -23,9 +34,22 @@ Additionally it is easy to collaborate together. - [Github](https://github.com) is the go to system for many people. Not selfhosted, owned by microsoft ([cli-tool](https://github.com/github/hub)). -## Server without graphical interface +#### Server without graphical interface If you don't need a bloated web-interface a more basic approach is more than enough. - [git-server-docker](./docker-images/jkarlos_-_git-server-docker.md) is a pretty basic docker-container for git. + +## Usage + +This section addresses various use cases and problems solvable with git. + +### Ignore files having local changes + +If you need to make changes to a file that are local you can run +`config update-index --skip-worktree <file>`. +Following this the file won't show up as having changes from the upstream. +Note that files tagged with this command are checked out sparsly, so you need +to watch out for changes yourself if there are any. +To revert this run `config update-index --no-skip-worktree <file>`. diff --git a/wiki/gitea.md b/wiki/gitea.md index 68c32e1..b9d6c0c 100644 --- a/wiki/gitea.md +++ b/wiki/gitea.md @@ -3,11 +3,19 @@ Gitea is a selfhostable git server with a web interface. It is similar to Github but opensource. -## Server +## Setup -A server can be setup via docker with the [gitea image](./docker-images/gitea_-_gitea.md). +Gitea as a [Git](./git.md) service consists of a [client](#client) and a +[server](#server). -## Client +### Server + +The software can be setup via [Docker](/wiki/docker.md) with the +[gitea image](./docker-images/gitea_-_gitea.md). +Additionally to this a client is needed on the system that need access to the +server software. + +### Client If you want to use all features in addition to the basic client described in [git.md](git.md) but don't want to use the web-interface all the time you can get diff --git a/wiki/golinks.md b/wiki/golinks.md index d21d467..988fc4f 100644 --- a/wiki/golinks.md +++ b/wiki/golinks.md @@ -5,13 +5,16 @@ use bookmarks and run different searches by prefixes. ## Server -A server can be setup via docker with the [prologic image](./docker-images/prologic_-_golinks.md). +The software can be setup via [Docker](/wiki/docker.md) with the +[prologic image](./docker-images/prologic_-_golinks.md). -## Client +## Usage -### Firefox +This section addresses various features of Golinks. + +## Browser add-ons Add Golinks as a new search engine for firefox and set it as main search for the -address bar as described in [the Firefox article](./firefox.md). -Follow the addon part of the guide and put searx with +address bar as described in [the Firefox article](./firefox.md#add-a-new-search-engine). +Follow the add-on part of the guide and put searx with `<url to golinks instance>/?q=%s` as search string. diff --git a/wiki/hauk.md b/wiki/hauk.md new file mode 100644 index 0000000..df610fd --- /dev/null +++ b/wiki/hauk.md @@ -0,0 +1,11 @@ +# Hauk + +Hauk is a selfhostable location sharing server that can be used with the Hauk +app that is available at +[F-Droid](https://f-droid.org/packages/info.varden.hauk/) and +[Google Play Store](https://play.google.com/store/apps/details?id=info.varden.hauk). + +## Setup + +The server can be setup via [Docker](/wiki/docker.md) with the +[bilde2910 image](/wiki/docker-images/bilde2910_-_hauk.md). diff --git a/wiki/invidious.md b/wiki/invidious.md index a23c0bb..323d36d 100644 --- a/wiki/invidious.md +++ b/wiki/invidious.md @@ -4,16 +4,28 @@ YouTube. It includes locally stored subscription management. -## Server +## Setup -A server can be setup via docker with the [linuxserver image](./docker-images/linuxserver_-_jellyfin.md). +The software can be setup via [Docker](/wiki/docker.md) with the +[iv-org image](./docker-images/iv-org_-_invidious.md). -## Automatic redirect from YouTube +## Usage -There are various addons to redirect from YouTube links to your (or a public) +This section addresses various use cases and problems solvable with invidious. + +### Automatic redirect + +There are various add-ons to redirect from YouTube links to your (or a public) invidious instance. For Firefox for example there is [invidious redirect](https://addons.mozilla.org/en-US/firefox/addon/invidious-redirect-2/) or [privacy redirect](https://addons.mozilla.org/en-US/firefox/addon/privacy-redirect/). For Android there is [the UntrackMe app](https://framagit.org/tom79/nitterizeme) (available at [f-droid](./android/f-droid.md)). + +### Skip sponsorships in videos + +When using [Firefox](./firefox.md) SponsorBlock can be installed. +This will skip YouTube video sponsors in YouTube and in Invidious. +Further informations and links can be found in the +[Firefox entry of this wiki](./firefox.md#list-of-useful-firefox-addons). diff --git a/wiki/jackett.md b/wiki/jackett.md new file mode 100644 index 0000000..c58a8e3 --- /dev/null +++ b/wiki/jackett.md @@ -0,0 +1,32 @@ +# Jackett + +[Jackett](https://github.com/Jackett/Jackett) is an application that is +intended to manage multiple [BitTorrent](/wiki/bittorrent.md) indexers. +One of its main usecases is in feeding indexers to the +[\*ARR applications](/wiki/*arr.md). + +## Setup + +The software can be setup via [Docker](/wiki/docker.md) with the +[DyonR image](/wiki/docker-images/dyonr_-_jackettvpn.md) which also features a +VPN tunnel. + +## Usage + +### Adding an Indexer + +Indexers can be added by simply clicking `Add indexer` in the main menu. +For private or semi-private trackers login information or a cookie is needed. + +### Adding a Jackett Indexer to \*ARR applications + +For adding a Jackett Indexer to an \*ARR application press `Copy Torznab Feed` +of the Jackett indexer you want to add. +Paste this in the \*ARR application under +`Settings`, `Indexers`, `Add`, `Torznab` and `Custom` in the `URL` field. +Also copy and paste the Jackett API key into the corresponding field in the +\*ARR application. +Afterwards check and configure the correct category IDs via the `Categories` +option. +The list of supported categories can be found in the Jackett indexer +configuration (the wrench in the corresponding index list entry). diff --git a/wiki/jellyfin.md b/wiki/jellyfin.md index 7b7b9bb..028a541 100644 --- a/wiki/jellyfin.md +++ b/wiki/jellyfin.md @@ -1,23 +1,61 @@ # Jellyfin [Jellyfin](https://jellyfin.ord) is a suite for multimedia streaming. -It includes a web-interface. +It includes a web-interface and is mainly used for +[movies and tv shows](./movies_&_tv_shows.md). -## Server +## Setup -A server can be setup via docker with the [linuxserver image](./docker-images/linuxserver_-_jellyfin.md). +The software can be setup via [Docker](/wiki/docker.md) with the +[linuxserver image](./docker-images/linuxserver_-_jellyfin.md). -## Add IP-TV +## Usage + +This section addresses various features of invidious. + +### Live TV and DVR + +Jellyfin can connect to live TV with different tuners to display and record TV +channels - so called DVR - directly via jellyfin. + +#### Live TV with M3U Tuner You can add IP-TV under `Live TV` in the administration panel. -To include a m3u IP-TV stream just put the file on the server or copy its URL +To include a M3U IP-TV stream just put the file on the server or copy its URL and add it under `Live TV`. After that make sure to setup `DVR` to your liking to record. -## Handling of movies consisting of multiple files +#### Live TV and DVR with TVHeadend + +This section explains the steps neccessary to make [TVHeadend](./tvheadend.md) +work with a jellyfin server according to the +[official documentation](https://jellyfin.org/docs/general/server/plugins/tvheadend/). +It is assumed a working TVHeadend instance is up and running. +In the [TVHeadend entry](./tvheadend.md) a guide to run an instance is given. +In the admin dashboard install the +[TVHeadend plugin](https://jellyfin.org/docs/general/server/plugins/tvheadend/) +and restart the server. +Afterwards create a user with a username in TVHeadend under +`Go to Configuration > Users > Access Entries > Add`. +Check the `Change Parameters` +`Rights`, `Channel number range`, `Channel tags`, `DVR configurations`, +`Streaming profiles` and `Connection limits`. +Check the `Streaming Profiles` `htsp`, `matroska`, `pass`, +`webtv-h264-aac-matroska`, `webtv-h264-aac-mpegts`, `webtv-h264-vorbis-mp4` and +`webtv-vp8-vorbis-webm`. +Check `Enabled` and `Web Interface`. +Select `Basic`, `Advanced` and `HTSP` under `Streaming` and `Basic`, `HTSP` and +`View all` under `Video recorder`. +Save the user. +Create a password via `Configuration > Users > Passwords > Add`. +Check `Enabled`, select the according `Username` and fill in the `Password`. +Afterwards save. + +Now in Jellyfin under `Go to Dashboard > Plugins > TVHeadend > Settings` set +the `TVHeadend Hostname or IP Address`, the `HTTP Port` and `HTSP Port`, the +`Username` and the `Password` set in the previous step. -Jellyfin does not have the capability to seamlessly transition between multiple -files of a movie. -The easiest way to achieve a seamless movie experience is to concatenate the two -movie files. -This can be done with [ffmpeg](./linux/ffmpeg.md). +Finally run `Refresh Guide Data` under `Dashboard > Live TV > Live TV` to load +the guide data for the next 7 days aswell as to refresh the TV channels. +Afterwards the channels [mapped in TVHeadend](./tvheadend.md#adding-channels) +should appear in the `Live TV` Library. diff --git a/wiki/libreddit.md b/wiki/libreddit.md index 30930e2..5722e71 100644 --- a/wiki/libreddit.md +++ b/wiki/libreddit.md @@ -3,15 +3,20 @@ [LibReddit](https://github.com/spikecodes/libreddit) is an alternative frontend for Reddit. -## Server +## Setup -A server can be setup via docker with the [spikecodes image](./docker-images/spikecodes_-_libreddit.md). +The software can be setup via [Docker](/wiki/docker.md) with the +[spikecodes image](./docker-images/spikecodes_-_libreddit.md). -## Automatic redirect from Reddit +## Usage -There are various addons to redirect from Reddit links to your (or a public) +This section addresses various features of LibReddit. + +### Automatic redirect + +There are various add-ons to redirect from Reddit links to your (or a public) libreddit instance. For Firefox for example there is [privacy redirect](https://addons.mozilla.org/en-US/firefox/addon/privacy-redirect/). -For Android there is -[the UntrackMe app](https://framagit.org/tom79/nitterizeme) (available at [f-droid](./android/f-droid.md)). +For Android there is [the UntrackMe app](https://framagit.org/tom79/nitterizeme) +(available at [f-droid](./android/f-droid.md)). diff --git a/wiki/linkding.md b/wiki/linkding.md new file mode 100644 index 0000000..46bc561 --- /dev/null +++ b/wiki/linkding.md @@ -0,0 +1,21 @@ +# Linkding + +[Linkding](https://github.com/sissbruecker/linkding) is a self-hostable +bookmarking and archiving service. + +## Setup + +The software can be setup via [Docker](/wiki/docker.md) with the +[image by sissbrueckner](./docker-images/sissbrueckner_-_linkding.md). + +## Usage + +This section addresses various features of Linkding. + +### Browser add-on + +[On the firefox add-on site](https://addons.mozilla.org/de/firefox/addon/linkding-extension/) +you can find an add-on for linkding. +You need to configure it by giving the URL for your linkding instance and the +REST API token which can be found in the settings of linkding under the +integrations tab. diff --git a/wiki/linux/arch-linux/arch-linux.md b/wiki/linux/arch-linux/arch-linux.md new file mode 100644 index 0000000..e62d9ef --- /dev/null +++ b/wiki/linux/arch-linux/arch-linux.md @@ -0,0 +1,51 @@ +# Arch Linux + +[Arch Linux](https://archlinux.org/) is a rolling-release, general-purpose +[Linux](/wiki/linux/linux.md) +distribution. +Arch Linux uses the [pacman](./package_manager.md) package manager. +The Arch User Repositories (AUR) features community-made packages that can be +installed with different +[package manager that inlcude access to the AUR](/wiki/linux/arch-linux/package_manager.md). + +## Installation + +The installation of a basic Arch Linux system is described in the +[installation entry](/wiki/linux/arch-linux/installation.md). +The entry features a guide to install a system with a X server setup aswell as +programs for the most used tasks on a system. + +### ISO Medium + +For the installation usage of a simple USB key is advised. +This has to be flashed with the Arch ISO. +The ISO file can be found on the +[official website](https://www.archlinux.org/download/). +The iso can be written on an USB-stick using the command +`dd bs=4M if=<path to ISO> of=/dev/sdx conv=fsync oflag=direct status=progress`. +`<path to ISO>` points the command to the location of the ISO file + +## Recommended Practices + +The following articles describe steps to undertake to harden the system security +or setups and installation that are recommended for Arch Linux. + +## Enable Microcode Updates + +The microcode of Intel and AMD CPUs can be automatically updated by installing +the `amd-ucode` or `intel-ucode` package depending on your CPU. +Not all processors are supported, especially old ones can lead to problems. +It has to be confirmed that the processor is supported, if this is not the case +is possible for the next steps to break the functionality of the bootloader. + +The following part assumes the system is installed with +[UEFI bootloader](/wiki/linux/arch-linux/installation.md#10-install-and-configure-uefi-bootloader) +similar to the [recommended guide](/wiki/linux/arch-linux/installation.md). +The microcode updates can then be enabled by adding the following line into +`/boot/loader/entries/arch.conf`: + +```txt +initrd /<installed microcode package>.img +``` + +`<installed microcode package>` is either `amd-ucode` or `intel-ucode`. diff --git a/wiki/linux/arch-linux/installation.md b/wiki/linux/arch-linux/installation.md index 5b06081..ae540f6 100644 --- a/wiki/linux/arch-linux/installation.md +++ b/wiki/linux/arch-linux/installation.md @@ -1,17 +1,18 @@ # Arch installation with LUKS encryption and LVM -This is the English version of the -[German installation guide on rvbg.eu](https://wiki.rvbg.eu/#arch/installation.md). This guide is based upon a -[german arch wiki entry](https://wiki.archlinux.de/title/Moderne_Installation_mit_UEFI_und_Verschlüsselung). +[german arch wiki article](https://wiki.archlinux.de/title/Moderne_Installation_mit_UEFI_und_Verschlüsselung). +For encryption [dm-crypt](../dm-crypt.md) is used. +Inside the encrypted partition a logical volume will be created with +[LVM](../lvm.md). At the end of this guide a fully functional Arch Linux will be installed. ## 1. Preparation -Ahead of the installation an Arch boot-stick has to be created. The iso-file can -be found on the [official website](https://www.archlinux.org/download/). -The iso can be written on an USB-stick using `dd`. +Ahead of the installation an Arch boot-stick has to be created as described in +[the Arch Linux entry](/wiki/linux/arch-linux/arch-linux.md#installation-medium). + After that the USB can be plugged in the system on which Arch should be installed. Boot the target system and select `Boot Arch Linux (x86_64)`. @@ -100,31 +101,18 @@ Now the created filesystems will be mounted for the installation. - `mount /dev/sda1 /mnt/boot` - Mount EFI partition - `swapon /dev/mapper/main-swap` - Mounting swap partition -## 6. Prepare base installation (optional) - -In this step the country specific mirrorserver for the installation will be configured. -This will improve the download speed. - -- `cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak` - Create a backup - of mirrorlist -- `grep -E -A 1 ".*Germany.*$" /etc/pacman.d/mirrorlist.bak | sed '/--/d' > /etc/pacman.d/mirrorlist` -- Example command to only use _German_ mirrors -- `cat /etc/pacman.d/mirrorlist` - Check if the file is to your liking. If it is - not, you can just recover by using `mirrorlist.bak` - -## 7. Starting base installation +## 6. Starting base installation Now you need a working internet connection. Plug in your lan cable or use `wifi-menu` to get a wireless connection. -- `pacstrap /mnt base base-devel dosfstools gptfdisk lvm2 linux linux-firmware vim networkmanager` -- Installation of main system with needed tools +- `pacstrap /mnt base base-devel dosfstools gptfdisk lvm2 linux linux-firmware vim networkmanager ntp` - `genfstab -Up /mnt > /mnt/etc/fstab` - creation of fstab - `arch-chroot /mnt` - Switch into the newly installed system - `echo ArchLinux > /etc/hostname` - Assign hostname. `ArchLinux` can be changed for any name of your preference. -## 8. Set Region and Language +## 7. Set Region and Language - `echo LANG=en\_US.UTF-8 > /etc/locale.conf` - Assign system Language to be english (you can use other languages, look into the `/etc/locale.gen` for a list of all available languages) @@ -138,14 +126,13 @@ en_US.UTF-8 UTF-8 - `locale-gen` - Generate languages - `echo KEYMAP=de-latin1-nodeadkeys > /etc/vconsole.conf` - set the keymap -- `cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime` - set your timezone +- `ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime` - set your timezone (select the first file accordingly to your location) -- `date +%Y%m%d -s "<yyyymmdd>"` - set the current date (change - values accordingly) -- `date +%T -s "<hh:mm:ss>"` - set the current time (change values accordingly) -- `hwclock -w` - sync the current date and time with the hardware clock +- `ntpdate -q 0.de.pool.ntp.org` - sync the time and date with + [NTP](/wiki/linux/ntp.md) (note that a german time server is used and + depending on the needs a adjustments should be made) -## 9. Configure and create kernel-image +## 8. Configure and create kernel-image - `vim /etc/mkinitcpio.conf` @@ -156,12 +143,10 @@ en_US.UTF-8 UTF-8 - `mkinitcpio -p linux` - generate Kernel-Image -## 10. Install and configure UEFI bootloader +## 9. Install and configure UEFI bootloader - `bootctl install` - Prepare bootloader -- `ls -l /dev/disk/by-uuid` - find out the UUID -- `lsblk -no UUID /dev/sda2 | head -n1 > /boot/loader/entries/arch.conf` - print - the UUID in your configuration file +- `ls -l /dev/disk/by-uuid` - find out the UUID of your root partition - `vim /boot/loader/entries/arch.conf` - Create configuration - Change the config to look similar to this: @@ -173,8 +158,8 @@ en_US.UTF-8 UTF-8 options cryptdevice=UUID=<enter your uuid here>:lvm:allow-discards root=/dev/mapper/main-root resume=/dev/mapper/main-swap rw quiet ``` -- `cp /boot/loader/entries/arch.conf /boot/loader/entries/arch-fallback.conf` -- Create a fallback +- `cp /boot/loader/entries/arch.conf /boot/loader/entries/arch-fallback.conf` - + create a fallback - `vim /boot/loader/loader.conf` - Create loader configuration - Insert the following text @@ -184,12 +169,12 @@ en_US.UTF-8 UTF-8 default arch ``` -## 11. Finishing base installation +## 10. Finishing base installation - `passwd` - set password for the root account - `systemctl enable NetworkManager.service` -## 12. Finish the setup +## 11. Finish the setup - `exit` - exit the installed system - `umount /mnt/{boot,}` - unmount all partitions @@ -200,12 +185,21 @@ en_US.UTF-8 UTF-8 If the system is installed in a virtual environment or a system with deactivated UEFI, don't forget to enable the EFI option, otherwise the system won't boot. -## 13. Further steps and graphical environment +## 12. Further steps and graphical environment -Now you can follow my larbs installation script +Now you can follow the recommended larbs installation script of this wiki (`curl -o larbs.sh https://raw.githubusercontent.com/tiyn/larbs/master/larbs.sh`) -this will install a bunch of useful software including a graphical environment. +this will install a bunch of useful base software including +[a graphical environment](../x_window_system.md) and +[a window manager](../suckless.md#programs). You can go on to other guides aswell. +Especially the +[Recommended practices](/wiki/linux/arch-linux/arch-linux.md#recommended-practices) +should be checked for further setups. Additionally if you have a NVidia Graphics Cards you should read -[the NVidia entry](../nvidia.md) too. +[the NVidia article](../nvidia.md) too. + +If you are interested in automatic decryption of the dm-crypt encrypted +partition, take a look at the according section in +[the dm-crypt article](../dm-crypt.md). diff --git a/wiki/linux/arch-linux/package-manager.md b/wiki/linux/arch-linux/package-manager.md deleted file mode 100644 index 73caee7..0000000 --- a/wiki/linux/arch-linux/package-manager.md +++ /dev/null @@ -1,20 +0,0 @@ -# Package Manager - -Package managers are important programs to get software onto your system. -In Arch Linux there are 2 main package managers. -One is `pacman`, the default package manager. -But there are also a bunch other managers for the Arch User Repositories (AUR). - -In this article I'll use `yay` as my go to AUR manager. -`yay` is also a wrapper for `pacman` so you can just use `yay` instead of pacman -to install programs. - -## Bugfixes - -### Error while importing keys - -Both `yay` and `pacman` use gpg keys to confirm the package manager gets the -right package. -It is possible that it runs into errors when importing new keys. -If this happens you should try to restart your gpg key server with -`gpgconf --kill all`. diff --git a/wiki/linux/arch-linux/package_manager.md b/wiki/linux/arch-linux/package_manager.md new file mode 100644 index 0000000..826d9b4 --- /dev/null +++ b/wiki/linux/arch-linux/package_manager.md @@ -0,0 +1,60 @@ +# Pacman and Yay + +Package managers are important programs to get software onto your system. +In Arch Linux there are 2 main package managers. +One is `pacman`, the default package manager. +But there are also a bunch other managers for the Arch User Repositories (AUR). + +In this article `yay` is used as the go to AUR manager. +`yay` is also a wrapper for `pacman` so you can just use `yay` instead of pacman +to install programs. + +## Update Mirrorlist + +After a while not updating the system it is possible for the mirrorlist to be +outdated. +This can be fixed by updating it with the following command: + +```sh +curl -o /etc/pacman.d/mirrorlist https://archlinux.org/mirrorlist/all/ +``` + +## Bugfixes + +### Error while importing keys + +Both `yay` and `pacman` use gpg keys to confirm the package manager gets the +right package. +It is possible that it runs into errors when importing new keys. +If this happens you should try to restart your gpg key server with +`gpgconf --kill all`. + +### Unknown public key + +If the error `ERROR: One or more PGP signatures could not be verified!`, you +have to manually receive the key and trust it. +This is done by running the following lines: + +```sh +gpg --recv-key <KEYID> +gpg --lsign <KEYID> +``` + +Where <KEYID> is the placeholder of the identification string of the key. +It usually gets gets printed in the line above the error looking like +`FAILED (unknown public key <KEYID>)`. + +### Error while updating `is marginal trust` + +Both `yay` and `pacman` use gpg keys to confirm the package manager gets the +right package. +It is possible that it runs into errors when importing new keys. +If the error `[...] Key [...] is marginal trust` occurs while updating the +system, it can be fixed by running the following commands and then restarting +the update process of the package manager. + +```sh +pacman -Sy archlinux-keyring +pacman-key --populate archlinux +pacman-key --refresh-keys +``` diff --git a/wiki/linux/arch-linux/thinkpad_x220.md b/wiki/linux/arch-linux/thinkpad_x220.md index 512f23d..1c16b8e 100644 --- a/wiki/linux/arch-linux/thinkpad_x220.md +++ b/wiki/linux/arch-linux/thinkpad_x220.md @@ -67,3 +67,18 @@ Scripts to change configuration at docking/undocking - For the docked configuration use `vim /etc/dockd/dock.hook` - For the undocked configuration use `vim /etc/dockd/undock.hook` + +## FN keys not working + +If the fn keys are not working properly run +[a script](https://github.com/tiyn/dotfiles/blob/master/.local/bin/etc/fchange) +that changes the `sys/module/hid_apple/parameters/fnmode` file. +This toggles between the two different fn key functions. + +## Toggle the touchpad + +To toggle the touchpad on or off +[a simple script](https://github.com/tiyn/dotfiles/blob/master/.local/bin/tools/dwm/toggletouchpad) +can be used that uses `synclient TouchpadOff=1` or `synclient TouchpadOff=0`. +This requires `xf86-input-synaptics` which is a synaptics driver for +notebook touchpads. diff --git a/wiki/linux/audio.md b/wiki/linux/audio.md index 4ec559d..afcb414 100644 --- a/wiki/linux/audio.md +++ b/wiki/linux/audio.md @@ -2,9 +2,24 @@ Audio is an important point in a linux desktop environment +## Sound Server + +A sound server is software that manages use and access of audio devices. +The following is a list of available sound servers. + +- [PulseAudio](./pulseaudio.md) is the go-to sound server program used for + linux. +- [Pipewire](./pipewire.md) is a modern graph based sound server. + ## Noise cancellation -Noise cancellation can be achieved by installing -[Noisetorch](https://github.com/lawl/NoiseTorch). -This works for `pulseaudio` and `pipewire`. +Removing noise can be achieved by using +sound processing software options for [sound server](#sound-server). +An example for this is the noise reduction included in +[easyeffects](/wiki/linux/easyeffects.md#noise-cancellation) for Pipewire. + +As an alternative software explicitly made for the reduction of noise can be +installed. +Belonging to the latter option noise cancellation can be easily achieved by +installing [Noisetorch](https://github.com/lawl/NoiseTorch). After the installation modify the `Voice Activation Threshhold` to your needs. diff --git a/wiki/linux/date.md b/wiki/linux/date.md index ac26360..37acc55 100644 --- a/wiki/linux/date.md +++ b/wiki/linux/date.md @@ -7,7 +7,7 @@ To change the hardware clock look at the [according article](./hwclock.md) To change the time and date run the following command: -```shell +```sh date ``` @@ -16,14 +16,14 @@ date To change the date run the following command with an adjusted value for the date: -```shell +```sh date +%Y%m%d -s "20210809" ``` To change the time run the following command with an adjusted value for the date: -```shell +```sh date +%T -s "18:49:42" ``` @@ -34,6 +34,6 @@ After that you can check if the time is correct by displaying it. To set your timezone run the following command with the accordingly selected file for your location: -```shell +```sh cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime ``` diff --git a/wiki/linux/disk-management.md b/wiki/linux/disk-management.md index 7209536..233ff24 100644 --- a/wiki/linux/disk-management.md +++ b/wiki/linux/disk-management.md @@ -1,14 +1,70 @@ # Disk Management -## Grow non-LVM ext4 partition +This article focusses on non-LVM and non-MDADM storage. +For [LVM](lvm.md), [NTFS](./ntfs.md), [Samba](./samba.md), [MDADM](./mdadm.md) and [LUKS volumes](./dm-crypt.md) there +are separate entries. -ATTENTION: Please note that the partition to enlarge has to be the last one with -the free space after it. +## Universally Unique identifier + +Universally Unique identifier (UUID) are identifiers for informations on +computer systems. +Most notably they are used to identify file systems. +This way the UUID of a file system can be used to identify and +[mount it](#mounting) persistently and correctly. + +By listing the directory `/dev/disk/by-partuuid` all mappings of devices to a +UUID are displayed. + +## Mounting + +Mounting a file system makes the files of it accessible to the user. +The command `mount` is used to manually and temporarily mount file systems. +Automatic mounting is done by changing the file `/etc/fstab`. + +The exact guide on how to mount specific file systems can be found in their +respecitive wiki entries. +The following describes the general basics of mounting temporarily and +persistently. + +The basic mount command for temporarily accessing a file system is the +following: +`mount <path to partition> <path to mount point>` +All partitions can be found at `/dev` and the standard mount point is `/mnt` and +its subfolders. + +For automatic mounting the following line has to be adapted and added to the +file `/etc/fstab` +`<specified partition> <path to mount point> <file system> <additional options> <dump flag> <fsck order>` +The partition can be specified by [UUID](#universally-unique-identifier). +The file system varies and a file system specific guide on how to mount them +can be found in their respective entries. +The dump flag signals if the file system should be dumped. +The `fsck` order signals if a file system should be checked at boot. +Boot partitions should be flagged with a `1` for this reason, otherwise `0`. + +For undoing the mount the `umount` command can be used. +The following is a command to unmount a device from a specified directory. + +```sh +umount <path to mount point> +``` + +## Create Partition + +In the following it is assumed that the disk is `/dev/sda` + +- open up parted with `parted /dev/sdd` +- if not already done create a partition table with `mklabel GPT` +- create a primary partition (ext4 format) with `mkpart primary 2048s 100%` +- `quit` parted -SSH into the VM. +`<path to partition>` points to the partition that will be enlarged (for +example `/dev/sda2`). -- run `lsblk` check if the disk size has changed -- if not `reboot` the machine +## Grow non-LVM partition + +ATTENTION: Please note that the partition to enlarge has to be the last one with +the free space after it. In the following it is assumed that the partition to enlarge is `/dev/sda2` @@ -16,13 +72,43 @@ In the following it is assumed that the partition to enlarge is `/dev/sda2` - inside of parted run `print free` and check where the free space after your partition ends - run `resizepart` and follow the instructions; End is the number you checked in -the last step +the last step (alternatively you can insert `100%` as end, if you want to add all +the available free space to the partition) - `quit` parted -Now you need to resize the filesystem with `resize2fs /dev/sda2`. +Afterwards the file system need to be resized as described in a +[later section](#growing-a-file-system). + +## Growing a File System + +A file system can easily be resized if free space is available on the partition +it is stored in. +The free space has to be placed behind the partition. +This can be done by running the following command: + +```sh +sudo resize2fs <path to partition> +``` + +## Shrinking a File System + +To shrink a file system the `resize2fs` command will be used aswell as `e2fsck`. +First the file system needs to be checked for size aswell as data distribution. +This can be done using the command `sudo e2fsck -f <path to partition>`. +`<path to partition>` directs to the volume whose file system should be +shrinked - for example `/dev/sda1`. +It has to be the same for the next step aswell. +Afterwards the file system can be shrinked with the command +`sudo resize2fs <path to partition> <new size of the file system>`. +`<new size of the file system>` is the size that the file system will be +shrunken to in the usual notation (for example `12G`). +Especially for large file systems this might take a while. ## Error solving +This section addresses various problems that can occur and are related to +disk-management. + ### sudo: unable to open ... Read-only file system Ususally the filesystem will go into read-only mode whe the system is running @@ -34,3 +120,23 @@ To fix it run: `fsck from util-linux 2.20.1` you may want to try using the ext4-specific fsck: - `fsck.ext4 -f /dev/sda1` + +### cannot access: Transport endpoint is not connected + +This error message can occur if a mounted directory is left mounted due to a +crash of the filesystem but not accessible anymore. +This error can be fixed and the directory made accessible again by running the +following command. + +```sh +fusermount -u <path to mount point> +``` + +If this does not work the following command can be used to unmount the device. + +```sh +umount -l <path to mount point> +``` + +This section is based on a reply by +[Jonathan Brown on Stack Overflow](https://stackoverflow.com/questions/16002539/fuse-error-transport-endpoint-is-not-connected). diff --git a/wiki/linux/dislocker.md b/wiki/linux/dislocker.md new file mode 100644 index 0000000..f19e4c1 --- /dev/null +++ b/wiki/linux/dislocker.md @@ -0,0 +1,55 @@ +# Dislocker + +[Dislocker](https://github.com/Aorimn/dislocker) is a driver to read and write +Bitlocker-ed volumes under Linux systems. + +## Setup + +On most of the Linux distributions Dislocker is bundled with the `dislocker` +package. + +## Usage + +### Manual Mounting of Bitlocker Partition + +For the [mounting](/wiki/linux/disk-management.md#mounting) to work two directories +are required. +One to mount the `dislocker-file` (`/mnt/bitlocker`) and one to mount the +[windows volume](/wiki/linux/ntfs.md#manual-mounting) (`/mnt/windows`). +The device which holds the windows partition is assumed to be calles +`/dev/sdc1`. + +The following command mounts the `dislocker` file to `/mnt/bitlocker`. +Make sure to replace the password in the following command. +There is no gap between the `-u` and the password: +`sudo dislocker /dev/sdc1 -u<password> -- /mnt/bitlocker`. +If the Bitlocker partition is set up using a `.BEK` file then the follwing +command takes the path to the file in: +`sudo dislocker /dev/sdb2 -f <path to bek-file> -- /mnt/bitlocker` +Alternatively a recovery key can be used: +`sudo dislocker /dev/sdc1 -p<recovery password> -- /mnt/bitlocker`. + +Afterwards the `dislocker-file` can be mounted to the `/mnt/windows` directory +or another mount point as described in the +[NTFS entry](/wiki/linux/ntfs.md#manual-mounting). + +### Automatic Mounting at Boot + +Using [fstab](/wiki/linux/disk-management.md#mounting) the partition encrypted with +Bitlocker can be automatically mounted. +The following lines have to be adapted and written into +[`/etc/fstab`](/wiki/linux/disk-management.md#mounting). +In this case the intermediary dislocker file `dislocker-file` is mounted to +`/mnt/bitlocker`. + +```txt +UUID=<partition uuid> /mnt/bitlocker fuse.dislocker bekfile=<path to bek-file>,nofail 0 0 +``` + +After that a line to mount the `dislocker-file` as a [NTFS](./ntfs.md) partition +has to be added as described in +[the NTFS entry](/wiki/linux/ntfs.md#automatic-mounting). +In this case the specified partition to mount is +`/mnt/bitlocker/dislocker-file`. +The mount point can be chosen according to preference - for example +`/mnt/windows`. diff --git a/wiki/linux/dm-crypt.md b/wiki/linux/dm-crypt.md index 091f5c1..eaf34f6 100644 --- a/wiki/linux/dm-crypt.md +++ b/wiki/linux/dm-crypt.md @@ -1,15 +1,176 @@ # DM-Crypt -`dm-crypt` can create and manage encrypted devices. +DM-Crypt can create and manage encrypted devices. -## Creating an encrypted devices +## Usage + +### Creating an Encrypted Devices To create a encrypted device simply run: `cryptsetup -y -v luksFormat /dev/sda2`. -Where `/dev/sda2` is the device you want to create. +Where `/dev/sda2` is the device to be created. + +### Create/Add a Key File to an encrypted volume + +First a key file has to be created. +With the following lines a random file will be created that will later be used +as the key file. +If a key file already exists this part can be skipped. +The following command needs to be adapted. +It will create a key of bitlength 2048 (512 x 4). + +```txt +dd bs=512 count=4 if=/dev/random of=<path to destination> +``` + +It is possible to increase the length to get a stronger key file. +Alternatively strong LUKS keys can be created using [OpenSSL](./openssl.md) +using a bitlength of 4096: +`openssl genrsa -out <path to destination> 4096`. +The key file will then be saved to `<path to destination>`. + +Finally the key file can be added to an opened LUKS encrypted volume by running +the following command: +`cryptsetup luksAddKey <path to LUKS volume> <path to key file>`. + +`<path to LUKS device>` is the encrypted device (for example `/dev/sda2`) and +`<path to key file>` is the location of the key file. + +### Resize a LUKS Encrypted Volume + +If volume groups on the encrypted volume are opened make sure to close them +with the following command modified to the present needs: +`vgchange -a n <volume group>` + +Open the encrypted volume: +`cryptsetup luksOpen <path to LUKS volume> <mapper location>`. +`<path to LUKS device>` is the encrypted device (for example `/dev/sda2`) and +`<mapper location>` is where it will be mapped to with `dev/mapper/` prepended. + +Now resize the encrypted volume to all available space of the partition. +If the encrypted volume should not be extended to the whole partition +or the partition is too small for its intended purposes, make sure to resize the +partition first accordingly (see [disk management](./disk-management.md)). +`cryptsetup resize crypt-volume` + +### Open/Close an Encrypted Volume + +To open and map a device using a set password run +`cryptsetup luksOpen <path to LUKS device> <mapper location>` where +`<path to LUKS device>` is the encrypted device (for example `/dev/sda2`) and +`<mapper location>` is where it will be mapped to with `dev/mapper/` prepended. +Using `secret` as a `<map location>` the opened drive is available at +`/dev/mapper/secret`. + +Alternatively an encrypted volume can be decrypted using +[a key file](#createadd-a-key-file-to-an-encrypted-volume) if set up for it. +This can be achieved by running: +`cryptsetup luksOpen <path to LUKS volume> crypt-volume --key-file=<key file location>`. +`<path to LUKS device>` is the encrypted device (for example `/dev/sda2`). + +Afterwards it can be closed by running `cryptsetup close /dev/mapper/crypt0`. + +### Creating/Add a USB Decryption Key + +This guide assumes an Arch Linux System, as installed in +[this wikis arch linux installation](./arch-linux/installation.md). +This section is based on entries from the +[arch linux forum](https://forum.archlinux.de/d/28886-systementschluesselung-per-usb-stick). +It uses a similar technique to the decryption of the encrypted volume via +[a key file](#createadd-a-key-file-to-an-encrypted-volume). + +Insert the USB stick. +This guide will assume its address is `/dev/sde`. + +Fill in the first sectors (in this case 94, make sure this number is bigger +than skip sector count and size sector count combined) stick with a random +sequence: +`dd if=/dev/urandom of=/dev/sde bs=512 seek=1 count=94`. +Save the key to a keyfile (with offset 14848 = 29 x 512 and +keysize 2048 = 4 x 512): +`dd if=/dev/sde bs=512 skip=29 count=4 > key.bin`. + +Add the keyfile to the encrypted partition (assuming the dm-crypted device is +called `/dev/sda2`): +`cryptsetup luksAddKey /dev/sda2 key.bin`. + +Next it has to be made sure that the decryption key, is available at the same +position every time. +For this check the `serial` and `product` of the USB stick with the following +commands. + +```sh +udevadm info -a -p `udevadm info -q path -n /dev/sde` | grep ATTRS{serial} +udevadm info -a -p `udevadm info -q path -n /dev/sde` | grep ATTRS{product} +``` + +The first line gives the `serial`, the second the `product`. +The `product` should match the USB stick. + +After this create a file at `/etc/udev/rules.d/50-usbkey.rules` with the +following content. +Assuming the `serial` is `14AB0000000096`. + +```txt +SUBSYSTEMS=="usb", ATTRS{serial}=="14AB0000000096", KERNEL=="sd*", SYMLINK+="usbkey%n" +``` + +Then reload the udev rules by running: +`udevadm control --reload-rules`. + +Unplug the stick and plug it back in. +It should be available under `dev/usbkey`. + +With the following command an encrypted device can be decrypted with the usb +stick. +Use this to confirm the correct setup of the decryption key and the encrypted +device. +Make sure to edit `--key-file`, `--keyfile-offset` and `--keyfile-size` to +match the settings used in the creation of the USB key. + +```sh +cryptsetup luksOpen /dev/sda2 crypt-volume --key-file=/dev/usbkey --keyfile-offset=14848 --keyfile-size=2048 +``` + +After that make sure in `/etc/mkinitcpio.conf` under the `HOOKS` section +`keymap encrypt lvm2` are written before `filesystems`. +Add `/etc/udev/rules.d/50-usbkey.rules` under the `FILES` section. + +Then modify `/boot/loader/entries/arch.conf` and add +`cryptkey=/dev/usbkey:14848:2048` to the +end of the `options` line. + +Finally run: +`mkinitcpio -p linux`. + +Reboot the system with `reboot`. +Make sure the USB key for decryption is plugged in. +If so the encrypted partition should be decrypted automatically. + +### Automatical Mounting of an Encrypted Volume + +For automatic mounting of an encrypted volume a keyfile is needed. +This will be achieved by entries in the file`/etc/fstab` aswell as the file +`/etc/crypttab`. +First adapt and insert the following lines into `/etc/fstab`: + +```txt +/dev/mapper/<mapping location> <mount location> ext4 defaults 0 0 +``` + +`<mapping location>` is a freely choosable identificator and while the +`<mount location>` is an existing directory for the volume to be mounted on. + +Additionally the following lines has to be adapted and added to the file +`/etc/crypttab`: -## Open an encrypted device +```txt +<mapping location> UUID=<UUID of encrypted volume> <location of key file> +``` -To open and map a device run `cryptsetup -y -v luksFormat /dev/sda1 crypt0` where -`/dev/sda1` is your encrypted device and `crypt0` is where it will be mapped to -with `dev/mapper/crypt0`. +`<mapping location>` has to be the same as chosen in the step before. +`<UUID of encrypted volume>` is the +[universally unique identifier](/wiki/linux/disk-management.md#universally-unique-identifier) +of the volume. +`<location of key file>` describes the location where to find the key file +created in the previous step. diff --git a/wiki/linux/easyeffects.md b/wiki/linux/easyeffects.md new file mode 100644 index 0000000..0714e1e --- /dev/null +++ b/wiki/linux/easyeffects.md @@ -0,0 +1,44 @@ +# Easyeffects + +[Easyeffects](https://github.com/wwmm/easyeffects) is a free and open-source +GUI-software for applying sound effects and filters on input and output audio +streams. +Easyeffects uses [Pipewire](./pipewire.md) as +[sound server](/wiki/linux/audio.md#sound-server). + +## Setup + +Easyeffects can be installed on most distributions by installing the +`easyeffects` package. +An installation via [Flatpak](./flatpak.md) is also possible. + +## Usage + +Easyeffects can apply `Effects` to input and output sound. + +### Noise cancellation +Setup +Noise cancellation can be achieved by installing +Easyeffects. +Make sure to check the box `Process all Inputs` and `Process all Outputs` to +route everything through `easyeffects`. +Make log out of your system afterwards. +To enable noise cancellation navigate `Inputs` and click `Plugins`. +After that click `Add Plugin` and select `Noise Reduction`. + +### Presets + +Presets can be created by selecting `Presets`, setting the name and clicking the +`+` to save it. +It is then displayed in the list below from where it can be loaded or deleted. +Presets are saved in the directory `~/.config/easyeffects/input` and +`~/.config/easyeffects/output`. + +#### Recommended Presets + +The following is a list of presets that have been tested and only need slight +configuration to adjust them to the specific system. + +- [tiyns voice input preset](https://github.com/tiyn/dotfiles/blob/master/.config/easyeffects/input/voice.json) + is a list of different effects to achieve an enhanced quality of microphone + sound for speach. diff --git a/wiki/linux/fdupes.md b/wiki/linux/fdupes.md new file mode 100644 index 0000000..275e1c2 --- /dev/null +++ b/wiki/linux/fdupes.md @@ -0,0 +1,26 @@ +# fdupes + +[fdupes](https://github.com/adrianlopezroche/fdupes) is a command-line utility +for identifying and deleting duplicate files residing within one or more +specified directories. + +## Setup + +The fdupes program can be installed by going to the +[github page of it](https://github.com/adrianlopezroche/fdupes/releases). +Alternatively many linux package managers package fdupes in the `fdupes` +package. + +## Usage + +Running `fdupes <path to directory>` find the duplicates inside the given +directory. +Using the `-r` flag the program will search in the subdirectories aswell. +`-d` signals to delete the duplicates and will force a dialogue to select which +version of the file to keep. +This dialogue can be skipped by using `-N` which will select the first file of +a set of multiple duplicates. + +A complete and automatic removal of all duplicates within a directory and its +subdirectories works with the following command: +`fdupes -rNd <path to directory>`. diff --git a/wiki/linux/ffmpeg.md b/wiki/linux/ffmpeg.md index 1d64694..a488bcb 100644 --- a/wiki/linux/ffmpeg.md +++ b/wiki/linux/ffmpeg.md @@ -1,20 +1,65 @@ -# ffmpeg +# FFmpeg -[ffmpeg](https://www.ffmpeg.org) is a free and open-source suite consisting of +[FFmpeg](https://www.ffmpeg.org) is a free and open-source suite consisting of many audio and video tools and libraries. +## Usage + +### Convert from format to another + +The following line is an example for a conversion of a video and audio capable +format - in this case `.webm` - to an audio format - in this case `.flac`: +`ffmpeg -i audio.webm -c:a flac audio.flac`. +For audio to audio conversion the following example is used: +`ffmpeg -i audio.m4a -f flac audio.flac`. + ## Concatenate multiple video files with matching audio-tracks First you need to create a text file `files.txt` that includes a line for every video you want to concatenate in the form of: -```shell +```sh file '<path to the video>' ``` +You have to give the absolute path towards the files. Make sure the videos are in correct order. To concatenate these video files you can run: -```shell +```sh ffmpeg -f concat -safe 0 -i files.txt -map 0 -c copy output.mp4 ``` + +If the video files you want to concatenate are not mp4 files change the above +command accordingly. + +### Two-Pass Encoding + +Two pass encoding - as described in the +[official FFmpeg documentation](https://trac.ffmpeg.org/wiki/Encode/H.264#twopass) +- uses two passes. +The first pass analyzes the input data and outputs a descriptor file. +The second pass actually encodes the data. +The following is an example where the file `input` is encoded with `libx264` to +`mp4` video with `libfdk_aac` audio. +The video bitrate is `555k` and the audio bitrate is `128k`. + +```sh +ffmpeg -y -i input -c:v libx264 -b:v 555k -pass 1 -c:a libfdk_aac -b:a 128k -f mp4 /dev/null && \ +ffmpeg -i input -c:v libx264 -b:v 555k -pass 2 -c:a libfdk_aac -b:a 128k output.mp4 +``` + +### Encode Audio/Video to Target Size + +For the encoding of a file to a target size the target bitrate of the output +video is needed. +An explanation of this was given by +[aergistal on Stack Overflow](https://stackoverflow.com/questions/29082422/ffmpeg-video-compression-specific-file-size). +This can easily be done with the calculation `bitrate = target size / duration` +in Bits/Second. +Afterwards the encoding can be done by using Two-Pass Encoding as explained in +[a previous section](#two-pass-encoding). +Note that the bitrate for videos is split amongst a bitrate for video and a +bitrate for audio. +The target bitrate has to be equal to or greater than the sum of both video +bitrate and audio bitrate. diff --git a/wiki/linux/flac_(package).md b/wiki/linux/flac_(package).md new file mode 100644 index 0000000..62cbfcd --- /dev/null +++ b/wiki/linux/flac_(package).md @@ -0,0 +1,55 @@ +# flac (Package) + +This article describes the `flac` package on linux. +For the audio codec see the [flac entry](../flac_(codec).md) +`flac` is a package to work with the [flac codec](../flac_(codec).md). + +## Setup + +On most distributions it is bundled together with the command line tagging +software `metaflac` and other auxiliary tools in the `flac` package. +Another possible tagging software is [MusicBrainz Picard](../picard.md) + +## Usage + +### Splitting Flac file according to cue file + +An easy way to split flac files according to a [cue file](../cue_sheet.md) is +using `cuebreakpoints` and `shnsplit`. +On most distributions they are in a package with the same name. +The following line of shell command splits a flac file according to a cue file. +The `-o` tag specifies the output file format. + +```sh +cuebreakpoints '<cue file>' | shnsplit -o flac '<audio flac file>' +``` + +Omitting of the `-o` flag will result in output files with the `.wav` filetype. +Alternatively the usage of `cuebreakpoints` can be avoided with the following +command. + +```sh + shnsplit -f '<cue file>' -o flac '<audio flac file>' +``` + +Another option is to use [`cue2tracks`](https://github.com/ar-lex/cue2tracks). +This has the advantage that tags for album title, song name and others are set +while splitting the files. +An example command looks like the following. +The `.flac` file is not mentioned in the command. + +```sh +cue2tracks '<cue file>' +``` + +For any of these commands there can be problems with splitting `.flac` files. +It then is recommended to convert the file to the also lossless `.wav` format, +split the files and convert it back to `.flac`. + +High quality flac files with older `.cue` files that use the format `mm:ss:ff` +might split the file at the wrong timings. +The format `mm:ss:ff` is not compatible with the newer versions of +cuebreakpoints, cue2tracks and shnsplit. +To get the correct timings the `.cue` file has to be changed to use the format +`mm:ss:fff`. +It is recommended to use the shnsplit alternative in this case. diff --git a/wiki/linux/flatpak.md b/wiki/linux/flatpak.md new file mode 100644 index 0000000..0187b5f --- /dev/null +++ b/wiki/linux/flatpak.md @@ -0,0 +1,31 @@ +# Flatpak + +[Flatpak](https://flatpak.org/) is a cross-distribution package manager for +linux systems. + +## Setup + +The `flatpak` package can be installed by most distribution specific package +managers (e.g. [pacman or yay](./arch-linux/package_manager.md)). +After installation it is important to add [flathub](https://flathub.org/home), +a source for many Flatpak packages. +The addition of this can be done by running +`flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo`. + +For browsing and installing Flatpak packages via a graphic user interface the +software management suite called Discover can be used. +It requires the Flatpak backend. + +## Usage + +### Installing software + +When software installation is done with Flatpak it is recommended to pass the +`--user` so the software is not installed system-wide but for the user only. +In practice it looks like the following: +`flatpak install --user <package to install>`. + +### Running software + +Software installed via Flatpak can be run by typing the full package path into +the command line, for example `com.makemkv.MakeMKV`. diff --git a/wiki/linux/fwupd.md b/wiki/linux/fwupd.md new file mode 100644 index 0000000..0860b26 --- /dev/null +++ b/wiki/linux/fwupd.md @@ -0,0 +1,39 @@ +# fwupd + +[fwupd](https://fwupd.org/) is a daemon for managing and installing firmware +updates on Linux based operating systems. +It is mainly used for UEFI firmware and supported devices. + +## Setup + +fwupd can be installed on most distributions by installing the +`fwupd` package. + +## Usage + +The following commands describe the basic usage of an update process using +fwupd. + +First the devices updatable by fwupd can be checked. + +```sh +fwupdmgr get-devices +``` + +Afterwards the latest metadata can be downloaded by the following command. + +```sh +fwupdmgr refresh +``` + +The updates can the be listed. + +```sh +fwupdmgr get-updates +``` + +Finally the updates can be installed. + +```sh +fwupdmgr update +``` diff --git a/wiki/linux/gpu_screen_recorder.md b/wiki/linux/gpu_screen_recorder.md new file mode 100644 index 0000000..b60f39e --- /dev/null +++ b/wiki/linux/gpu_screen_recorder.md @@ -0,0 +1,46 @@ +# GPU Screen Recorder + +[GPU Screen Recorder](https://git.dec05eba.com/gpu-screen-recorder/about/) is a +utility similar to [Nvidia ShadowPlay](/wiki/nvidia.md#screen-capture). + +## Setup + +GPU Screen Recorder can be installed on some distributions by installing the +`gpu-screen-recorder-git` package. +An installation via [git](https://git.dec05eba.com/gpu-screen-recorder/about/) +is always possible. + +## Usage + +The program features normal recording of the screen and recording in the so +called replay mode. +To start a simple screen recording run the following command. + +```sh +gpu-screen-recorder -w $(xdotool selectwindow) -c mp4 -f 60 -a "$(pactl get-default-sink).monitor" -o test_video.mp4` +``` + +The window to record has to be selected first by clicking on it. +The default audio device is already selected. + +To stop the recording `Ctrl-C` the previous command or use the command below. + +```sh +killall -SIGINT gpu-screen-recorder +``` + +For the replay mode the recording can be started the following way. + +```sh +gpu-screen-recorder -w $(xdotool selectwindow) -c mp4 -f 60 -a "$(pactl get-default-sink).monitor" -r 30 -o .` +``` + +In this case a replay will have the maximum length of 30 seconds (specified by +`-r 30`). +It is also important to assign the `-o` flag with a directory and not a file +anymore. +The last 30 seconds (replay) can then be sending a SIGUSR1 signal. + +```sh +killall -SIGUSR1 gpu-screen-recorder +``` diff --git a/wiki/linux/hwclock.md b/wiki/linux/hwclock.md index a561420..2959fac 100644 --- a/wiki/linux/hwclock.md +++ b/wiki/linux/hwclock.md @@ -2,18 +2,20 @@ `hwclock` is a program to set and display the hardware clock. -## Display time and date +## Usage + +### Display time and date To display the hardware clock run the following command: -```shell +```sh hwclock ``` -## Sync the hardware clock to the system time +### Sync the hardware clock to the system time To sync the hardware clock run the following command: -```shell +```sh hwclock -w ``` diff --git a/wiki/linux/init.md b/wiki/linux/init.md new file mode 100644 index 0000000..1eeaf99 --- /dev/null +++ b/wiki/linux/init.md @@ -0,0 +1,11 @@ +# Init + +The init process is the first process started after boot. +All processes running in later stages are descendants of the init process. +The init process is given to a init system that manages various services. + +## Init Services + +The following is a list of available init services. + +- [SystemD](/wiki/linux/systemd.md) is most common among linux systems. diff --git a/wiki/linux/intel.md b/wiki/linux/intel.md new file mode 100644 index 0000000..cfb7f4a --- /dev/null +++ b/wiki/linux/intel.md @@ -0,0 +1,31 @@ +# Intel + +[Intel](https://www.intel.de/content/www/de/de/homepage.html) is a vendor and +manufacturer of semiconductor chips. +They provide motherboard chips, network interface controllers, flash memory, +[graphics chips](#intel-graphics) and more. + +## Intel Graphics + +Intel graphics is the name for various intel made integrated graphics +processors. + +### Configuration + +#### Screen Tearing + +Linux systems that use intel graphics can sometimes have problems with screen +tearing. +To get this working you need to change the `/etc/X11/xorg.conf.d/20-intel.conf` +as explained on +[maketecheasier](https://www.maketecheasier.com/get-rid-screen-tearing-linux) +to: + +```txt +Section "Device" + Identifier "Intel Graphics" + Driver "intel" + Option "TearFree" "true" +EndSection +``` + diff --git a/wiki/linux/ip.md b/wiki/linux/ip.md index 7dc37c3..8c3a84b 100644 --- a/wiki/linux/ip.md +++ b/wiki/linux/ip.md @@ -4,24 +4,50 @@ interfaces, routing and tunnels. It is a replacement for the program `ifconfig`. -## List all network interfaces +## Usage + +### List all network interfaces You can list network interfaces by running: -```shell +```sh ip link list ``` -## Enable/disable a network interface +### Enable/disable a network interface Assuming the interface is named `wlan0` run the following: -```shell +```sh ip link set wlan0 up ``` Disabling works accordingly by running: -```shell +```sh ip link set wlan0 down ``` + +### Get Outside IP + +For VPN and other applications using a tunnel it can be useful to check the +outside IP of your system. +The following command uses the `dig` command. +It is either bundled in the `dig` package - like in +[Arch Linux](/wiki/linux/arch-linux/arch-linux.md) - or in the `dnsutils` +package - like in Ubuntu - or even another package depending on the distribution +used. +After installation the following command can be used to get the outside IP +address of your system. + +```sh +dig +short txt ch whoami.cloudflare @1.0.0.1 +``` + +There is an alternative to this using `wget`. +It uses a call to DuckDuckGo and requests the outside IP from there. +The mentioned command is the following. + +```sh +wget -qqO- 'https://duckduckgo.com/?q=what+is+my+ip' | grep -Pow 'Your IP address is \K[0-9.]+' +``` diff --git a/wiki/linux/khal.md b/wiki/linux/khal.md index e3fb7c0..0c16bdb 100644 --- a/wiki/linux/khal.md +++ b/wiki/linux/khal.md @@ -1,13 +1,12 @@ # Khal -`khal` is a calendar you can use in your terminal. +[Khal](https://github.com/pimutils/khal) is a calendar you can use in your terminal. You can sync it with [vdirsyncer](vdirsyncer.md) ## Setup -### Arch-Linux - -- `pacman -S khal` - Install needed packages +On most linux distributions Khal can be installed with the `khal` package. +Alternatively it can be installed via [Github](https://github.com/pimutils/khal). ### Configuration diff --git a/wiki/linux/khard.md b/wiki/linux/khard.md index 9d6d2c1..b4d3c7b 100644 --- a/wiki/linux/khard.md +++ b/wiki/linux/khard.md @@ -1,13 +1,12 @@ # Khard -`khard` is a adressbook that runs in your terminal. +[Khard](https://github.com/lucc/khard) is a adressbook that runs in your terminal. You can sync it with [vdirsyncer](vdirsyncer.md). ## Setup -### Arch Linux - -- `pacman -S khard` - Install needed programs +On most linux distributions Khal can be installed with the `khard` package. +Alternatively it can be installed via [Github](https://github.com/lucc/khard). ### Configuration diff --git a/wiki/linux/linux.md b/wiki/linux/linux.md new file mode 100644 index 0000000..03783cb --- /dev/null +++ b/wiki/linux/linux.md @@ -0,0 +1,14 @@ +# Linux + +Linux is a family of open-source operating systems that are based on the kernel +with the same name. +Linux based operating systems are Unix-like. + +## Distributions + +The different operating systems that are based on the Linux kernel are called +distributions. + +- [Arch Linux](/wiki/linux/arch-linux/arch-linux.md) is a rolling-release + distribution whose base system is as minimal and needs heavy user + configuration. diff --git a/wiki/linux/lvm.md b/wiki/linux/lvm.md index e78a45b..d9a4941 100644 --- a/wiki/linux/lvm.md +++ b/wiki/linux/lvm.md @@ -2,7 +2,9 @@ `lvm` is a utility to create logical volumes. -## Create VG for proxmox +## Usage + +### Create Volume Group for Proxmox We will use `/dev/sdb` as our drive. Setup the disk for the physical volume with `sgdisk -N 1 /dev/sdb`. @@ -13,35 +15,153 @@ This can be solved by removing the old partition table with `wipefs -a /dev/sdb` And finally create the volume group `vgcreate vmdata /dev/sdb`. Then follow the guide in proxmox on how to connect a `vg` to proxmox. -## Add Drive to existing volume group +### Add Physical Volume to Existing Volume Group First format the disk so that it has one partition (we will assume its called `/dev/sdc1`). To add the partition to a group run: -```shell +```sh pvcreate /dev/sdc1 vgextend <name of your volume group> /dev/sdc1 ``` -## Increase size of a logical volume +### Remove Physical Volume + +Before removing a physical volume it has to be confirmed that it is not part of +any volume group. +This can be done by running `sudo pvs` and confirm it is not listed for any +logical volumes. +If it is [a later section](#shrink-size-of-a-logical-volume) how the physical +volume can be completely emptied and removed from the logical volume. +A physical volume can be removed by running the following command: + +```sh +sudo pvremove <path to physical volume> +``` + +`<path to physical volume>` is the physical volume that will get removed. + + +### Resize a Physical Volume + +To increase the size of a physical volume you have to have free free space +in the partition containing the physical volume. +A guide to change 'normal' partitions can be found in the +[disk management article](./disk-management.md); if you have a volume that is +encrypted with LUKS a guide is available in +[the dm-crypt articel](./dm-crypt.md). -To increase the size of the logical volume you need to have free space in the +To resize the physical volume to the size of the containing volume run: +`pvresize /dev/mapper/<name of physical volume>` + +### Increase Size of a Logical Volume + +To increase the size of the logical volume you have to have free space in the according volume group. You can check that by running: `vgdisplay`. +If you don't have enough space you have to resize the physical volume as +described in this article. Then run: -```shell +```sh lvextend -L +<size (e.g. 40G)> /dev/<volume groupt>/<logical volume> ``` If you want to allocate all the free space existing in a volume group run: -```shell +```sh lvextend -l +100%FREE /dev/<volume group>/<logical volume> ``` -Now you need to extend the filesystem with: +Now you need to extend the file system with: -```shell +```sh resize2fs /dev/<volume group>/<logical volume> ``` + +### Shrink Size of a Logical Volume + +When trying to shrink a logical volume caution is advised as data can easily be +destroyed by mistyping commands of paths. +This section is based on a guide given by +[telcoM](https://unix.stackexchange.com/questions/591389/how-to-remove-a-disk-from-an-lvm-partition). +First of all the volumes have to be unmounted and not used by any programs or +services other than the following commands. + +If the volume to shrink is the root volume it has to be done offline. +For that a simple installation stick is enough. +[The Arch Linux entry](/wiki/linux/arch-linux/arch-linux.md#installation-medium) +describes the creation of such a boot stick. +Afterwards the operating system has to be booted from the just created stick or +a comparable device. +For non-root volumes this extra step can be skipped. + +The volume group needs to be activated by running the command +`sudo vgchange -ay <volume group>`. +`<volume group>` is the name of the volumegroup that features the logical volume +to shrink. +Then the file system needs to be resized. +For safety reasons make the file system exactly as big or smaller than the +future logical volume. +The process of shrinking a file system is explained in the +[disk management entry](/wiki/linux/disk-management.md#shrinking-a-file-system). +The partition to shrink in this case is the logical volume. +This is the only step that needs to be done offline for root volumes. +Rebooting to the root volume at this moment is advised. + +The next step will shrink the logical volume itself. +This will be done by running the following command: + +```sh +sudo lvreduce -L <new size of logical volume> /dev/mapper/<volume group>-<logical volume> +``` + +Again this statement has to be adapted accordingly. +`new size of logical volume` describes the new size the logical volume will have +after successful completion of the command. +It is important for this to be exactly the same or larger than the size given +into the resizing of the file system with `resize2fs`. + +### Remove Physical Volume from Volume Group + +This section describes the removal of a physical volume from a logical volume. +First the command `vgs <volume group>` has to be run. +`<volume group>` is the name of the volume group belonging to the logical volume +a physical volume should be removed from. +It has to be ensured, that enough free space (`VFree`) on all physical volumes +(except the ones to remove) is available to remove a physical volume from the +volume group. +There has to be equal or more free space than the size (`VSize`) of the physical +volume that will be removed. +Otherwise an [earlier section](#shrink-size-of-a-logical-volume) explains how to +shrink a logical volume. +The logical volume has to be shrunk according to the described ration between +`VFree` and `VSize`. + +The following command will distribute the contents of a physical volume onto +other physical volumes available: + +```sh +sudo pvmove <path to physical volume> +``` + +`<path to physical volume>` is the physical volume that will get emptied and +later removed from the logical volume. +Afterwards the physical volume is emptied and can be removed from the logical +volume by running the following command: + +```sh +sudo vgreduce <logical volume> <path to physical volume> +``` + +`<logical volume>` is the name of the logical volume. +After this command the physical volume is no longer a part of it. + +If no longer used the empty physical volume can then be removed as described in +the [according section](#remove-physical-volume). + +Afterwards the file system can be matched to the logical volume so it takes up +the full new size. +This is explained in the +[entry about disk management](/wiki/linux/disk-management.md#growing-a-file-system). + diff --git a/wiki/linux/mdadm.md b/wiki/linux/mdadm.md index 6b17d13..4f9ea47 100644 --- a/wiki/linux/mdadm.md +++ b/wiki/linux/mdadm.md @@ -1,15 +1,83 @@ # MDADM -`mdadm` is a utility to create and manage raid devices. +MDADM is a utility to create and manage raid devices. +For the rest of this entry `n` is the number of drives inside a raid device. -## Raid 1 +## Usage + +### Get Information About a Raid + +To get an info for a running raid (assuming it is `/dev/md0`) run +`mdadm -D /dev/md0`. + +### Add Disk/Partition to Raid Device + +You can add a disk or partition to a raid device by running the following. +It is assumed you are adding a partition called `/dev/sdd1` but it could also +be a whole drive and the mdadm drive is called `/dev/md0`. + +`mdadm --add /dev/md0 /dev/sdd1` + +This will add the disk as spare to the existing raid. +To make the disk active the raid needs to be grown as described in the +[regarding article](#growing-raid-device). + +### Growing Raid Device + +Growing a raid device will increase its number of active drives. +[Check the number of active drives](#get-information-about-a-raid). +Then change and run the following command accordingly. + +```sh +mdadm --grow --raid-disks=5 /dev/md0 +``` + +`/dev/md0` is the raid device. +`5` is the number of disks that should be active. +For adding disks view the [previous section](#add-diskpartition-to-raid-device). + +### Raid 1 Raid 1 creates a mirror with even amount of drives. +For `n=2` [raid 5](#raid-5) and raid 1 are basically the same. +The space efficiency is `1/n` and the fault tolerance is `n-1` drive failure. +The read perfromance is `n` and the write performance `1`. -### Create Raid 0 device +#### Create Raid 1 Device -You can create a Raid 0 device with +You can create a Raid 1 device with `mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb` where `sda` and `sdb` are the disks you want to include in your raid. You can increase the number of raid devices, but they have to be at least 2. If it is an uneven amount of disks in the raid, a disk will act as a spare disk. + +#### Convert Raid 1 to Raid 5 + +Assuming the raid 1 device is called `/dev/md0`. +All other drives are part of the `md0` raid device. +Note that mostly raid 1 devices consisting of 2 drives should be converted to +[raid 5](#raid-5). + +- Remove all drives but 2 (if there are more drives than that) by running + `mdadm /dev/md0 --fail /dev/sda1` and `mdadm /dev/md0 --remove /dev/sda1` + where `sda1` is the drive to remove +- Make sure your raid 1 array has only 2 active drives by running + `mdadm --grow /dev/md0 -n 2` +- Now convert your raid 1 to a raid 5 device with `mdadm --grow /dev/md0 -l5` +- Add the disks you removed back to the raid with + `mdadm /dev/md0 --add /dev/sda1` +- Finally grow the active drive number to your needs (in this example 4) + `mdadm --grow /dev/md0 -n4` +- MDADM now reshapes the raid. You can monitor it by running + `watch cat /proc/mdstat` + +### Raid 5 + +Raid 5 creates a raid device with distributed parity and is set to have at least +3 drives. +The space efficiency is `1-(1/n)` and the fault tolerance is `1` drive failure. +The read perfromance is `n` and the write performance `1/4` for single sector +and `n-1` for full stripe. + +In the special case of 2 drives in a raid 5 it is functionally the same as +[raid 1](#raid-1). diff --git a/wiki/linux/microcode.md b/wiki/linux/microcode.md new file mode 100644 index 0000000..8494129 --- /dev/null +++ b/wiki/linux/microcode.md @@ -0,0 +1,15 @@ +# Microcode + +Processor vendors release stability and security updates to the processor +microcode. + +## Setup + +Most Linux based operating systems feature packages depending on the processor +manufacturer (on Arch Linux for example `intel-ucode` and `amd-ucode`). + +## Automatic Updates + +Automatic updates can be enabled depending on bootloader and operating system. +For Arch Linux a description is given in the +[Arch Linux entry](/wiki/linux/arch-linux/arch-linux.md#enable-microcode-updates). diff --git a/wiki/linux/mime.md b/wiki/linux/mime.md new file mode 100644 index 0000000..b707f67 --- /dev/null +++ b/wiki/linux/mime.md @@ -0,0 +1,54 @@ +# MIME + +A MIME type (short for Multipurpose Internet Mail Extensions) is a identifier +for file formats and contents on the internet. + +## Usage + +### Setting applications for MIME types + +In `~/.config/mimeapps.list` a list of applications to run specific MIME +types can be found. +An example file looks like the following: + +```txt +[Default Applications] +text/x-shellscript=text.desktop; +x-scheme-handler/magnet=torrent.desktop; +application/x-bittorrent=torrent.desktop; +x-scheme-handler/mailto=mail.desktop; +text/plain=text.desktop; +application/postscript=pdf.desktop; +application/pdf=pdf.desktop; +image/png=img.desktop; +image/jpeg=img.desktop; +image/gif=img.desktop; +application/rss+xml=rss.desktop +video/x-matroska=video.desktop +inode/directory=file.desktop +``` + +A line consists of a MIME type left of the equals sign and an application on +the right of it. +The application can be found in `~/.local/share/applications/`. +In this directory a file for every application on the right side of the equals +sign with the same title can be found. + +A simple application file looks like the following example of `img.desktop`: + +```txt +[Desktop Entry] +Type=Application +Name=Image viewer +Exec=/usr/bin/sxiv -a %f +``` + +Atleast `Type`, `Name` and `Exec` have to be specified for a minimal +application file. + +### Getting MIME type of a file + +The MIME type of a file can be returned by running +`xdg-mime query filetype <file>` or `file -b --mime-type image.png`. +The MIME type can be then used to set default applications as explained in +[the section regarding setting applications for MIME types](#setting-applications-for-mime-types). diff --git a/wiki/linux/netplan.md b/wiki/linux/netplan.md new file mode 100644 index 0000000..404c48d --- /dev/null +++ b/wiki/linux/netplan.md @@ -0,0 +1,36 @@ +# Netplan + +[Netplan](https://netplan.io) is a utility for configuring the networking of a +linux system via YAML files. + +## Usage + +### Add more IP addresses to a system + +In the file `/etc/netplan/50-cloud-init.yaml` create an `addresses:` section +for a device (for example an ethernet device) and list the IP addresses you +want to add to the system to it. +It has to be noted, that the added addresses should be outside of the DHCP +range of your router. +An example file will look something like the following lines. +In this case 4 addresses were added. +`192.168.178.18/24` is the IP assigned by the DHCP server. +It has to be noted that this is a special case as the DHCP server assigns this +address always to the system. + +```txt +network: + ethernets: + ens18: + dhcp4: true + addresses: + - 192.168.178.18/24 + - 192.168.178.201/24 + - 192.168.178.202/24 + - 192.168.178.203/24 + - 192.168.178.204/24 + version: 2 +``` + +Afterwards netplan has to be restarted by running `sudo netplan apply`. +The addresses then are assigned to the system. diff --git a/wiki/linux/networkmanager.md b/wiki/linux/networkmanager.md new file mode 100644 index 0000000..e74aff3 --- /dev/null +++ b/wiki/linux/networkmanager.md @@ -0,0 +1,27 @@ +# NetworkManager + +NetworkManager - short NM - is a program to automatically detect and connect to +networks by providing options for various configuration. + +## Setup + +NetworkManager can be installed with the `networkmanager` package on most linux +distributions which provides daemon aswell as `nmcli` a command line interface +and `nmtui` a terminal user interface for configuration. +Additionally `nm-connection-editor` can be installed for a graphical user +interface. + +## Usage + +After installation `networkmanager.service` has to be enabled by the used +[init-system](/wiki/linux/init.md) (for example +[systemD](/wiki/linux/systemd.md#startstopenabledisable-a-service)). + +### OpenVPN + +NetworkManager needs a plugin to work with openvpn configurations. +This plugin can be installed with the `networkmanager-openvpn` package. + +OpenVPNs `.ovpn` files can then be imported by running +`nmcli connection import type openvpn file <openvpn-file>`. +Afterwards they can be modified accordingly. diff --git a/wiki/linux/ntfs.md b/wiki/linux/ntfs.md new file mode 100644 index 0000000..6afbf44 --- /dev/null +++ b/wiki/linux/ntfs.md @@ -0,0 +1,38 @@ +# NTFS + +NTFS is the proprietary [file system](./disk-management.md) of Windows. + +## Setup + +For the usage of NTFS file systems the `ntfs-3g` package - available on most +distributions - has to be installed. + +## Usage + +When [mounting](/wiki/linux/disk-management.md#mounting) a +[Bitlocker encrypted drive](./dislocker.md) there are additional steps that have +to be taken to decrypt the device. + +### Manual Mounting + +Partitions using NTFS can be mounted on Linux based operating systems by +running the following command: +`mount -t ntfs-3g -o loop <path to partition> <path to mount point>`. +If the partition to mount is bootable or contains a windows system the +hibernation and fast boot have to be disabled to mount the partition with write +access. + +### Automatic Mounting + +For the usage of NTFS file systems the `ntfs-3g` package - available on most +distributions - has to be installed. +To [automount partitions](/wiki/linux/disk-management.md#mounting) with NTFS +the following line has to be adapted and added to `/etc/fstab`: + +```txt +<specified partition> <path to mount point> ntfs-3g nofail,windows_names,big_writes 0 0 +``` + +If the partition to mount is bootable or contains a windows system the +hibernation and fast boot have to be disabled to mount the partition with write +access. diff --git a/wiki/linux/ntp.md b/wiki/linux/ntp.md new file mode 100644 index 0000000..3479fea --- /dev/null +++ b/wiki/linux/ntp.md @@ -0,0 +1,26 @@ +# NTP + +[NTP](https://www.rfc-editor.org/rfc/rfc5905) - short for Network Time Protocol +- is the most common method to synchronize the software clock of a +[Linux](/wiki/linux/linux.md) system. + +## Setup + +NTP can be installed on most distributions by installing the +`ntp` package. + +## Usage + +The following section describes the usage of the NTP package. + +### Synchronize Time once + +For one time synchronization of the time and date the `ntpdate` command can be +used. +The following command is an example for a one time sync. +Note that the server has to be changed for different time zones. +In this case a german time server is used. + +```sh +ntpdate -q 0.de.pool.ntp.org +``` diff --git a/wiki/linux/nvidia.md b/wiki/linux/nvidia.md index 711ea68..82e9c61 100644 --- a/wiki/linux/nvidia.md +++ b/wiki/linux/nvidia.md @@ -1,27 +1,34 @@ -# NVidia +# Nvidia -NVidia is a vendor for graphics cards. +[Nvidia](/wiki/nvidia.md) is a vendor for graphics cards. -## Setup NVidia GPU +## Setup -### Arch Linux - -For NVidia GPUs to work install the `nvidia` and the `nvidia-utils` package. +For Nvidia GPUs to work install the `nvidia` and the `nvidia-utils` package. If you want to easily configure the monitors as described in a later section of this file you can also install `nvidia-settings`. There is no initial setup for a `xorg.conf` in `/etc/X11` needed (except for a multiple GPU/APU setup). -## Change monitor configuration +### Configuration + +A basic configuration can be achieved by running `nvidia-xconfig`. + +## Usage + +Most configuration and changes require the use of `nvidia-settings`. + +### Change monitor configuration -After running `sudo nvidia-setting` can drag and drop the monitors to your -liking. -After that you have to save the configuration to the `/etc/X11/xorg.conf`. +In `nvidia-setting` monitors can be dragged and dropped to your liking. +After that you have to save the configuration to the +[X window manager](./x_window_system.md) configuration file +`/etc/X11/xorg.conf`. -## Avoid screen tearing +### Avoid screen tearing -To avoid screen tearing open up `nvidia-settings` and under -`X Server Display Configuration` select your display. -Then click on `Advanced` and select either `Force Composition Timeline` or +In `nvidia-settings` under +`X Server Display Configuration` select your display and click on `Advanced` +and select either `Force Composition Timeline` or `Force Full Composition Timeline`. diff --git a/wiki/linux/openssl.md b/wiki/linux/openssl.md index 4cf3971..f463537 100644 --- a/wiki/linux/openssl.md +++ b/wiki/linux/openssl.md @@ -3,7 +3,9 @@ [OpenSSL](https://www.openssl.org) is a software library for secure communication over computer networks. -## Creating a key pair +## Usage + +### Creating a key pair As described by [dreikanter](https://gist.github.com/dreikanter/c7e85598664901afae03fedff308736b) you can create and save a pretty secure private key to `private.key` with @@ -11,7 +13,7 @@ you can create and save a pretty secure private key to `private.key` with After that run `openssl rsa -in private.key -pubout -out public.key` to save the according public key to `public.key`. -## Encrypting and decrypting files +### Encrypting and decrypting files [Dreikanter](https://gist.github.com/dreikanter/c7e85598664901afae03fedff308736b) describes to encrypt larger files with symmetric encryption and encrypt the key diff --git a/wiki/linux/pipewire.md b/wiki/linux/pipewire.md new file mode 100644 index 0000000..21ffb82 --- /dev/null +++ b/wiki/linux/pipewire.md @@ -0,0 +1,27 @@ +# Pipewire + +[Pipewire](https://pipewire.org) is a graph based +[sound server](/wiki/linux/audio.md#sound-server). + +## Setup + +For clients that use the [PulseAudio](/wiki/linux/pulseaudio.md) API +`pipewire-pulse` (on Arch-based distros or according +packages on other distros) can be installed. +It will automatically remove unneeded and conflicting PulseAudio packages. +Additionally `pipewire-alsa` and `pipewire-jack` for JACK and Alsa clients are +available. +Make sure to restart to be sure everything is running correctly. + +## Usage + +For simple sound processing in the form of volume adjustment as well as setting +the default input and output devices +[`pavucontrol`](https://freedesktop.org/software/pulseaudio/pavucontrol/) can be +used as a simple mixer. +For more advanced routing [`qpwgraph`](https://github.com/rncbc/qpwgraph) is +recommended. +`qpwgraph` is a graph-based interface using the Qt interface. +For further sound processing the easiest way to do so is using +[easyeffects](/wiki/linux/easyeffects.md) which features a wide range of effects +to apply to sound streams including noise reduction. diff --git a/wiki/linux/proxmox.md b/wiki/linux/proxmox.md index c0fc6b9..6b1a1cf 100644 --- a/wiki/linux/proxmox.md +++ b/wiki/linux/proxmox.md @@ -14,20 +14,30 @@ After that follow the instructions and fill in the fields to your liking. ### Enlarging disk of a VM +Make sure there is enough disk space available. +For further information see [the disk management article](./disk-management.md) + SSH into Proxmox. Enlarge a disk by using: -```shell +```sh qm resize <vmid> <vm-disk-to-enlarge> <size> ``` -For example (100G is 100GibiByte): +For example if you want to the disk 100 by 100G (100GibiByte): -```shell +```sh qm resize 100 ide0 +100G ``` -After that grow the filesystem as described in [the disk-management article](disk-management.md). +Afterwards the partition of the VM needs to be enlarged. +For that +[the disk management article](/wiki/linux/disk-management.md#grow-non-lvm-partition) +can be used for non-LVM paritions. +Alternatively [the LVM article](/wiki/linux/lvm.md#increase-size-of-a-logical-volume) +can be referenced for LVM systems. +After that grow the filesystem in the vm as described in +[the disk management article](/wiki/linux/disk-management.md#growing-a-file-system). ## Remove local-lvm and add its size to local @@ -43,19 +53,19 @@ Finally extend the filesystem `resize2fs /dev/mapper/pve-root`. On the host system find the usb you're looking to pass through with -```shell +```sh lsusb ``` Then assign it to the vm using -```shell +```sh qm set <vm-id> -usb<id-to-set> host=<id-of-the-usb> ``` for example -```shell +```sh qm set 101 -usb0 host=aaaa:8816 ``` @@ -74,7 +84,7 @@ To increase it navigate to the webinterface and click on Datacenter and Storage select the storage you want to save your backup to and change `Max Backups` to your liking. -## Bugfixing +## Troubleshooting ### No internet after mainboard swap diff --git a/wiki/linux/pulseaudio.md b/wiki/linux/pulseaudio.md new file mode 100644 index 0000000..2447a50 --- /dev/null +++ b/wiki/linux/pulseaudio.md @@ -0,0 +1,13 @@ +# PulseAudio + +[PulseAudio](https://www.freedesktop.org/wiki/Software/PulseAudio) is a +[sound server](/wiki/linux/audio.md#sound-server) distributed by the +[freedesktop.org](https://www.freedesktop.org/wiki/Software/PulseAudio) project. + +## Usage + +### Mixing + +For simple sound processing in the form of volume adjustment as well as setting +the default input and output devices `pavucontrol` can be used as a simple +mixer. diff --git a/wiki/linux/rar_(package).md b/wiki/linux/rar_(package).md new file mode 100644 index 0000000..854cd32 --- /dev/null +++ b/wiki/linux/rar_(package).md @@ -0,0 +1,21 @@ +# RAR (package) + +RAR is a package available for many Linux distributions that handles `.rar` +archives of the [RAR algorithm](/wiki/rar_(algorithm).md). + +## Setup + +On most distributions the functionalities for creating a `.rar` archive is +bundled in the `rar` package. +For extraction a separate package is used called `unrar`. + +## Usage + +### Extracting a `.rar` archive + +A `.rar` archive can be extracted using the `unrar` package with the following +command. + +```sh +unrar e <path to .rar file> +``` diff --git a/wiki/linux/samba.md b/wiki/linux/samba.md new file mode 100644 index 0000000..7afc87f --- /dev/null +++ b/wiki/linux/samba.md @@ -0,0 +1,27 @@ +# Samba + +[Samba](../samba.md) is the standard Windows interoperability suite for linux +and unix. + +## Usage + +### Manual Mounting + +The mounting of Samba shares requires a package containing `mount.cifs` in many +distributions packaged in the `cifs-utils` package to be installed. +Samba shares then can be mounted by adapting and running the following example: +`mount -t cifs //<server address>/<share name> <path to mount point> -o username=<username>,password=<password>` + +### Automatic Mounting + +The mounting of Samba shares requires a package containing `mount.cifs` in many +distributions packaged in the `cifs-utils` package to be installed. +To automount Samba shares the following line has to be adapted and added +to `/etc/fstab`: +`//<server address>/<share name> <path to mountpoint> cifs,nofail credentials=<path to authentication file> 0 0`. +An authentication file looks like the following: + +```txt +username=<username> +password=<password> +``` diff --git a/wiki/linux/sc-im.md b/wiki/linux/sc-im.md index b253c14..3a441c4 100644 --- a/wiki/linux/sc-im.md +++ b/wiki/linux/sc-im.md @@ -1,13 +1,11 @@ # SC-IM -`sc-im` is a program to view and edit tables especially in csv-format. +[sc-im](https://github.com/andmarti1424/sc-im) is a program to view and edit tables especially in csv-format. ## Setup -### Arch-Linux - -- `yay -S sc-im` - Install sc-im -- `sc-im <insert-filename>.csv` - Edit files +Sc-im can be installed via [github](https://github.com/andmarti1424/sc-im). +Some distributions also feature the `sc-im` package. ## Usage @@ -18,7 +16,7 @@ You can delete (multiple (for example `3`) rows `dr`/`d3r`, yank rows `yr`/`y3r` You can delete (multiple (for example `3`) columns `dc`/`d3c`, yank rows `yc`/`y3c`. You can insert new rows `ir`/`i3r` or columns `ic`/`i3c`. -### Special numbers +### Calculations and Functions There are some functions you can use when in numbers mode. diff --git a/wiki/linux/shell.md b/wiki/linux/shell.md new file mode 100644 index 0000000..de09679 --- /dev/null +++ b/wiki/linux/shell.md @@ -0,0 +1,41 @@ +# Shell + +A shell is a command-line interpreter that provides a command-line interface to +interact with the many unix-like system. + +## Change the standard shell + +The Shell in some distributions is made up by a POSIX compliant mode of bash. +Problem with that is the speed. +A shell like dash would be much faster. +This is a guide on how to persistently change the symlink /bin/sh from bash to +dash. + +- `yay -S dash` - Install dash +- `sudo ln -sfT /bin/dash /bin/sh` - link /bin/sh to dash +- `sudo vim /usr/share/libalpm/hooks/bash-update.hook` - setup a hook to avoid +bash resetting the symlink + +## Disown a Command + +This section is based on a guide by +[baeldung](https://www.baeldung.com/linux/detach-process-from-terminal). +Disowning a command removes it from the current shell. +Commands that are detached from a shell will not terminate upon its closure. +A command can be disowned simply by appending `& disown` at the end of it. +It will then provide the PID of the command that got disowned. + +## Silencing a Command + +This section is based on a guide by +[baeldung](https://www.baeldung.com/linux/silencing-bash-output). +If the output of a command is unwanted it can be silenced. +There are two parts that can be silenced independently. +Non-error outputs (stdout) can be silenced by appending `1> /dev/null` to the +command. +Due to the `1` being ommitable `> /dev/null` has the same effect. +Error outputs (stderr) can be silenced by appending `2> /dev/null`. +The complete output of both stderr and stdout can be silenced by appending +`> /dev/null 2>&1` to the command. +A shortened version of it not possible on all shells is `&> /dev/null`. + diff --git a/wiki/linux/shells.md b/wiki/linux/shells.md deleted file mode 100644 index 4199566..0000000 --- a/wiki/linux/shells.md +++ /dev/null @@ -1,15 +0,0 @@ -# Shells - -## Change /bin/sh - -### Arch-Linux - -The Shell in Arch-Linux is made up by a POSIX compliant mode of bash. -Problem with that is the speed. -A shell like dash would be much faster. -This is a guide on how to persistently change the symlink /bin/sh from bash to dash. - -- `yay -S dash` - Install dash -- `sudo ln -sfT /bin/dash /bin/sh` - link /bin/sh to dash -- `sudo vim /usr/share/libalpm/hooks/bash-update.hook` - setup a hook to avoid -bash resetting the symlink diff --git a/wiki/linux/ssh.md b/wiki/linux/ssh.md index 57143a7..24513a4 100644 --- a/wiki/linux/ssh.md +++ b/wiki/linux/ssh.md @@ -3,23 +3,35 @@ SSH is a network protocoll to securely connect to a computer. In this article it is assumed that `openssh` is used. -## Generate new keys +## Usage + +### Generate new keys To generate new ssh keys simply run `ssh-keygen -t ed25519` or `ssh-keygen -t rsa -b 4096`. -## Enable root login via SSH +### Enable root login via SSH Edit the `/etc/ssh/sshd_config` and change the line containing `PermitRootLogin` to `PermitRootLogin yes`. -## Add login via SSH public key +### Add login via SSH public key To enable easy login without password you can add the contents of the file `~/.ssh/id_rsa.pub` from your local machine to the file `~/.ssh/authorized_keys` on the machine you want to log into. You can use the modified command below for ease of use: -```shell +```sh cat ~/.ssh/id_rsa.pub | ssh username@server 'cat >> ~/.ssh/authorized_keys' ``` + +### Mount directory with sshfs + +To mount a directory (in this case called `directory`) from a remote server +(in this case called `server` also can be substituted by something like +`user@server-ip`) on a local mount (in this case `mountpoint`) run: + +```sh +sshfs server:/directory mountpoint +``` diff --git a/wiki/linux/suckless.md b/wiki/linux/suckless.md index f2143c5..d7ba76c 100644 --- a/wiki/linux/suckless.md +++ b/wiki/linux/suckless.md @@ -3,7 +3,15 @@ Suckless is a community that is best known for minimalist free software. Notable works include `dwm` and `dmenu`. -## Workflow for installation +## Programs + +- dmenu is a menu with prgram launcher functionality +- dwm is a window manager +- ii is an IRC client +- slock is a screen locker +- st is a terminal + +## Setup Programs written by the suckless community are minimal by default. `.diff` files are available to patch functionality. @@ -32,10 +40,15 @@ new `feature` - Get the `config.def.h` of `master` into `config` with `git checkout master config.def.h` -## Programs -- dmenu is a menu with prgram launcher functionality -- dwm is a window manager -- ii is an IRC client -- slock is a screen locker -- st is a terminal +## Troubleshooting + +### suckless program crashes or struggles with colored emojis + +Suckless programs especially `st` and `dmenu` can not display colored +emojis. +This is because of problems with libxft. +libxft is the client side font rendering library to display anti-aliased text. +To change this [libxft-bgra](https://github.com/uditkarode/libxft-bgra) needs +to be installed. +This is a patched version especially for running with the suckless programs. diff --git a/wiki/linux/systemd.md b/wiki/linux/systemd.md new file mode 100644 index 0000000..99d97ac --- /dev/null +++ b/wiki/linux/systemd.md @@ -0,0 +1,53 @@ +# SystemD + +SystemD is an [init system](./init.md) for Linux systems. +It is used for service configuration and startup. + +## Usage + +### Run Command on Boot + +To run a command (in this case `/bin/bash /root/run.sh`) create the following +file at `/etc/systemd/system/` with a name ending on `.service`. +In this case it is called `unturned.service`. + +```txt +[Unit] +Description=Description of the service + +[Install] +WantedBy=multi-user.target + +[Service] +ExecStart=/bin/bash /root/run.sh +Type=simple +``` + +For [Proxmox](./proxmox.md) you can add the following line under the `[Unit]` +section to make sure the service is started after Proxmox has finished +initializing. + +```txt +After=pve-guests.service +``` + +Such a service can be started by running: + +```sh +sudo systemctl start unturned +``` + +Alternatively it can be enabled to start at every boot by running: + +```sh +sudo systemctl enable unturned +``` + +## Start/Stop/Enable/Disable a service + +Services can be started by running `systemctl start <service-name>`. +They respectively can be stopped by replacing the `start` +keyword for `stop`. +To start the service after boot it has to be enabled. +This works accordingly with the keyword `enable`. +The `disable` keyword stops the service from starting automatically. diff --git a/wiki/linux/tlp.md b/wiki/linux/tlp.md new file mode 100644 index 0000000..758897a --- /dev/null +++ b/wiki/linux/tlp.md @@ -0,0 +1,32 @@ +# TLP + +[TLP](https://linrunner.de/tlp) is a linux command line utility for saving +laptop battery power aswell as optimizing battery life. + +## Setup + +TLP can be installed on most distributions by installing the `tlp` package. +Afterwards the TLP +[service](/wiki/linux/systemd.md#startstopenabledisable-a-service) needs to be +started and enabled. +In contrast to other +[SystemD services](/wiki/linux/systemd.md#startstopenabledisable-a-service) this +can be done by running `sudo tlp start`. + +## Configure Battery Charge Thresholds + +There are two battery charge thresholds. +The first is `START_CHARGE_THRESH` this threshold contains the battery charge +level below which charging will begin. +`STOP_CHARGE_TRESH` is the second threshold. +It describes up to which level the battery will be charged. +Battery charge thresholds are used to limit the charging of the battery to +extend the battery life. + +Thresholds can be set in the file `/etc/tlp.conf`. +Search and edit the following lines according to your needs. + +```txt +START_CHARGE_THRESH_BAT0=75 +STOP_CHARGE_THRESH_BAT0=80 +``` diff --git a/wiki/linux/todoman.md b/wiki/linux/todoman.md index c0185e2..6619907 100644 --- a/wiki/linux/todoman.md +++ b/wiki/linux/todoman.md @@ -1,25 +1,25 @@ # Todoman -`todoman` is a todolist you can use in your terminal. +[todoman](https://github.com/pimutils/todoman) is a todolist you can use in your terminal. You can sync it using [vdirsyncer](vdirsyncer.md) ## Setup -### Arch-Linux - -- `pacman -S todoman` - Install needed packages +Todoman can be installed via the +[github page](https://github.com/pimutils/todoman). +Some distributions also feature the `todoman` package. ### Configuration -- Edit the `~/.config/todoman/todoman.conf` +- Edit the `~/.config/todoman/config.py` - Insert the following lines ```txt -[main] -path = ~/.local/share/pim/calendars/*/* -date_format = %d.%m.%Y -time_format = %H:%M -default_list = personal +#[main] +path = "~/.local/share/pim/calendars/*/*" +date_format = "%d.%m.%Y" +time_format = "%H:%M" +default_list = "personal" ``` Replace `personal` with your choice of primary list and diff --git a/wiki/linux/ufw.md b/wiki/linux/ufw.md index 17e0f7d..5f19bac 100644 --- a/wiki/linux/ufw.md +++ b/wiki/linux/ufw.md @@ -3,7 +3,9 @@ [UFW (Uncomplicated Firewall)](https://code.launchpad.net/ufw) is a program to manage a netfilter firewall. -## Block specific IPs +## Usage + +### Block specific IPs To block the whole traffic from a specific IP to your computer run: `ufw deny from <ip> to any` @@ -12,7 +14,7 @@ was blocked. If you don't care if the target knows you can also run: `sudo ufw reject from <ip> to any` -## List all rules +### List all rules To show all rules you can run: `ufw status` @@ -20,7 +22,7 @@ or: `ufw status numbered` if you want to have a list of all rules with according numbers. -## Remove rules +### Remove rules Locate the rule you want to remove by showing all rules (numbered). Then run: diff --git a/wiki/linux/v4l2.md b/wiki/linux/v4l2.md new file mode 100644 index 0000000..e547287 --- /dev/null +++ b/wiki/linux/v4l2.md @@ -0,0 +1,57 @@ +# V4L2 + +V4L2 is the second version of +[Video4Linux](https://www.linuxtv.org/wiki/index.php/Main_Page). +It functions as a driver for webcams and tv tuner cards and other devices. + +## v4l2loopback + +The following section is based on a +[gist by ioquatix](https://gist.github.com/ioquatix/18720c80a7f7eb997c19eef8afd6901e). + +[v4l2loopback](https://github.com/umlaeute/v4l2loopback) is a utility to create +a virtual video device. +One use of it is in [OBS Virtual Camera](/wiki/obs.md#virtual-camera). +To use v4l2loopback an according +package needs to be installed. +Some distributions have a package named `v4l2loopback-dkms` in the package +manager, making the manual installation process unnecessary. +Afterwards v4l2loopback can be manually started by running: + +```sh +modprobe v4l2loopback card_label='V4L2 Loopback' video_nr=7 exclusive_caps=1 +``` + +`video_nr=7` states the device path to use with v4l2loopback - in this case +`/dev/video7`. +This can be changed according to the needs. +It is important that the device is not already in use by another application. + +For an automatic start at boot via [SystemD](./systemd.md) a service can be +created - as described in [the SystemD entry](./systemd.md#run-command-on-boot). +For v4l2loopback create the file `/etc/systemd/system/v4l2loopback.service` +containing the following lines: + +```txt +[Unit] +Description=V4L2 Loopback + +[Service] +Type=simple +RemainAfterExit=yes +ExecStart=/bin/modprobe v4l2loopback card_label='V4L2 Loopback' video_nr=7 exclusive_caps=1 +ExecStop=/bin/rmmod v4l2loopback + +[Install] +WantedBy=default.target +``` + +Note the line starting with `ExecStart=/bin/` is the same line described above +to change the device path. +Make sure to change it if needed. + +Afterwards enable the service to start at every boot process by running: + +```sh +sudo systemctl enable v4l2loopback +``` diff --git a/wiki/linux/vdirsyncer.md b/wiki/linux/vdirsyncer.md index 94a03ec..410ff35 100644 --- a/wiki/linux/vdirsyncer.md +++ b/wiki/linux/vdirsyncer.md @@ -1,13 +1,13 @@ # Vdirsyncer -`vdirsyncer` can sync calendars and contacts using the caldav and carddav -protocol. +[Vdirsyncer](https://github.com/pimutils/vdirsyncer) can sync calendars and +contacts using the caldav and carddav protocol. ## Setup -### Arch-Linux - -- `pacman -S vdirsyncer` - Install needed packages +Vdirsyncer can be installed via the +[github page](https://github.com/pimutils/vdirsyncer). +Some distributions also feature the `vdirsyncer` package. ### Configuration diff --git a/wiki/linux/vifm.md b/wiki/linux/vifm.md index 2a61ff5..27d51c0 100644 --- a/wiki/linux/vifm.md +++ b/wiki/linux/vifm.md @@ -2,7 +2,15 @@ [ViFM](https://vifm.info) is a file manager focussed on vim like usage. -## Image Previews with Ueberzug +## Setup + +ViFM can be installed via the +[github page](https://github.com/vifm/vifm). +Some distributions also feature the `vifm` package. + +### Configuration + +#### Image Previews with Ueberzug This section is based on a [video by Distrotube](https://www.youtube.com/watch?v=qgxsduCO1pE). diff --git a/wiki/linux/vim/c-language.md b/wiki/linux/vim/c-language.md index 1196d1c..e5bbc18 100644 --- a/wiki/linux/vim/c-language.md +++ b/wiki/linux/vim/c-language.md @@ -1,7 +1,8 @@ # C in Vim C is a common programming language. -In this entry we will focus on making vim support c and use vim as an ide for c. +In this article we will focus on making vim support c and use vim as an ide for +c. ## Autocompletion diff --git a/wiki/linux/vim/golang.md b/wiki/linux/vim/golang.md index d753367..14738bc 100644 --- a/wiki/linux/vim/golang.md +++ b/wiki/linux/vim/golang.md @@ -1,8 +1,10 @@ # GoLang in Vim GoLang is a common programming language. -In this entry we will focus on making vim support Go and use vim as an ide for it. -This guide is based on a guide from [octetz.com](https://octetz.com/docs/2019/2019-04-24-vim-as-a-go-ide/). +In this article we will focus on making vim support Go and use vim as an ide +for it. +This guide is based on a guide from +[octetz.com](https://octetz.com/docs/2019/2019-04-24-vim-as-a-go-ide/). ## Build, Test, Run, Docs, Debug, Format diff --git a/wiki/linux/vim/python.md b/wiki/linux/vim/python.md index d97d186..d1334f3 100644 --- a/wiki/linux/vim/python.md +++ b/wiki/linux/vim/python.md @@ -1,8 +1,8 @@ # Python in Vim Python is a common programming language. -In this entry we will focus on making vim support python and use vim as an ide -for it. +In this article we will focus on making vim support python and use vim as an +ide for it. ## Autocompletion diff --git a/wiki/linux/vim/vhdl.md b/wiki/linux/vim/vhdl.md index 65f1ce5..fe9f50d 100644 --- a/wiki/linux/vim/vhdl.md +++ b/wiki/linux/vim/vhdl.md @@ -1,7 +1,7 @@ # VHDL in Vim VHDL is a hardware description language. -In this entry we will focus on making vim support VHDL. +In this article we will focus on making vim support VHDL. ## Linting diff --git a/wiki/linux/webcams.md b/wiki/linux/webcams.md new file mode 100644 index 0000000..e25900e --- /dev/null +++ b/wiki/linux/webcams.md @@ -0,0 +1,20 @@ +# Webcams + +Webcams are video cameras which are designed to be used with a computer for +streaming, video calls or similar usages. +This section lists and explains software for the handling of webcams under a +Linux operating system. + +## Editing Video Stream + +The editing of a video stream provided by a webcam can be achieved by using +[OBS](/wiki/obs.md) together with the +[OBS Virtual Camera plugin](/wiki/obs.md#virtual-camera). + +## Configure the Webcam + +A webcam can be configured with [guvcview](https://guvcview.sourceforge.net/). +This program provides a simple interface for capturing and viewing video from a +[v4l2](./v4l2.md) device and is thus dependent on v4l2. +Additionally guvcview provides an interface to configure various webcam settins +and enable a few effects on top of it. diff --git a/wiki/linux/wine.md b/wiki/linux/wine.md index a55da0f..2ec5f25 100644 --- a/wiki/linux/wine.md +++ b/wiki/linux/wine.md @@ -1,24 +1,29 @@ -# Wine +# WINE -Wine is a compatibility layer to run windows programs on linux machines. +[WINE](https://www.winehq.org/) is a compatibility layer to run windows +programs on Linux machines. ## Setup -- Enable multilib support in pacman - - `vim /etc/pacman.conf` - Uncomment the following lines +WINE can be installed on most distributions by acquiring the `wine` package. +The `winetricks` package also is recommended. +Alternatively it can be downloaded from +[the official website](https://www.winehq.org/). - ```txt - [multilib] - Include = /etc/pacman.d/mirrorlist - ``` +## Usage -- `pacman -S wine winetricks` - Install wine and configuration helper - -## Configuration +### Run a windows program - Set the global variable `WINEPREFIX` to your liking, standard is `$HOME/.wine` -- `winetricks` - run the installation of basic windows dependencies to the wine directory +- `winetricks` - run the installation of basic windows dependencies to the wine + directory - Move the program you want to run to `$WINEPREFIX/drive_c/` -- `winetricks sandbox` - (Optional) if you don't want wine to set up directories +- `winetricks sandbox` - (Optional) if you don't want WINE to set up directories or files into your home directory -- `wine $WINEPREFIX/drive_c/<insert program>` - Run the program with wine +- `wine $WINEPREFIX/drive_c/<insert program>` - Run the program with WINE + +### Games and management/configuration of them + +WINE is able to run many Windows games. +An easy way to create WINE prefixes for different games and managing the +installations of them is [Lutris](/wiki/games/lutris.md). diff --git a/wiki/linux/wpa_supplicant.md b/wiki/linux/wpa_supplicant.md index 1497a0d..b37d0c7 100644 --- a/wiki/linux/wpa_supplicant.md +++ b/wiki/linux/wpa_supplicant.md @@ -4,7 +4,9 @@ It is especially interesting due to its WPA2 and WPA3 capabilities in contrast to other networking software. -## Connect to a WPA2 secured WLAN +## Usage + +### Connect to a WPA2 secured WLAN This part assumes that your network interface is called `wlan0` (change it accordingly). diff --git a/wiki/linux/x11.md b/wiki/linux/x11.md deleted file mode 100644 index ae876e9..0000000 --- a/wiki/linux/x11.md +++ /dev/null @@ -1,37 +0,0 @@ -# X11 - -## Change Keyboardlayout - -To temporarily change the layout of the keyboard just run -`setxkbmap <your preferred layout>`. -For a permanent change run `localectl set-x11-keymap <your preferred layout>`. - -## Screen Tearing - -### Intel Graphics - -Linux can sometimes have problems with screen tearing. -To get this working you need to change the `/etc/X11/xorg.conf.d/20-intel.conf` to: - -```txt -Section "Device" - Identifier "Intel Graphics" - Driver "intel" - Option "TearFree" "true" -EndSection -``` - -This was found on -[maketecheasier](https://www.maketecheasier.com/get-rid-screen-tearing-linux). - -## Disable Screen Blanking - -To save power the screen is set to turn black after a given amount of time. -This can be disabled temporarily by running `xset s off` or permanently by -adding the following lines to your `/etc/X11/xorg.conf`: - -```txt -Section "ServerFlags" - Option "BlankTime" "0" -EndSection -``` diff --git a/wiki/linux/x_window_system.md b/wiki/linux/x_window_system.md new file mode 100644 index 0000000..7cacb59 --- /dev/null +++ b/wiki/linux/x_window_system.md @@ -0,0 +1,86 @@ +# X Window System + +X Window System - also called X and X11 according to the current version - is a +protocoll for handling the display of the most unix-like operating systems. +[Xorg](https://www.x.org/wiki/) is the most used implementation of the X +protocoll. +It is maintained by the [X.Org Foundation](https://x.org/wiki/). + +## Peripheral Devices + +X also handles various options of peripheral devices. +In the files of the directory `/etc/X11/xorg.conf.d` and the file +`/etc/X11/xorg.conf` these settings can be found. + +The handling of input devices is achieved by xinput. +For this the identifier of the device to show the options of is needed. +By running `xinput list` a list of all devices with identifiers handled by +xinput is printed. +Properties and options of a peripheral device can then be shown by running +`xinput list-props <id>` where `<id>` is the identifier of the +device. + +### Keyboard + +This section describes the handling of keyboards by X. + +#### Change Keyboardlayout + +To temporarily change the layout of the keyboard just run +`setxkbmap <your preferred layout>`. +For a permanent change run `localectl set-x11-keymap <your preferred layout>`. + +### Display + +This section describes the handling of displays by X. +Additionally to the guides in this section that are independent of the used +graphics unit special configuration for [Nvidia](/wiki/linux/nvidia.md) +and [Intel](./intel.md) can be found in their respective entries in this wiki. + +#### Screen Blanking + +To save power the screen is set to turn black after a given amount of time. +This can be disabled temporarily by running `xset s off` or permanently by +adding the following lines to your `/etc/X11/xorg.conf`: + +```txt +Section "ServerFlags" + Option "BlankTime" "0" +EndSection +``` + +### Mouse + +This section describes the handling of mouse by X. + +#### Emulation of the Middle Mouse Button + +If middle mouse button emulation is enabled the system will emulate a middle +mouse button click when clicking both left and right mouse button +simultaneously. +The middle mouse button emulation can be activated or deactivated. +First the current options have to be confirmed as explained in +[the peripheral section](#peripheral-devices). +Important is the property named `libinput Middle Emulation Enabled`. +To enable the usage of the middle mouse button it should be set to `1`. +As written by +[opinion_no9](https://askubuntu.com/questions/160164/how-do-i-enable-middle-mouse-button-emulation-in-12-04-lts/902976#902976) +there are two ways to change this property. +If the change is only needed temporarily +`xinput set-prop <id> "libinput Middle Emulation Enabled" <flag>` can be run. +`<id>` is the identifier of the mouse and <flag> is `0` for disabling and `1` +for enabling the middle mouse button. +For permanent change of the property a change or addition to +`/etc/X11/xorg.conf.d/40-libinput.conf` can be made. +If a section for the device is already present the line +`Option "MiddleEmulation" "true"` should be added to it. +Otherwise a catchall section for all types of mouses can be created like the +following: + +```txt +Section "InputClass" + Identifier "middle button emulation class" + MatchIsPointer "on" + Option "MiddleEmulation" "true" +EndSection +``` diff --git a/wiki/mail.md b/wiki/mail.md index 4490a8e..f7fd7b6 100644 --- a/wiki/mail.md +++ b/wiki/mail.md @@ -1,12 +1,15 @@ -# Mail +# E-mail -Mail is not dead yet. -But most of the programs used to interact with them are total trash. -Nevertheless there are some really nice pieces of software to check out. +E-mail is a method of exchanging electronic messages. + +## Setup + +E-mail usually consists of a [server](#server) and a [client](#client). ## Server -If you want to host your own mail-server there are solutions with and without interfaces. +If you want to host your own mail-server there are solutions with and without +interfaces. - [Dovecot](./docker-images/tvial_-_docker-mailserver.md) is a simple dockerized mail server that has no interface. diff --git a/wiki/matrix.md b/wiki/matrix.md index 3b7af41..f0e624c 100644 --- a/wiki/matrix.md +++ b/wiki/matrix.md @@ -3,16 +3,17 @@ [Matrix](https://matrix.org/) is an open network for secure, decentralized communication. -## Docker setup +## Setup -The matrix server can be a complex setup of servers and services. -Please note that this configuration is a composition of docker images. +The matrix server is a complex setup of servers and services. +Please note that this configuration is a composition of +[Docker](/wiki/docker.md) images. Therefore a shared `docker-compose.yml` file is used. This setup guide follows a modified version of the [guide by matusnovak](https://gist.github.com/matusnovak/37109e60abe79f4b59fc9fbda10896da). Furthermore this guide will assume you already have a [traefik v2.4](./traefik.md) instance setup as described in the -[traefik docker image entry](./docker-images/traefik.md). +[traefik docker image article](./docker-images/traefik.md). ### DNS records @@ -86,15 +87,26 @@ docker run -it --rm \ matrixdotorg/synapse:latest generate ``` -Navigate to the volume and edit the configuration files. -For the `homeserver.yaml` locate the following line and change them -accordingly: +If you want to enable/disable registration go to the `homeserver.yaml` +and add the following line either set to `true` or `false`: +`enable_registration: true`. -```yaml -public_baseurl: https://synapse.example.com/ -``` +Additionally create the following lines: -Additionally uncomment the lines following `ip_range_blacklist:` +``` +federation_ip_range_blacklist: + - '127.0.0.0/8' + - '10.0.0.0/8' + - '172.16.0.0/12' + - '192.168.0.0/16' + - '100.64.0.0/10' + - '169.254.0.0/16' + - '::1/128' + - 'fe80::/64' + - 'fc00::/7' +retention: + enabled: true +``` If you start the docker container with `docker-compose up` and navigate to `https://synapse.example.com` you should be redirected to @@ -105,9 +117,6 @@ If this is not the case please check your configuration. Create an admin user in the docker containers shell with the command: `register_new_matrix_user -c /data/homeserver.yaml https://synapse.example.com` -If you want to enable registration go to the `homeserver.yaml` -and locate the line starting with `enable_registration:` and set it to `true`. - Finally shut down the container using `docker-compose down` to be able to keep following the guide (this applies to any following step). @@ -195,12 +204,6 @@ You should see a green sign that indicates success. If one of these does not work (but synapse works) your nginx configuration is not correctly set up. -## Additional Features - -Your done with the most basic setup for your Matrix Homeserver to work properly -with federation. -All following sections will add features to it. - ### Element web client The docker-image used for the web client can be found in the @@ -301,9 +304,12 @@ section: - "traefik.http.routers.element-secure.rule=Host(`chat.example.com`)" - "traefik.http.routers.element-secure.service=element" - "traefik.http.services.element.loadbalancer.server.port=80" - ``` +Add the following line to the `homeserver.yaml` of the synapse server to +indicate your element domain: +`web_client_location: https://chat.example.com`. + Start the container. You should now be able to navigate to `https://chat.example.com` where you are prompted with a log in window. diff --git a/wiki/metube.md b/wiki/metube.md new file mode 100644 index 0000000..179b65b --- /dev/null +++ b/wiki/metube.md @@ -0,0 +1,9 @@ +# MeTube + +[MeTube](https://github.com/alexta69/metube) is a service that features a web +user interface for downloading [YouTube](/wiki/youtube.md) videos. + +## Setup + +The software can be setup via [Docker](/wiki/docker.md) with the +[alexta69 image](./docker-images/alexta69_-_metube.md). diff --git a/wiki/movies_&_tv_shows.md b/wiki/movies_&_tv_shows.md new file mode 100644 index 0000000..5afdf73 --- /dev/null +++ b/wiki/movies_&_tv_shows.md @@ -0,0 +1,169 @@ +# Movies & TV Shows + +It is nice to have some movies saved on your system. +There are multiple different approaches on how to get it working depending on +your needs. +In general you need to consider if you want the video directly on your pc or +access a server for it. + +## Server/Client + +If you want to keep your system clean of much data, you can use this kind of setup. +There are differences depending on your preffered client interface. + +- [Plex](https://www.plex.tv) is a dockerizable media streaming service with web-interface. +- [Jellyfin](./jellyfin.md) is a foss dockerizable media streaming service with web-interface. + +## Scan DVDs/Blu-Rays + +You can convert your DVDs and Blu-Rays to files on your computer. +This way you don't have to search for your discs all the time. + +- [MakeMKV](https://www.makemkv.com) for windows can extract a `.mkv` file from + a disc (Beta key can be found + [here](https://www.makemkv.com/forum/viewtopic.php?f=5&t=1053)). + On Linux it is possible that the drive is not detected in MakeMKV. + To fix this issue run the following lines and reboot afterwards. + + ``` + su + echo sg > /etc/modules-load.d/sg.conf + ``` + + MakeMKV can be obtained over different ways. One of them is flatpack in which + you start MakeMKV via `flatpak run com.makemkv.MakeMKV` after installation. + +- [MKS Extractor GUI](https://www.videohelp.vom/software/MKS-Extractor-GUI) + for windows can extract subtitles from a `.mkv` file. +- [Subtitleedit]([https://www.videohelp.vom/software/MKS-Extractor-GUI](https://www.nikse.dk/subtitleedit)) + for linux can extract subtitles from a `.mkv` file and do ocr. +- [VidCoder](https://vidcoder.net) for windows can compress `.mkv` files. Its an adapted version of the HandBrake software. +- [HandBrake]([https://vidcoder.net](https://handbrake.fr/)) for linux can compress `.mkv` files. + +## Naming schemes of movies and TV shows + +This section describes how to name and how to place movies and TV shows and +their extras in the directories correctly to get [jellyfin](./jellyfin.md) and +other software media systems to recognize them. + +In +[the jellyfin tv shows documentation](https://jellyfin.org/docs/general/server/media/shows.html) +and +[the jellyfin movie documentation](https://jellyfin.org/docs/general/server/media/movies.html) +are sections on how to name files correctly. +This entry uses the conventions based in the documentation and introduces +slight changes to indicate different versions and encodings more precisely. + +### Handling movies or episodes consisting of multiple video files + +Some software media systems do not have the capability to seamlessly transition +between multiple files of a movie or episode. +The easiest way to achieve a seamless movie experience is to concatenate the +two movie files. +This can be easily done with +[ffmpeg](./linux/ffmpeg.md#concatenate-multiple-video-files-with-matching-audio-tracks). + +### Naming Subtitles of movies or tv shows + +Subtitles can be written into video files. +If that is the case an additional naming of the file is not needed. +This section especially targets `.srt` files but the naming conventions +translate to other file types aswell. +Files containing subtitles are named the same as the video file they relate to +The only difference is the file extension. +After the name of the file the language of the subtitles is indicated by the +two-letter language code specified by +[ISO 639-1](https://iso639-3.sil.org/code_tables/639/data?title=&field_iso639_cd_st_mmbrshp_639_1_tid=255291). +For example `.en` is added to specify the english language. +After that `.forced` can be added, if the subtitles are forced. +Lastly the file extension `.srt` is appended. +The complete subtitle file look like this: +`movie_(1234)_-_brd_uu.en.forced.srt`. + +Additionally to indicate the encoding and source can be indicated before the +file extension. +`brd` for Blu-ray disc, `dvd` for digital versatile disc. +This is followed by an encoding indicator starting with `u` and followed by +your own scheme for encodings. + +### Naming extras + +The following list are set expressions for extras of movies and tv shows. +These will be used in the following sections on how to name +[movies](#naming-movies) and +[tv shows](#naming-tv-shows). +For the exact use of them look into these sections. + +- `extras` (generic catch all for extras of an unknown type) +- `featurettes` +- `interviews` +- `samples` +- `scenes` +- `shorts` +- `trailers` + +### Naming movies + +In the following slight changes are made to ensure better naming schemes. +Different versions of the same movie can be stored in the same folder with +slightly different names to indicate the specific version. +Inside the movie folder you can create subfolders with names according to the +expressions for extras from the [extras section](#naming-extras). + +The `movies` folder is a folder containing all movies. +An example looks like the following: + +``` +movies +└── best_movie_ever_(2019) + ├── best_movie_ever_(2019)-brd_uu.mp4 + ├── best_movie_ever_(2019)-brd_uu.en.forced.srt + ├── best_movie_ever_(2019)-dvd_u1.mp4 + ├── best_movie_ever_(2019)-brd_u1.en.srt + ├── best_movie_ever_(2019)-brd_un_directors_cut.mp4 + ├── behind_the_scenes + ├── interviews + │ └── director_interview-brd_u1.mp4 + └── extras + ├── making_of-brd_uu.mp4 + ├── making_of-brd_u1.en.srt + ├── finding_the_right_score-dvd_u1.mp4 + └── home_recreation-brd_u2.mp4 +``` + + +Another way to keep extras in the main folder of the movie is by adding the +following suffixes to the files accordingly: + +### Naming TV shows + +Inside the shows folder you can create the `season_00` folder as a directory +for extras. +Files containing multiple episodes at once are named by specifying the first +and last episode they include `s01e01-e02`. +Because of the heavily varying the titles of the episodes are not included. +Specify the extras inside the `season_0` folder with the expressions from +[the extras section](#naming-extras). + +The `shows` folder is a folder containing all tv shows. +An example looks like the following. + +``` +shows +└── series_(2010) + ├── season_0 + │ ├── behind_the_scenes-brd_uu.mkv + │ ├── interview-brd_uu.mkv + │ └── featurette-dvd_un.mkv + │ + ├── season_1 + │ ├── series_(2010)_s01e01-e02-dvd_un.mkv + │ ├── series_(2010)_s01e01-e02-dvd_un.de.srt + │ ├── series_(2010)_s01e03-brd_un.mkv + │ ├── series_(2010)_s01e03-brd_un.de.forced.srt + │ └── series_(2010)_s01e04-brd_un.mkv + │ └── series_(2010)_s01e04-brd_un.en.srt + └── season_2 + ├── series_(2010)_s02e01-dvd_un.mkv + └── series_(2010)_s02e02-dvd_un.mkv +``` diff --git a/wiki/multimc5.md b/wiki/multimc5.md deleted file mode 100644 index 68e6662..0000000 --- a/wiki/multimc5.md +++ /dev/null @@ -1,17 +0,0 @@ -# MultiMC5 - -[MultiMC5](https://multimc.org) is a custom launcher that allows multiple Minecraft -instances installed at once. - -## Add OptiFine to a Minecraft instance - -[OptiFine](https://www.optifine.net/home) is a Minecraft optimization mod. -This guide shows how to add optifine to an instance on windows. - -- If not already done create an instance on MultiMC5 -- Download the according version of OptiFine from their [website](https://www.optifine.net/downloads) -- Open the Minecraft standard (Java) launcher and start the according version at - least once -- Open the OptiFine jar, click `Extract` and save the extracted OptiFine to a folder -- Edit the according instance and select `Version`, then select `Add to Minecraft.jar` - and select the extracted OptiFine diff --git a/wiki/music.md b/wiki/music.md deleted file mode 100644 index 2060aa9..0000000 --- a/wiki/music.md +++ /dev/null @@ -1,28 +0,0 @@ -# Music - -Music is a nice to have on your system. -There are multiple different approaches on how to get it working depending on -your needs. -In general you need to consider if you want the music directly on your pc or -access a server for it. - -## Server/Client - -If you want to keep your system clean of much data, you can use this kind of setup. -There are differences depending on your preffered client interface. - -- [Airsonic](./airsonic.md) is a free fork of Subsonic, can be dockerized and has - a web-interface. - -## Scan CDs - -You can convert your CDs to files on your computer. -This way you don't have to search for your CDs all the time. - -- [Exact Audio Copy](https://www.exactaudiocopy.de) for windows can rip music - and automatically tag it with the help of a list of databases. -- [metaflac](https://linux.die.net/man/1/metaflac) for linux is a programm - to edit the tags of flac files from the command line. - It is bundled in the `flac` package for debian and arch based systems. -- [MusicBrainz Picard](https://picard.musicbrainz.org/) for linux is a - graphical user interface for tagging files of many different formats. diff --git a/wiki/nextcloud.md b/wiki/nextcloud.md index a4adb91..0f46a18 100644 --- a/wiki/nextcloud.md +++ b/wiki/nextcloud.md @@ -2,14 +2,19 @@ NextCloud is a free and open source client-server cloud-service. -## Server +## Setup -A server can be setup via docker with the [nextcloud image](./docker-images/nextcloud.md). +The software can be setup via [Docker](/wiki/docker.md) with the +[nextcloud image](./docker-images/nextcloud.md). When using NextCloud with a specific nginx configuration you have to append `'overwriteprotocol' => 'https',` to your `config/config.html`. -## WebDAV +## Usage + +This section addresses various features of NextCloud. + +### WebDAV You can access ownCloud via WebDAV with the link `https://<nextcloud instance>/remote.php/dav/files/<user>/<path to folder or file>`. diff --git a/wiki/nginx.md b/wiki/nginx.md index c2b935e..860cc03 100644 --- a/wiki/nginx.md +++ b/wiki/nginx.md @@ -1,9 +1,13 @@ # Nginx -## Server +[nginx](https://www.nginx.com/) is a web server that can be used as +[reverse proxy](./reverse-proxy.md). -A server can be setup via docker with the -[nasourso image](./docker-images/nasourso_-_nginx-certbot-docker-tui.md). +## Setup + +The software can be setup via [Docker](/wiki/docker.md) with a terminal user +interface program for nginx and certbot, which is called +nginx-certbot-docker-tui or short ncdt. Alternatively the standalone [nginx image](./docker-images/nginx.md) can be used. diff --git a/wiki/nitter.md b/wiki/nitter.md index 5aef0a0..420b585 100644 --- a/wiki/nitter.md +++ b/wiki/nitter.md @@ -3,13 +3,18 @@ [Nitter](https://github.com/zedeus/nitter) is an alternative frontend for Twitter. -## Server +## Setup -A server can be setup via docker with the [zedeus image](./docker-images/zedeus_-_nitter.md). +The software can be setup via [Docker](/wiki/docker.md) with the +[zedeus image](./docker-images/zedeus_-_nitter.md). -## Automatic redirect from Twitter +## Usage -There are various addons to redirect from Twitter links to your (or a public) +This section addresses various features of Nitter. + +## Automatic redirect + +There are various add-ons to redirect from Twitter links to your (or a public) Nitter instance. For Firefox for example there is [nitter redirect](https://addons.mozilla.org/en-US/firefox/addon/nitter-redirect/) diff --git a/wiki/nvidia.md b/wiki/nvidia.md new file mode 100644 index 0000000..49fd454 --- /dev/null +++ b/wiki/nvidia.md @@ -0,0 +1,13 @@ +# Nvidia + +[Nvidia](https://www.nvidia.com) is a vendor for graphics cards. +These graphics cards are mainly supported for Windows systems but can be used on +Linux based systems with some special caveats explained in the +[Linux Nvidia entry](/wiki/linux/nvidia.md). + +### Screen Capture + +Nvidias program with several tools - called GeForce Experience - features +software for hardware-accalerated [screen recordings](/wiki/screen_capture.md). +This recording software is called Nvidia ShadowPlay. +Nvidia Experience is currently only available on Windows systems. diff --git a/wiki/obs.md b/wiki/obs.md new file mode 100644 index 0000000..2d56654 --- /dev/null +++ b/wiki/obs.md @@ -0,0 +1,42 @@ +# OBS + +[Open Broadcaster Software](https://obsproject.com) - short OBS - is a free +and open source software for video recording and live streaming. +Additionally see the +[the webcams entry](/wiki/linux/webcams.md#configure-the-webcam) if on Linux. + +## Plugins + +There are several plugins made by non-obs developers. +The plugins introduce different and new features. + +### Virtual Camera + +By using a virtual camera the views of OBS can be used as an additional camera +output, making it possible to add effects and more to the video feed of the +camera. + +#### Installation (Linux) + +First of all [V4L2](./linux/v4l2.md) needs to be set up. +This guide assumes it is set up according to the section in the +[V4L2 entry](./linux/v4l2.md#v4l2loopback). +Make sure to +[start the service](/wiki/linux/systemd.md#startstopenabledisable-a-service) by +running `systemctl start v4l2loopback.service` or enable it to start after each +boot with `systemctl enable v4l2loopback.service`. +Afterwards the virtual camera can be started. + +### Background Removal + +Background removal removes the background of a camera image stream. +The removed background can be replaced with color key filters. + +#### Installation + +Made by royshil +[the github page](https://github.com/royshil/obs-backgroundremoval#linux) +describes various possibilities to install the background removal for OBS on +different systems. +On Linux systems background removal is often contained in a package named +`obs-backgroundremoval` or similarly. diff --git a/wiki/owncloud.md b/wiki/owncloud.md index 7e0567f..9a7b6f3 100644 --- a/wiki/owncloud.md +++ b/wiki/owncloud.md @@ -2,9 +2,19 @@ ownCloud is a free client-server cloud-service. -## Server +## Setup -A server can be setup via docker with the [owncloud image](./docker-images/owncloud.md). +The software can be setup via [Docker](/wiki/docker.md) with the +[owncloud image](./docker-images/owncloud.md). + +## Usage + +This section addresses various features of Owncloud. + +### WebDAV + +You can access ownCloud via WebDAV with the link +`https://<owncloud instance>/remote.php/dav/files/<user>/<path to folder or file>`. ## Error handling @@ -19,8 +29,3 @@ Afterwards enable locking again by removing the added line. The reason I choose this process over editing the database file, is ease of use. The editing of the database is much more time consuming especially if run with docker. - -## WebDAV - -You can access ownCloud via WebDAV with the link -`https://<owncloud instance>/remote.php/dav/files/<user>/<path to folder or file>`. diff --git a/wiki/peertube.md b/wiki/peertube.md new file mode 100644 index 0000000..57cc675 --- /dev/null +++ b/wiki/peertube.md @@ -0,0 +1,9 @@ +# PeerTube + +[PeerTube](https://joinpeertube.org/) is a free and decentralized video +platform using WebTorrent. + +## Setup + +The software can be setup via [Docker](/wiki/docker.md) with the +[chocobozzz image](./docker-images/chocobozzz_-_peertube.md). diff --git a/wiki/picard.md b/wiki/picard.md new file mode 100644 index 0000000..1425977 --- /dev/null +++ b/wiki/picard.md @@ -0,0 +1,56 @@ +# Picard + +[MusicBrainz Picard](https://picard.musicbrainz.org/) is a free cross-platform +tagging software for [music or other audio files](./audio.md). +It is able to tag a wide range of [audio codecs](./audio.md#audio-codecs) +[flac](./flac_(codec).md) among others. + +## Usage + +This section addresses various features of picard. + +### File naming + +To enable the file renaming on saving check `Rename files when saving` in the +preferences. +Under `Options` you can `Open file naming script editor` to change the script. +The tags described used are based on the audio codec. +In this section it is assumed the standard +[flac tags](./flac_(codec).md#tagging) are used as described in this wiki. + +#### Music + +The following is a basic script for renaming music files to the scheme +`[<discnumber>.]<tracknumber>._<artist>_-_<title>` +all in lower case. +discnumber is only added, when the total disc count is greater than 1. +Both discnumber and tracknumber are padded according to the number of total +discs and tracks. +The tracknumber is padded to at least 2 places. + +``` +$replace($lower( +$if($gt(%totaldiscs%,1),$num(%discnumber%,$len(%totaldiscs%)).,) +$num(%tracknumber%,$if($gt($len(%totaltracks%),2),$len(%totaltracks%),2))._ +%artist%_-_ +%title%), ,_) +``` + +#### Audiobooks + +Another Script is mainly used for audiobooks, where the title is not part of +the filename to avoid confusion. +The files are renamed with the scheme +`[<discnumber>.]<tracknumber>._<artist>_-_<album>_<tracknumber>` +all in lower case. +Both discnumber and tracknumber are handled in the same way as in the previous +script. + +``` +$replace($lower( +$if($gt(%totaldiscs%,1),$num(%discnumber%,$len(%totaldiscs%)).,) +$num(%tracknumber%,$if($gt($len(%totaltracks%),2),$len(%totaltracks%),2))._ +%artist%_-_ +%album%), ,_)_ +$num(%tracknumber%,$if($gt($len(%totaltracks%),2),$len(%totaltracks%),2)) +``` diff --git a/wiki/podgrab.md b/wiki/podgrab.md new file mode 100644 index 0000000..81bcace --- /dev/null +++ b/wiki/podgrab.md @@ -0,0 +1,9 @@ +# Podgrab + +[Podgrab](https://github.com/akhilrex/podgrab) is free and open-source +podcatcher that can also be used to listen to podcasts. + +## Setup + +The software can be setup via [Docker](/wiki/docker.md) with the +[axhilrex](./docker-images/axhilrex_-_podgrab.md). diff --git a/wiki/portainer.md b/wiki/portainer.md index 18d1f4c..8907bb6 100644 --- a/wiki/portainer.md +++ b/wiki/portainer.md @@ -1,9 +1,19 @@ # Portainer -## Server +[Portainer](https://www.portainer.io/) is a Kubernetes management platform that +also works with [Docker](./docker.md). -A server can be setup via docker with the [portainer image](./docker-images/portainer_-_portainer.md). +## Setup + +Portainer is a service that allows clustering. +It consist of one [server](#server) and possibly multiple [agents](#agent). + +### Server + +The software can be setup via [Docker](/wiki/docker.md) with the +[portainer image](./docker-images/portainer_-_portainer.md). ## Agent -An agent can be setup via docker with the [portainer image](./docker-images/portainer_-_agent.md). +An agent is a cluster of Docker API proxies. +An agent can be setup via Docker with the [portainer image](./docker-images/portainer_-_agent.md). diff --git a/wiki/programming-languages/c-language.md b/wiki/programming-languages/c-language.md index fa2ddfd..106bee5 100644 --- a/wiki/programming-languages/c-language.md +++ b/wiki/programming-languages/c-language.md @@ -2,15 +2,13 @@ C is a common programming language. -## Installation +## Setup To get c working you basically just need to install a compiler. To get a compiler for c there are a few options. - [GNU compiler collection](https://gcc.gnu.org) -## IDE - ### Vim The steps to make Vim a c IDE are described in [the vim section of this wiki](../linux/vim/c-language.md). diff --git a/wiki/programming-languages/golang.md b/wiki/programming-languages/golang.md index dd3e44a..7e92504 100644 --- a/wiki/programming-languages/golang.md +++ b/wiki/programming-languages/golang.md @@ -2,7 +2,7 @@ GoLang is a common programming language. -## Installation +## Setup To get go working you basically just need to install [Go](https://golang.org/doc/install). Make sure to set the `GOPATH` and the `GOBIN` variable and add the last to the `Path` @@ -16,8 +16,6 @@ export PATH="${GOBIN}:${PATH}" You can move the `GOPATH` where you want. -## IDE - -### Vim +## Vim The steps to make Vim a Go IDE are described in [the vim section of this wiki](../linux/vim/golang.md). diff --git a/wiki/programming-languages/nim.md b/wiki/programming-languages/nim.md index 31d61cf..d19c125 100644 --- a/wiki/programming-languages/nim.md +++ b/wiki/programming-languages/nim.md @@ -3,15 +3,13 @@ [Nim](https://nim-lang.org) is a statically typed compiled systems programming language. -## Installation +## Setup You can install nim using choosenim with `curl https://nim-lang.org/choosenim/init.sh -sSf | sh`. If you're on an arch-based machine you can also run `yay -S choosenim` (install `yay` if necessary). -## IDE - -### Vim +## Vim The steps to make Vim a nim IDE are described in [the vim section of this wiki](../linux/vim/nim.md). diff --git a/wiki/programming-languages/python.md b/wiki/programming-languages/python.md index 8ab6fd1..202ddd2 100644 --- a/wiki/programming-languages/python.md +++ b/wiki/programming-languages/python.md @@ -3,7 +3,7 @@ [Python](https://www.python.org) is an interpreted general-purpose programming language. -## Installation +## Setup You can install python using various ways. With `pyenv` you can switch between different versions. @@ -22,9 +22,12 @@ You can then set and install your preferred version of python globally with Analog to managing python versions, `pipenv` can manage pip and package versions. A guide and description of the usage can be found on [gioele.io](https://gioele.io/pyenv-pipenv). -### Avoid Errors in Vim +### Vim -Make sure to add +The steps to make Vim a python IDE are described in +[the vim section of this wiki](../linux/vim/python.md). + +Additionally make sure to add ```vimscript let g:python_host_prog = "/usr/bin/python2" @@ -40,13 +43,6 @@ to your `init.vim` to avoid usage of `pyenv`s version of python in autocompletio To automatically create a `requirements.txt` of your current project, navigate to it and run `pipreqs` (install it if not already done). -## IDE - -### Vim - -The steps to make Vim a python IDE are described in -[the vim section of this wiki](../linux/vim/python.md). - ## Modules There are various modules and package managers to install these for python like diff --git a/wiki/programming-languages/vhdl.md b/wiki/programming-languages/vhdl.md index 5354da0..a389889 100644 --- a/wiki/programming-languages/vhdl.md +++ b/wiki/programming-languages/vhdl.md @@ -2,12 +2,18 @@ VHDL is a hardware description language. -## Installation +## Setup To simulate a VHDL project get [GHDL](https://github.com/ghdl/ghdl). After simulating you can view the simulation with [GTKWave](https://github.com/gtkwave/gtkwave). -## Makefile for basic project +### Vim + +The steps to make Vim VHDL-ready are described in [the vim section of this wiki](../linux/vim/vhdl.md). + +## Usage + +### Makefile for basic project Easiest way to analyse and simulate your project is a `Makefile`: @@ -51,9 +57,3 @@ clean: ``` You can then for example do all steps by running `make all` in the according folder. - -## IDE - -### Vim - -The steps to make Vim VHDL-ready are described in [the vim section of this wiki](../linux/vim/vhdl.md). diff --git a/wiki/qbittorrent.md b/wiki/qbittorrent.md new file mode 100644 index 0000000..b43d654 --- /dev/null +++ b/wiki/qbittorrent.md @@ -0,0 +1,20 @@ +# qBittorrent + +[qBittorrent](https://www.qbittorrent.org/) is a cross platform free and +open-source [BitTorrent client](/wiki/bittorrent.md#clients). + +## Setup + +The software can be setup via [Docker](/wiki/docker.md) with the +[dyonr image](/wiki/docker-images/dyonr_-_qbittorrentvpn.md) that +includes an [OpenVPN](/wiki/vpn.md#openvpn) tunnel. + +## Limiting Upload and Download + +By right clicking torrents a limit for the upload and download can be set. +Setting the limit to `0` and disable the upload/download at all is not possible. +The general upload and download can be limited under the tab `Speed` in the +`Options` under the `Tools` menu. + +If a client is needed that diables upload or download completely another client +from the [bittorrent entry](/wiki/bittorrent.md#clients) should be used. diff --git a/wiki/rar_(algorithm).md b/wiki/rar_(algorithm).md new file mode 100644 index 0000000..63c96fb --- /dev/null +++ b/wiki/rar_(algorithm).md @@ -0,0 +1,14 @@ +# RAR (algorithm) + +This article describes the [RAR](https://www.rarlab.com/) algorithm. +For the linux `rar` or `unrar` package see the +[rar package entry](/wiki/linux/rar_(package).md). + +RAR - short for Roshal Archive - is an algorithm for compression aswell as a +format (`.rar`). +RAR archives can feature files with extensions of an `r` with two digits +following like `.r00` or `.r01`. +When more than 100 data files are needed the letter will turn to an `s` and so +forth until enough files have been created. +These are parts of the compressed data that are created when the data is +compressed. diff --git a/wiki/recommended_alternatives.md b/wiki/recommended_alternatives.md deleted file mode 100644 index cceb98b..0000000 --- a/wiki/recommended_alternatives.md +++ /dev/null @@ -1,57 +0,0 @@ -# Recommended software and alternatives - -This article is a list of proprietary hard- and software, its alternatives and other -recommended, good software (mostly free and/or open-source). - -## Alternatives - -- **Fitness tracker apps** alternatives: - - [GadgetBridge](https://codeberg.org/Freeyourgadget/Gadgetbridge) is a free and - cloudless alternative compatible with many devices. - -- [**Instagram**](https://instagram.com) alternatives: - - [Bibliogram](./bibliogram.md) is an alternative frontend for instagram. - -- **Microsoft office** alternatives: - - [ThunderBird](https://www.thunderbird.net/) is an open-source email client. - - [LibreOffice](https://www.libreoffice.org/) is a free and open-source office - software suite. - -- [**Pocket**](https://getpocket.com/) alternatives: - - [wallabag](./wallabag.md) is a self-hosted application for saving websites. - -- **Preinstalled Android apps** alternatives: - - [SimpleMobileTools](https://www.simplemobiletools.com/) features a wide variety - of apps, that can replace the preinstalled apps (calendar, gallery, launcher, etc.). - -- **Preinstalled Windows programs** alternatives: - - [ImageGlass](https://github.com/d2phap/ImageGlass) is a simple and open-source - image viewer for windows. - - [foobar2000](https://www.foobar2000.org/) is a freeware audio player for windows. - -- [**Reddit**](https://reddit.com) alternatives: - - [Slide](https://github.com/ccrama/Slide) is a open-sourced Reddit browser for - Android. Slide does not feature local subscription management, so you will still - need a reddit account. - - [LibReddit](./libreddit.md) is an alternative private front-end to Reddit. - -- [**Twitter**](https://twitter.com) alternatives: - - [Fritter](https://github.com/jonjomckay/fritter) is a free, open-source Twitter - client for Android and iOS. Fritter features local subscription management. - - [Nitter](./nitter.md) is a free and open source alternative frontend. - -- [**Watch2gether**](https://w2g.tv/) alternatives: - - [SyncTube](./synctube.md) is self hostable software to synchronize video viewing. - -- [**YouTube**](https://youtube.com) is a online video platform owned by Google. - - [Invidious](./invidious.md) is a copyleft and open-source alternative frontend. - Invidious features local subscription management. - - [NewPipe](https://newpipe.net/) is an free and open-source android youtube client. - NewPipe features local subscription management. - -## Recommended Software - -- [anki](https://github.com/ankitects/anki) is an open-source tool to learn with -[SRS](https://en.wikipedia.org/wiki/Spaced_repetition) flashcards. -- [Webapps by tobykurien](https://github.com/tobykurien/webapps) is a tool to -create sandboxed android apps of websites. diff --git a/wiki/reverse-proxy.md b/wiki/reverse-proxy.md new file mode 100644 index 0000000..a00eeed --- /dev/null +++ b/wiki/reverse-proxy.md @@ -0,0 +1,12 @@ +# Reverse proxy + +A reverse proxy is an application that is upstream of back-end application and +forwards clients to those. + +## Software that can be used as reverse proxy + +The following software can be used as reverse proxy. + +- [Traefik](./traefik.md) is a http and https reverse proxy with a special + integration of infrastructure components (e.g. [Docker](./docker.md)) +- [NGINX](./nginx.md) is a webserver that can be also used as a reverse proxy diff --git a/wiki/samba.md b/wiki/samba.md new file mode 100644 index 0000000..a85c698 --- /dev/null +++ b/wiki/samba.md @@ -0,0 +1,15 @@ +# Samba + +[Samba](https://www.samba.org/) is a free software implementation of the SMB +protocol which provides file and print services. +Samba is the standard Windows interoperability suite for Linux and Unix. + +## Setup + +The software can be setup via [Docker](/wiki/docker.md) with the +[samba image](./docker-images/samba.md). + +## Usage + +For the Linux based operating systems the handling of Samba shares is taken care +of by [mount.cifs](./linux/samba.md). diff --git a/wiki/screen_capture.md b/wiki/screen_capture.md new file mode 100644 index 0000000..b64b660 --- /dev/null +++ b/wiki/screen_capture.md @@ -0,0 +1,13 @@ +# Screen Capture + +Screen capture describes the process of recording a computer screen. + +## Screen Capture options + +Windows systems using an Nvidia graphics card can make use of ShadowPlay a +screen recording software integrated in Nvidias suite GeForce Experience. + +Linux systems can use the +[GPU Screen Recorder](/wiki/linux/gpu_screen_recorder.md) to make +gpu-accelerated screen recordings. +It features similar features to ShadowPlay. diff --git a/wiki/searx.md b/wiki/searx.md index da7f41e..ba84b37 100644 --- a/wiki/searx.md +++ b/wiki/searx.md @@ -2,18 +2,23 @@ [Searx](https://searx.me) is a free metasearch engine. -## Server +## Setup -A server can be setup via docker with the [searx image](./docker-images/searx_-_searx.md). +The software can be setup via [Docker](/wiki/docker.md) with the +[searx image](./docker-images/searx_-_searx.md). -## Adding to Firefox +## Usage + +This section addresses various features of Searx. + +### Browser support Add Searx as a new search engine for firefox and set it as main search for the address bar as described in [the Firefox article](./firefox.md). -Follow the addon part of the guide and put searx with +Follow the add-on part of the guide and put searx with `<url to searx instance>/search?q=%s` as search string. -## Route search traffic through tor +### Route search traffic through tor You can setup a torproxy with [the dperson image](./docker-images/dperson_-_torproxy.md). In the `settings.yml` file locate the section for `proxies :` and diff --git a/wiki/subsonic.md b/wiki/subsonic.md index 274e3f5..9e2b28c 100644 --- a/wiki/subsonic.md +++ b/wiki/subsonic.md @@ -1,6 +1,32 @@ # Subsonic -[Subsonic](https://www.subsonic.org) is a personal media streamer mostly used -for music. +[Subsonic](https://www.subsonic.org) is a personal media streamer used for +[music, podcasts audiobooks](./audio.md). It is non-free and closed-source. -There is a free and open-source alternative named [Airsonic](./airsonic.md). +There are free and open-source alternatives named [Airsonic](./airsonic.md) and +[Airsonic-Advanced](./airsonic-advanced.md). + +## Setup + +Subsonic is a service that consists of a [client](#client) and a +[server](#server). + +### Server + +It is possible to use different servers. +The following list contains a selection of servers. + +- [airsonic](./airsonic.md) is a free and open-source fork of subsonic. +- [airsonic-advanced](./airsonic-advanced.md) is a free and open-source fork of + airsonic with new features. + +### Client + +It is possible to use different clients. +The following list contains a selection of clients. + +- [Ultrasonic](https://www.f-droid.org/en/packages/org.moire.ultrasonic) is a + free and open-source android subsonic-compatible client. +- [Sonixd](https://github.com/jeffvli/sonixd) is a + free and open-source cross-plattform subsonic- and jellyfin-compatible client. + It uses a look and feel similar to the spotify client. diff --git a/wiki/syncthing.md b/wiki/syncthing.md new file mode 100644 index 0000000..d9da397 --- /dev/null +++ b/wiki/syncthing.md @@ -0,0 +1,48 @@ +# Syncthing + +[Syncthing](https://syncthing.net/) is a continuous file synchronization +program. +The Software synchronizes files between multiple devices directly. + +## Setup + +The software can be setup via [Docker](/wiki/docker.md) with the +[linuxserver image](./docker-images/linuxserver_-_syncthing.md). + +Additionally the software can be installed by visiting the +[official website](https://syncthing.net/downloads/) and download it from +there. + +### Initial configuration + +Syncthing can be configured in root and in user space. + +#### Root space configuration for Linux + +This section assumes that a Linux system is used. +For root space configuration you can use the Docker image for easy setup. +Afterwards navigate to the set IP with your browser and set up the directories +to sync. + +#### User space configuration for Linux + +This section assumes that a Linux system is used. +The user space configuration is a bit more difficult than the root space +configuration. +The following steps are adapted from a +[reddit post by tmplshdw](https://www.reddit.com/r/SteamDeck/comments/uhf8lw/comment/i77ojke/). + +- Download synthing from their website as described in the + [setup section][#setup]. +- Extract the downloaded `.tar.gz` file +- Copy the file named `syncthing` to your home directory +- In the downloaded folder copy the file + `etc/linux-systemd/user/syncthing.service` to `~/.config/systemd/user/` +- In the file `~/.config/systemd/user/` change the line starting with + `ExecStart=`. + Put the absolute path to your home directory after the equal sign +- Run `systemctl --user enable syncthing.service` and + `systemctl --user start syncthing.service` to start the Syncthing service now + and at each following start of the system + +After this Syncthing can be found at `http://127.0.0.1:8384` diff --git a/wiki/synctube.md b/wiki/synctube.md index 1b6b94c..ce2c0ab 100644 --- a/wiki/synctube.md +++ b/wiki/synctube.md @@ -3,6 +3,7 @@ [SyncTube](https://github.com/RblSb/SyncTube) is open source software to view videos in sync with other people. -## Server +## Setup -A server can be setup via docker with the [rblsb image](./docker-images/rblsb_-_synctube.md). +The software can be setup via [Docker](/wiki/docker.md) with the +[rblsb image](./docker-images/rblsb_-_synctube.md). diff --git a/wiki/teamspeak3.md b/wiki/teamspeak3.md index f8dfd0c..c6b6466 100644 --- a/wiki/teamspeak3.md +++ b/wiki/teamspeak3.md @@ -2,16 +2,19 @@ [Teamspeak3](https://www.teamspeak.com) is a voice-over-IP service. -## Server +## Setup -A server can be setup via docker with the [teamspeak image](./docker-images/teamspeak.md). +The software can be setup via [Docker](/wiki/docker.md) with the +[teamspeak image](./docker-images/teamspeak.md). -## DNS +## Usage + +This section addresses various features of Teamspeak3. ### Link Teamspeak3 to a subdomain -To link Teamspeak3 to one of your subdomains you need to add a [DNS](./dns.md) -SRV-record: +To link Teamspeak3 to one of your subdomains you need to add a +[DNS SRV-record](./dns.md#srv-record): ```txt type: SRV diff --git a/wiki/tor.md b/wiki/tor.md index 5f6519a..50ace25 100644 --- a/wiki/tor.md +++ b/wiki/tor.md @@ -1,9 +1,16 @@ # Tor -[Tor](https://www.torproject.org/) is a free and open source software for anonymous -communication via internet traffic. +[Tor](https://www.torproject.org/) is a free and open source software for +anonymous communication via internet traffic. +Tor can be used to access `.onion` sites or to anonymize traffic. -## Tor proxy +## Usage -A tor proxy can be used to access `.onion` sites or to anonymize traffic. -It can be set up using [docker](./docker-images/dperson_-_torproxy.md). +This section features various features of Tor. + +### Proxy + +A Tor proxy can be used to access the Tor network via the SOCKS protocol, an +HTTP tunnel protocol or other ways. +It can be set up using [docker](/wiki/docker.md) and the +[dperson image](./docker-images/dperson_-_torproxy.md). diff --git a/wiki/traefik.md b/wiki/traefik.md index fba67d2..6e60024 100644 --- a/wiki/traefik.md +++ b/wiki/traefik.md @@ -1,9 +1,9 @@ # Traefik -[Traeffik](https://github.com/traefik/traefik) is a http reverse proxy with +[Traefik](https://github.com/traefik/traefik) is a http reverse proxy with a special integration of infrastructure components (e.g. [Docker](./docker.md)). -## Server +## Setup -A server can be setup via docker with the +The software can be setup via [Docker](/wiki/docker.md) with the [traefik image](./docker-images/traefik.md). diff --git a/wiki/transmission.md b/wiki/transmission.md new file mode 100644 index 0000000..90af9bc --- /dev/null +++ b/wiki/transmission.md @@ -0,0 +1,31 @@ +# Transmission + +[Transmission](https://transmissionbt.com/) is a free and cross-platform +[BitTorrent](/wiki/bittorrent.md) client. + +## Setup + +The software can be setup via [Docker](/wiki/docker.md) with the +[haugene image](./docker-images/haugene_-_transmission-openvpn.md) that +includes an openvpn tunnel. + +## Limiting Upload + +When the downloaded torrent should not be seeded the best way is enabling and +setting `Stop seeding at ratio:` to `0` under `Torrents` in the settings. +This will stop the process of seeding once a package is downloaded allowing +other torrents to start downloading. + +## Change Number of Concurrent Downloads + +The default number of concurrent downloads is set to 5. +To increase this number edit the file `~/.config/transmission/settings.json` +inside the system that runs Transmission and change change the following line to +the preferred number of downloads. +When running +[the haugene image](./docker-images/haugene_-_transmission-openvpn.md) the file +is located at `/config/transmission-home/settings.json`. + +```txt +"download-queue-size": 5 +``` diff --git a/wiki/tvheadend.md b/wiki/tvheadend.md new file mode 100644 index 0000000..d22d931 --- /dev/null +++ b/wiki/tvheadend.md @@ -0,0 +1,111 @@ +# TVHeadend + +[TVHeadend](https://tvheadend.org/) is a server application that forwards video +streams to internet streams. +It supports multiple dvb tuners and tuner sticks aswell as Sat>IP tuners. +It also has the ability to record programs like a digital video recorder. +TVHeadend has an +[official documentation](https://docs.tvheadend.org/webui/config_dvr/) on its +website. +TVHeadend is compatible with [jellyfin](./jellyfin.md#connect-tvheadend) with +the help of a plugin. + +## Setup + +The software can be setup via [Docker](/wiki/docker.md) with the +[linuxserver image](./docker-images/linuxserver_-_tvheadend.md). +For different hardware there may be additional run options needed to get +TVHeadend working properly. +Additionally a solid [initial configuration](#initial-configuration) is +recommended. +This configuration includes the setup of different types of tuners. + +### Fritzbox + +Using a Fritzbox as the router the build in SAT>IP tuner can be used. +For this `--satip_xml http://192.168.178.1:49000/satipdesc.xml` needs to be +added as a run option with the IP address matching the one of your Fritzbox. + +For multiple tuners to work the hosting system has to have multiple IP addresses +as only one address can be bound to one tuner at the time. +Setting up a linux system with additional IP addresses is described in +[the netplan entry](./linux/netplan.md#add-more-ip-addresses-to-a-system). + +The still needed setup is equal to the [setup for DVB-C Tuners](#dvb-c). + +### Initial configuration + +This subsection is about the recommended configurations for a TVHeadend +instance. + +One of the most important configurations is the naming scheme of the recorded +files. +To change this setting navigate to +`Configuration > Recording > Digital Video Recorder Profiles` and select your +current profile. +Under `Filesystem Settings` `Format string/Pathname specification` can be found. +In the according +[official documentation section](https://docs.tvheadend.org/webui/config_dvr/) +The default format string and possible variations are specified there. +The recommended Format string used by this guide is the following: +`$t/$t$_e_%F$n.$x`. +It will create a folder with the same name as the show for each show. +The containing files are named with the title, the possible episode aswell as +the date the show was recorded. +If two files feature the same name an ascending number is added. +This naming scheme is compatible with [Jellyfins](./jellyfin.md) `Other` +content type. + +#### DVB-C + +In TVHeadend navigate to `Configuration > DBV Inputs > TV adapters`. +Create a Network, select `Enabled`, set your `Network name`, select one of the +`Pre-defined muxes` according to your location and internet provider. +Set `Network discovery` to `New muxes + changed muxes` and uncheck +`Skip startup scan`. +Then click `Save`. + +In TVHeadend navigate to `Configuration > DBV Inputs > TV adapters`. +There are the tuners connected to your system. +Select them one-by-one, check `Enabled`, select your just set up network in +`Networks` aswell as `DVB-C` as the network type. +Set `Next tune delay in ms (0-2000)` to `200` and select `On` for +`Pass specinv`. +Then put in one of the IP addresses added to your system in the previous step +under `Tuner bind IP address`. +Then click `Save`. + +After these steps a list of Muxes should appear in +`Configuration > DBV Inputs > Muxes` and some of them should turn to `OK` under +`Scan Result`. +Following this a list of TV and radio channels should appear in +`Configuration > DBV Inputs > Services`. +After this the setup is completed. + +## Usage + +This section addresses various features of TVHeadend. + +### Mapping channels + +Following the Setup you have a list of possible channels available at +`Configuration > DVB Inputs > Service`. +Select the channels that are to be streamed and/or recorded and press +`Map selected services`. +After that the channels are mapped navigate to +`Configuration > Channel/EPG > Channels` where a list of your selected channels +is displayed. +There you can select `Numbers` by invoking `Edit` on the Channels. +Under `Electronic Program Guide` a list of current and future programs is +shown. + +### Scheduling a recording + +To record a show navigate to `Electronic Program Guide` after +[adding the channel](#adding-channels) that is to be recorded. +In the program guide a list of all shows is given. +Left click on the show to record and select `Record` in the pop-up. +To record all shows of the same name select `Autorec`. +In `Digital Video Recorder` all `Upcoming/Current Recordings` can be seen and +deleted if neccessary. +In `Autorecs` the show names to record are listed. diff --git a/wiki/video.md b/wiki/video.md deleted file mode 100644 index c708c96..0000000 --- a/wiki/video.md +++ /dev/null @@ -1,27 +0,0 @@ -# Video - -It is nice to have some movies saved on your system. -There are multiple different approaches on how to get it working depending on -your needs. -In general you need to consider if you want the video directly on your pc or -access a server for it. - -## Server/Client - -If you want to keep your system clean of much data, you can use this kind of setup. -There are differences depending on your preffered client interface. - -- [Plex](https://www.plex.tv) is a dockerizable media streaming service with web-interface. -- [Jellyfin](./jellyfin.md) is a foss dockerizable media streaming service with web-interface. - -## Scan DVDs/Blu-Rays - -You can convert your DVDs and Blu-Rays to files on your computer. -This way you don't have to search for your discs all the time. - -- [MakeMKV](https://www.makemkv.com) for windows can extract a `.mkv` file from - a disc (Beta key can be found - [here](https://www.makemkv.com/forum/viewtopic.php?f=5&t=1053)). -- [MKS Extractor GUI](https://www.videohelp.vom/software/MKS-Extractor-GUI) - for windows can extract subtitles from a `.mkv` file -- [VidCoder](https://vidcoder.net) for windows can compress `.mkv` files. diff --git a/wiki/vpn.md b/wiki/vpn.md new file mode 100644 index 0000000..742b3b9 --- /dev/null +++ b/wiki/vpn.md @@ -0,0 +1,37 @@ +# VPN + +A VPN is a virtual private network. +It uses a secure connection between a computer and a network or two networks. +It can be used to display another IP address but does not make tracking or +fingerprinting of the device impossible. +VPNs feature a server and a client side. + +## OpenVPN + +[OpenVPN](https://openvpn.net) is a free software to create a VPN via an +encrypted TLS connection. + +### Set up + +In the following sections the different set ups of OpenVPN usages are described. + +#### Server + +The software can be set up via [Docker](/wiki/docker.md) with the +[kylemanna image](./docker-images/kylemanna_-_openvpn.md). +Additionally to this a client is needed on the system that need access to the +server software. + +#### Client + +OpenVPN clients can be found for many devices. +For Android for example there is +[OpenVPN for Android in the F-Droid store](https://f-droid.org/de/packages/de.blinkt.openvpn/). +For most linux distributions there is a package called `openvpn`. + +#### Proxy + +For OpenVPN a proxy acts as an imntermediary between the system communicating +with the proxy and the OpenVPN server. +A proxy can be set up via [Docker](/wiki/docker.md) with the +[jonohill image](./docker-images/jonohill_-_docker-openvpn-proxy.md). diff --git a/wiki/wallabag.md b/wiki/wallabag.md index 39f7e6e..05641b9 100644 --- a/wiki/wallabag.md +++ b/wiki/wallabag.md @@ -2,11 +2,18 @@ [Wallabag](https://github.com/wallabag/wallabag) is a read-it-later app. -## Server +## Setup -A server can be setup via docker with the [wallabag image](./docker-images/wallabag_-_wallabag.md). +The software can be setup via [Docker](/wiki/docker.md) with the +[wallabag image](./docker-images/wallabag_-_wallabag.md). -## Addons for quick access +## Usage -[Wallabager](https://addons.mozilla.org/en-US/firefox/addon/wallabagger/) is a firefox -addon. +This section addresses various features of Wallabag. + +## Browser add-ons + +[On the firefox add-on site](https://addons.mozilla.org/de/firefox/addon/linkding-extension/) +you can find an add-on for wallabag. +You need to configure it by giving the URL for your wallabag instance and a way +to authenticate yourself which can be found in the settings of wallabag. diff --git a/wiki/whoogle.md b/wiki/whoogle.md new file mode 100644 index 0000000..49adafe --- /dev/null +++ b/wiki/whoogle.md @@ -0,0 +1,21 @@ +# Whoogle + +[Whoogle](https://github.com/benbusby/whoogle-search) is a self-hostable +metasearch engine. + +## Setup + +The software can be setup via [Docker](/wiki/docker.md) with the +[image by benbusby](./docker-images/benbusby_-_whoogle-search.md) + +## Usage + +This section addresses various features of Whoogle. + +### Browser support + +Add Whoogle as a new search engine for firefox and set it as main search for the +address bar as described in [the Firefox article](./firefox.md). +Follow the add-on part of the guide and put whoogle with +`<url to whoogle instance>/search?q=%s` as search string. +In rare cases the search string is different. diff --git a/wiki/windows10/file-explorer.md b/wiki/windows/file-explorer.md similarity index 100% rename from wiki/windows10/file-explorer.md rename to wiki/windows/file-explorer.md diff --git a/wiki/windows/windows.md b/wiki/windows/windows.md new file mode 100644 index 0000000..6b8b6d8 --- /dev/null +++ b/wiki/windows/windows.md @@ -0,0 +1,28 @@ +# Windows + +[Windows](https://windows.com/) is an operating system developed by +[Microsoft](https://www.microsoft.com/). + +## Telemetry + +Windows has a `Windows Compatibility Telemetry` process running in the +background. +To disable it follow this +[guide](https://answers.microsoft.com/en-us/windows/forum/windows_10-performance/permanently-disabling-windows-compatibility/6bf71583-81b0-4a74-ae2e-8fd73305aad1): + +- Start the `Task Scheduler` +- In the `Task Scheduler` navigate to the path + `Task Scheduler Library\Microsoft\Windows\Application Experience` +- Look for the `Microsoft Compatibility Appraiser` on the `Application Experience` + folder, right-click it and select `Disable`. + +## Make Windows compatible with UTC + +Making Windows use UTC can be useful for dual-boot systems. +This can be done by running the following command in the Windows command prompt. + +```txt +reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f +``` + +Disabling of UTC time is done with the same command with a `0` instead of a `1`. diff --git a/wiki/windows10/windows10.md b/wiki/windows10/windows10.md deleted file mode 100644 index 447bf37..0000000 --- a/wiki/windows10/windows10.md +++ /dev/null @@ -1,15 +0,0 @@ -# Windows 10 - -[Windows 10](https://windows.com/) is an operating system developed by -[Microsoft](https://www.microsoft.com/). - -## Telemetry - -Windows 10 has a `Windows Compatibility Telemetry` process running in the background. -To disable it follow this [guide](https://answers.microsoft.com/en-us/windows/forum/windows_10-performance/permanently-disabling-windows-compatibility/6bf71583-81b0-4a74-ae2e-8fd73305aad1): - -- Start the `Task Scheduler` -- In the `Task Scheduler` navigate to the path -`Task Scheduler Library\Microsoft\Windows\Application Experience` -- Look for the `Microsoft Compatibility Appraiser` on the `Application Experience` -folder, right-click it and select `Disable`. diff --git a/wiki/youtube.md b/wiki/youtube.md new file mode 100644 index 0000000..54cf05a --- /dev/null +++ b/wiki/youtube.md @@ -0,0 +1,21 @@ +# YouTube + +[YouTube](https://youtube.com) is a online video sharing platform. + +## Alternative Frontends + +There are some alternative frontends available that also feature user managament +including subscriptions. +A self-hosting alternative is [Invidious](/wiki/invidious.md). +For Android phones [NewPipe](https://github.com/TeamNewPipe/NewPipe) is +available in the [F-Droid Appstore](/wiki/android/f-droid.md). + +## Downloading YouTube Videos + +YouTube videos can be downloaded. +Some [alternative frontends](#alternative-frontends) feature downloading of +videos or making them offline available. +As a command line utility [yt-dl](https://github.com/ytdl-org/youtube-dl) or its +fork [yt-dlp](https://github.com/yt-dlp/yt-dlp) can be used. +[MeTube](/wiki/metube.md) is a self-hostable web user interface for +[yt-dlp](https://github.com/yt-dlp/yt-dlp).