mirror of
https://github.com/tiyn/wiki.git
synced 2025-10-10 01:41:23 +02:00
Structure:
- main wiki folder added - removed partition into software-types - thinking about partition by software/general
This commit is contained in:
60
wiki/airsonic.md
Normal file
60
wiki/airsonic.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# Airsonic
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [linuxserver](https://hub.docker.com/r/linuxserver/airsonic).
|
||||
|
||||
#### 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.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | --------------- | ----------------------- |
|
||||
| airsonic\_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
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop airsonic
|
||||
docker rm airsonic
|
||||
docker pull linuxserver/airsonic
|
||||
docker run --name=airsonic \
|
||||
--restart unless-stopped \
|
||||
-p 4040:4040 \
|
||||
-v airsonic_config:/config \
|
||||
-v airsonic_media:/media \
|
||||
-v media_playlists:/playlists \
|
||||
-v media_music:/music \
|
||||
-v media_audiobooks:/audiobooks \
|
||||
-v media_podcasts:/podcasts \
|
||||
-e PUID=0 \
|
||||
-e PGID=0 \
|
||||
-e TZ=Europe/Berlin \
|
||||
-d linuxserver/airsonic
|
||||
```
|
64
wiki/arch-linux/device-specific/thinkpad_x220.md
Normal file
64
wiki/arch-linux/device-specific/thinkpad_x220.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# Thinkpad X220
|
||||
|
||||
These are a bunch of useful programs if you own a thinkpad X220.
|
||||
This guide is done in collaboration with [rvbg.eu](https://wiki.rvbg.eu).
|
||||
|
||||
## Install Gfx drivers
|
||||
|
||||
`yay -S xf86-video-intel`
|
||||
|
||||
## Fan controlling
|
||||
|
||||
- ` yay -S lm_sensors thinkfan` - Install the needed utilities
|
||||
|
||||
- `sudo modprobe thinkpad_acpi` - After that load the kernel module thinkpad_acpi
|
||||
|
||||
- `sudo cp /usr/share/doc/thinkfan/examples/thinkfan.conf.simple /etc/thinkfan.conf` - Copy and configure the config file
|
||||
|
||||
- `systemctl start thinkfan` - Start the thinkfan service
|
||||
|
||||
- `sudo thinkfan -n` - Check the output
|
||||
|
||||
`systemctl enable thinkfan.service` - enable the thinkfan service
|
||||
|
||||
## Change brightness via keyboard
|
||||
|
||||
- `sudo vim /boot/loader/entries/arch.conf` - Open the bootloader configuration
|
||||
- Go to the `options` line.
|
||||
Append the following.
|
||||
```
|
||||
acpi_osi="!Windows 2012"
|
||||
```
|
||||
- `shutdown -r now` - Reboot the system
|
||||
|
||||
## Activate battery options
|
||||
|
||||
- `yay -S tlp` - Install the service
|
||||
- `yay -S acpi_call` - Enables battery charging stop at given capacity
|
||||
- `sudo vim /etc/tlp.conf` - Open the battery options
|
||||
- Change the following lines
|
||||
```
|
||||
START_CHARGE_THRESH_BAT0=80
|
||||
STOP_CHARGE_THRESH_BAT0=90
|
||||
```
|
||||
|
||||
The battery will start charging at 80 percent and stop charging at 90.
|
||||
- `sudo tlp start` - Start service and save changed options
|
||||
- `sudo systemctl enable tlp.service` - Enable the service
|
||||
|
||||
## Setup Thinkpad Dock
|
||||
|
||||
- `yay -S dockd` - Install the docking service
|
||||
- `yay -S xrandr arandr` - Instll multimonitor tools
|
||||
- Dock the system
|
||||
- `arandr` - Setup the monitor configuration
|
||||
- `dockd --config docked` - Save the changes (has to maybe be stopped by `CTRL + C`)
|
||||
- Undock the system
|
||||
- `arandr` - Setup the monitor configuration
|
||||
- `dockd --config undocked` - Save the changes (has to maybe be stopped by `CTRL + C`)
|
||||
- `systemctl enable acpid` - Activate ACPI listener
|
||||
- `systemctl start acpid` - Start ACPI listener
|
||||
|
||||
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`
|
170
wiki/arch-linux/installation.md
Normal file
170
wiki/arch-linux/installation.md
Normal file
@@ -0,0 +1,170 @@
|
||||
# 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).
|
||||
|
||||
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`.
|
||||
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)`.
|
||||
|
||||
If you need to set the keyboard layout to anything other than english you can temporarily do so by using the `loadkeys` command.
|
||||
This has to be followed by your country id (for example a german keyboard layout would be `de`,`de-latin1` or `de-latin1-nodeadkeys`.
|
||||
|
||||
## 2. Formatting of the target drive
|
||||
|
||||
Using `lsblk` you can list all the drives and partitions.
|
||||
Select a drive to install Arch on.
|
||||
In this step you can see if old partitions need to be deleted.
|
||||
For reasons of simplicity the following guide will assume the selected drive to be `/dev/sda`.
|
||||
|
||||
### Clear disk completely:
|
||||
|
||||
This step can take quite a while especially for large drives.
|
||||
|
||||
- `dd status=progress if=/dev/zero of=/dev/sda`
|
||||
|
||||
Now all partitions should be removed.
|
||||
|
||||
### Create new partitions:
|
||||
|
||||
If you miss click during the progress of the following commands you can press `CTRL+C` to close the program.
|
||||
No changes will be made until the confirmation at the end.
|
||||
The swap partition will be created later under lvm.
|
||||
|
||||
- `gdisk /dev/sda`
|
||||
- `N` - Create a new empty partition table
|
||||
- `↵ Enter` - Create a partition
|
||||
- `↵ Enter` - Confirm first sector
|
||||
- `+512M` - Assign size of 512 MB for the first partition
|
||||
- `ef00` - Make the partition bootable
|
||||
- `n` - Create a second partition
|
||||
- `↵ Enter` - Confirm creation of partition
|
||||
- `↵ Enter` - Confirm first sector
|
||||
- `↵ Enter` - Confirm last sector
|
||||
- `↵ Enter` - Confirm partition type
|
||||
- `P` - Show created partitions
|
||||
- `W` - Save all changes
|
||||
- `Y` - Confirm saving changes
|
||||
|
||||
## 3. Encryption
|
||||
|
||||
We need to find out which partitions is the one we want to encrypt.
|
||||
Using `blkid | grep /dev/sda` all partitions we created get listed.
|
||||
The right partition has the label `Linux filesystem`.
|
||||
For this guide this partition is assumed to be `/dev/sda2`.
|
||||
|
||||
- `modprobe dm-crypt` - load kernelmodule for encryption
|
||||
- `cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/sda2` - encryption
|
||||
- confirm with `YES`
|
||||
- Now you can assign a passphrase.
|
||||
The passphrase has to be entered at boot to decrypt the system.
|
||||
Recovering of this passphrase is **not** possible.
|
||||
|
||||
## 4. Setup LVM
|
||||
|
||||
- `cryptsetup luksOpen /dev/sda2 lvm` - Opening encrypted partition and mapping it to `/dev/mapper/lvm`
|
||||
- `pvcreate /dev/mapper/lvm` - Create a LVM physical volume
|
||||
- `vgcreate main /dev/mapper/lvm` - Create LVM Volume Group
|
||||
- `lvcreate -L 16G -n swap main` - Create Swap in LVM (recommended: swap size is equal to ram size)
|
||||
- `lvcreate -l 100%FREE -n root main` - Create LVM Logical Volume for /
|
||||
|
||||
## 5. Create filesystems and mounting them temporarily
|
||||
|
||||
We have to find out which partition is our boot-partition.
|
||||
Using `blkid | grep /dev/sda` once again, we can identify it by looking for the `EFI system partition` label.
|
||||
The guide assumes this partition to be at `/dev/sda1`.
|
||||
|
||||
- `mkfs.fat -F 32 -n UEFI /dev/sda1` - Assign filesystem of EFI partition
|
||||
- `mkfs.ext4 -L root /dev/mapper/main-root` - Assign filesystem of root partition
|
||||
- `mkswap /dev/mapper/main-swap` - Assign swap filesystem
|
||||
|
||||
Now the created filesystems will be mounted for the installation.
|
||||
|
||||
- `mount /dev/mapper/main-root /mnt` - Mounting root partition
|
||||
- `mkdir /mnt/boot`
|
||||
- `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
|
||||
|
||||
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
|
||||
- `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
|
||||
|
||||
- `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)
|
||||
- `vim /etc/locale.gen` - Assigning system language by uncomment the lines depending on your needs.
|
||||
In this example:
|
||||
```
|
||||
en_US.UTF-8 UTF-8
|
||||
```
|
||||
- `locale-gen` - Generate languages
|
||||
- `echo KEYMAP=de-latin1-nodeadkeys > /etc/vconsole.conf` - set the keymap
|
||||
- `tzselect` - Set region
|
||||
|
||||
# 9. Configure and create kernel-image
|
||||
|
||||
- `vim /etc/mkinitcpio.conf`
|
||||
- Search the line `MODULES=()` and change it to:
|
||||
`MODULES=(ext4)`
|
||||
- Search the line `HOOKS=([...])` and change it to:
|
||||
`HOOKS=(base udev autodetect modconf block keyboard keymap encrypt lvm2 filesystems fsck shutdown)`
|
||||
- `mkinitcpio -p linux` - generate Kernel-Image
|
||||
|
||||
## 10. 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
|
||||
- `vim /boot/loader/entries/arch.conf` - Create configuration
|
||||
- Change the config to look similar to this:
|
||||
```
|
||||
title Arch Linux
|
||||
linux /vmlinuz-linux
|
||||
initrd /initramfs-linux.img
|
||||
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
|
||||
- `vim /boot/loader/loader.conf` - Create loader configuration
|
||||
- Insert the following text
|
||||
```
|
||||
timeout 0
|
||||
default arch
|
||||
```
|
||||
## 11. Finishing base installation
|
||||
|
||||
- `passwd` - set password for the root account
|
||||
- `exit` - exit the installed system
|
||||
- `umount /mnt/{boot,}` - unmount all partitions
|
||||
- `shutdown now` - shutdown device
|
||||
- Now remove the Arch boot-stick
|
||||
- Start the device again
|
||||
|
||||
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.
|
||||
Now you can follow my larbs installation script (`curl -o larbs.sh https://raw.githubusercontent.com/tiyn/larbs/master/larbs.sh` or go on to other guides.
|
||||
|
||||
## Changelog and versions
|
||||
> 03.04.2020 - Version 1.1en (based on 03.04.2020 - Version 1.1)
|
||||
>
|
||||
> 05.04.2020 - Version 2.1en (based on 05.04.2020 - Version 2.1)
|
||||
>
|
||||
> 28.05.2020 - Version 3.0en
|
15
wiki/arch-linux/intel-graphics.md
Normal file
15
wiki/arch-linux/intel-graphics.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# Intel Graphics
|
||||
|
||||
## Screen Tearing
|
||||
|
||||
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:
|
||||
|
||||
```
|
||||
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).
|
37
wiki/bare-git.md
Normal file
37
wiki/bare-git.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# Bare Git
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [jkarlos](https://hub.docker.com/r/jkarlos/git-server-docker).
|
||||
|
||||
##### Volumes
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | ----------------- | --------------------------- |
|
||||
| git-server-repos | /git-server/repos | storage for git repos |
|
||||
| git-server-keys | /git-server/keys | storage for user ssh keys |
|
||||
|
||||
##### Ports
|
||||
Set the following ports with the -p tag.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | ------------------------------------- |
|
||||
| 22 | 2222 | TCP | ssh port for accessing the git server |
|
||||
|
||||
##### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop git-server
|
||||
docker rm git-server
|
||||
docker pull jkarlos/git-server-docker:latest
|
||||
docker run --name git-server \
|
||||
--restart unless-stopped \
|
||||
-p 2222:22 \
|
||||
-v git-server_repos:/git-server/repos \
|
||||
-v git-server_keys:/git-server/keys \
|
||||
-d jkarlos/git-server-docker
|
||||
```
|
50
wiki/bind.md
Normal file
50
wiki/bind.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# Bind
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [ventz](https://hub.docker.com/r/ventz/bind).
|
||||
|
||||
#### Volumes
|
||||
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | --------------- | ----------------------- |
|
||||
| bind\_cache | /var/cache/bind | cache for dns |
|
||||
| bind\_etc | /etc/bind | configuration for dns |
|
||||
|
||||
#### Ports
|
||||
|
||||
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 |
|
||||
|
||||
#### Additional
|
||||
|
||||
There are some special variables to set.
|
||||
|
||||
| Flag | Usage |
|
||||
| ----- | ------------------------------------------------------- |
|
||||
| --dns | set two of these flags for specific dns forward servers |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop bind
|
||||
docker rm bind
|
||||
docker pull ventz/bind:latest
|
||||
docker run --name bind \
|
||||
--restart unless-stopped \
|
||||
--dns=1.1.1.1 --dns=8.8.8.8 \
|
||||
-p 53:53/udp \
|
||||
-p 53:53 \
|
||||
-v bind_cache:/var/cache/bind \
|
||||
-v bind_etc:/etc/bind \
|
||||
-d ventz/bind:latest
|
||||
```
|
44
wiki/cups.md
Normal file
44
wiki/cups.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# Cups
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [olbat](https://hub.docker.com/r/olbat/cupsd).
|
||||
|
||||
#### Volumes
|
||||
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | --------------- | ------------------------------- |
|
||||
| cups | /etc/cups | configuration for printers, etc |
|
||||
| /var/run/dbus | /var/run/dbus | connection to host dbus |
|
||||
|
||||
#### Ports
|
||||
|
||||
Set the following ports with the -p tag.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | ------------------ |
|
||||
| 631 | 631 | TCP | cups server webui |
|
||||
|
||||
#### Additional
|
||||
|
||||
The default username is `print`, the default password is `print`.
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop cups
|
||||
docker rm cups
|
||||
docker pull olbat/cupsd:latest
|
||||
docker run --name cups \
|
||||
--restart unless-stopped \
|
||||
--net=host \
|
||||
-p 631:631 \
|
||||
-v /var/run/dbus:/var/run/dbus \
|
||||
-v cups:/etc/cups/ \
|
||||
-d olbat/cupsd:latest
|
||||
```
|
19
wiki/disk-management.md
Normal file
19
wiki/disk-management.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Disk Management
|
||||
|
||||
## Grow non-LVM ext4 partition
|
||||
|
||||
ATTENTION: Please note that the partition to enlarge has to be the last one with the free space after it.
|
||||
|
||||
SSH into the VM.
|
||||
- run `lsblk` check if the disk size has changed
|
||||
- if not `reboot` the virtual machine
|
||||
|
||||
In the following it is assumed that the partition to enlarge is `/dev/sda2`
|
||||
- change the size of the partition with `parted /dev/sda`
|
||||
- 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
|
||||
- `quit` parted
|
||||
|
||||
Now you need to resize the filesystem with `resize2fs /dev/sda2`.
|
||||
|
||||
|
10
wiki/docker.md
Normal file
10
wiki/docker.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# Docker
|
||||
|
||||
Docker is a virtualization software that deploys docker containers.
|
||||
Due to easy handling and reproducable environments it is a useful tool.
|
||||
|
||||
## Enable Nvidia GPUs
|
||||
|
||||
To use Nvidia GPUs with docker you need to install the nvidia-cuda-toolkit.
|
||||
There is a [guide on marmelab](https://marmelab.com/blog/2018/03/21/using-nvidia-gpu-within-docker-container.html) that focusses on that topic.
|
||||
|
44
wiki/dovecot.md
Normal file
44
wiki/dovecot.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# Dovecot
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [tvial](https://hub.docker.com/r/tvial/docker-mailserver).
|
||||
It contains dovecot, antispam, antivirus, ssl, etc.
|
||||
|
||||
#### Configuration
|
||||
|
||||
The configuration is done automatically using scripts by tvial.
|
||||
First you need to download the essential setup files.
|
||||
|
||||
```
|
||||
curl -o setup.sh https://raw.githubusercontent.com/tomav/docker-mailserver/master/setup.sh; chmod a+x ./setup.sh
|
||||
|
||||
curl -o docker-compose.yml https://raw.githubusercontent.com/tomav/docker-mailserver/master/docker-compose.yml.dist
|
||||
|
||||
curl -o .env https://raw.githubusercontent.com/tomav/docker-mailserver/master/.env.dist
|
||||
|
||||
curl -o env-mailserver https://raw.githubusercontent.com/tomav/docker-mailserver/master/env-mailserver.dist
|
||||
```
|
||||
|
||||
After that you need to edit the `.env` and the `env-mailserver` files to configure the mailserver.
|
||||
|
||||
You then need to start the container with the `rebuild.sh` and add email accounts using the following command.
|
||||
|
||||
`./setup.sh email add <user@domain> (<password>)`
|
||||
|
||||
And finally generate the DCIM keys and rebuild once again.
|
||||
|
||||
`./setup.sh config dkim`
|
||||
|
||||
Afterwards you're ready to go by once again running the `rebuild.sh` file.
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker-compose down
|
||||
docker pull tvial/docker-mailserver:latest
|
||||
docker-compose up -d
|
||||
```
|
23
wiki/file-synchronization.md
Normal file
23
wiki/file-synchronization.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# File synchronization
|
||||
|
||||
Tools to synchronize data and so called clouds are pretty handy to use files on different machines.
|
||||
There are tools with a main server and there are tools that don't need them.
|
||||
|
||||
## Synchronizing with main server
|
||||
|
||||
The biggest advantage of having a main server contain your data is that - as long as the server is online -
|
||||
you can sync as you please.
|
||||
You do not need to care which machines are online to get all the files you need.
|
||||
If you are talking about a cloud, this is this.
|
||||
|
||||
- [Owncloud](setups/owncloud.md) is a self-hostable, open-source file hosting service that can be dockerized.
|
||||
- [Onedrive](setups/onedrive.md) is a very popular piece of software despite being proprietary.
|
||||
You can not self-host it, but you can run a dockerized client.
|
||||
|
||||
## Synchronizing without main server
|
||||
|
||||
If you can bare the difficulties ascending due to the mentioned above problems, this is probably a more
|
||||
safe way to "host" files.
|
||||
There is no single server as point of attack with all your data.
|
||||
|
||||
- [Syncthing](setups/syncthing.md) is a free and open-source peer-to-peer file synchronization tool that can be dockerized.
|
35
wiki/flask.md
Normal file
35
wiki/flask.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# Flask
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The original container and documentation are made by [tiynger](https://hub.docker.com/r/tiynger/pythonflask).
|
||||
|
||||
#### Volumes
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ----------- | --------------- | ------------------------------- |
|
||||
| app | /flask | directory for flask application |
|
||||
|
||||
#### Ports
|
||||
Set the following volumes with the -p tag.
|
||||
|
||||
| Container-Port | Recommed outside port | Protocol | Description |
|
||||
| -------------- | --------------------- | -------- | ----------- |
|
||||
| 5000 | 80 | TCP | HTTP port |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop python-flask
|
||||
docker rm python-flask
|
||||
docker pull tiynger/pythonflask:latest
|
||||
docker run --name python-flask \
|
||||
--restart unless-stopped \
|
||||
-p "5000:5000" \
|
||||
-v python-flask:/flask \
|
||||
-d tiynger/pythonflask:latest
|
||||
```
|
44
wiki/foldingathome.md
Normal file
44
wiki/foldingathome.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# Folding-at-home
|
||||
|
||||
## Setup
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [johnktims](https://hub.docker.com/r/johnktims/folding-at-home).
|
||||
|
||||
#### Ports
|
||||
Set the following ports with the -p tag.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | ----------- |
|
||||
| 7396 | 7396 | TCP | WebUI |
|
||||
|
||||
#### Additional
|
||||
There are some special variables to set.
|
||||
|
||||
| Flag | Usage |
|
||||
| ------- | -------------------------------------- |
|
||||
| --user | set your username |
|
||||
| --power | set the default power to fold at home |
|
||||
| --team | set your teamid to contribute points |
|
||||
|
||||
##### GPU
|
||||
To add a nvidia gpu add the `nvidia-docker-toolkit` or the recommended software for your gpu.
|
||||
After that you can set you gpu to fold aswell by adding `--gpus=all`.
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop folding-at-home
|
||||
docker rm folding-at-home
|
||||
docker pull johnktims/folding-at-home
|
||||
docker run --name folding-at-home \
|
||||
--restart unless-stopped \
|
||||
-it \
|
||||
-p 7396:7396 \
|
||||
-d johnktims/folding-at-home \
|
||||
--user=default \
|
||||
--power=full \
|
||||
--team=000000
|
||||
```
|
27
wiki/git.md
Normal file
27
wiki/git.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# Git
|
||||
|
||||
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
|
||||
|
||||
The Client is pretty simple to understand.
|
||||
With only a handfull of commands you should be able to get your versioning going.
|
||||
|
||||
- Arch based systems: `pacman -S git`
|
||||
|
||||
There is also an interactive [fixup guide by Seth Robertson](https://sethrobertson.github.io/GitFixUm/fixup.html).
|
||||
|
||||
## 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.
|
||||
|
||||
- [Gitea](applications/gitea.md) is an open-source and selfhosted and can be dockerized.
|
||||
|
||||
## Server without graphical interface
|
||||
|
||||
If you don't need a bloated web-interface a more basic approach is more than enough.
|
||||
|
||||
- [git-server-docker](setups/bare-git.md) is a pretty basic docker-container for git.
|
||||
|
138
wiki/gitea.md
Normal file
138
wiki/gitea.md
Normal file
@@ -0,0 +1,138 @@
|
||||
# Gitea
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
#### Gitea
|
||||
|
||||
##### Environment-variables
|
||||
Set the following environment-variables in the `environment:` section of the docker-compose file.
|
||||
|
||||
| Name | Usage | Default |
|
||||
| ------------------- | ------------------------------ | ------- |
|
||||
| USER\_UID | User userid to run gitea | |
|
||||
| USER\_GID | User groupid to run gitea | |
|
||||
| DB\_TYPE | Specify database type | |
|
||||
| DB\_HOST | Specify database host and port | |
|
||||
| DB\_NAME | Specify Name of the database | |
|
||||
| DB\_USER | Username for the database | |
|
||||
| DB\_PASSWD | Password for the database | |
|
||||
|
||||
|
||||
##### Volumes
|
||||
Set the following volumes in the `volumes:` section of the docker-compose file.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | ---------------------- | ------------------------------ |
|
||||
| data | /data | storage for data of git server |
|
||||
| /etc/timezone | /etc/timezone:ro | link timezone |
|
||||
| /etc/localtime | /etc/localtime | link localtime |
|
||||
|
||||
##### Ports
|
||||
Set the following ports in the `ports:` section.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | ---------------------- |
|
||||
| 3000 | 3000 | TCP | WebUI |
|
||||
| 22 | 222 | TCP | ssh port of git server |
|
||||
|
||||
##### Networks
|
||||
Set the following networks in the `networks:` section of the docker-compose file.
|
||||
|
||||
| Name | Usage |
|
||||
| ----- | --------------------- |
|
||||
| gitea | connect db with gitea |
|
||||
|
||||
##### Dependencies
|
||||
Set the following dependencies in the `depends_on:` section of the docker-compose file.
|
||||
|
||||
| Name | Usage |
|
||||
| ----- | --------------------- |
|
||||
| db | Ensure db is running |
|
||||
|
||||
#### MySql
|
||||
|
||||
##### Environment-variables
|
||||
Set the following environment-variables in the `environment:` section of the docker-compose file.
|
||||
|
||||
| Name | Usage | Default |
|
||||
| ------------------- | ----------------------------- | ------- |
|
||||
| MYSQL\_ROOT\_PASSWORD | set the mysql admin password | |
|
||||
| MYSQL\_USER | set the mysql username | |
|
||||
| MYSQL\_PASSWORD | set the mysql user password | |
|
||||
| MYSQL\_Database | specify mysql database to use | |
|
||||
|
||||
##### Volumes
|
||||
Set the following volumes in the `volumes:` section of the docker-compose file.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | ---------------------- | ---------------------------- |
|
||||
| mysql | /var/lib/mysql | storage for owncloud data |
|
||||
|
||||
##### Networks
|
||||
Set the following networks in the `networks:` section of the docker-compose file.
|
||||
|
||||
| Name | Usage |
|
||||
| ----- | --------------------- |
|
||||
| gitea | connect db with gitea |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker-compose down
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
#### Docker-Compose.yml
|
||||
|
||||
```
|
||||
version: "2"
|
||||
|
||||
networks:
|
||||
gitea:
|
||||
external: false
|
||||
|
||||
services:
|
||||
server:
|
||||
image: gitea/gitea:latest
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
- USER_GID=1000
|
||||
- DB_TYPE=mysql
|
||||
- DB_HOST=db:3306
|
||||
- DB_NAME=gitea
|
||||
- DB_USER=gitea
|
||||
- DB_PASSWD=gitea
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- gitea
|
||||
volumes:
|
||||
- data:/data
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
ports:
|
||||
- "3000:3000"
|
||||
- "222:22"
|
||||
depends_on:
|
||||
- db
|
||||
db:
|
||||
image: mysql:5.7
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=gitea
|
||||
- MYSQL_USER=gitea
|
||||
- MYSQL_PASSWORD=gitea
|
||||
- MYSQL_DATABASE=gitea
|
||||
networks:
|
||||
- gitea
|
||||
volumes:
|
||||
- mysql:/var/lib/mysql
|
||||
|
||||
volumes:
|
||||
data:
|
||||
driver: local
|
||||
mysql:
|
||||
driver: local
|
||||
```
|
35
wiki/gopher-proxy.md
Normal file
35
wiki/gopher-proxy.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# Gopherproxy
|
||||
|
||||
## Setup Proxy
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [prologic](https://hub.docker.com/r/prologic/gopherproxy).
|
||||
|
||||
#### Ports
|
||||
Set the following ports with the -p tag.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | ---------------------------------------- |
|
||||
| 8000 | 8000 | TCP | port to proxy the gopher site as http to |
|
||||
|
||||
#### Additional
|
||||
There are some special variables to set.
|
||||
|
||||
| Flag | Usage |
|
||||
| ---- | ------------------------------------------------------------- |
|
||||
| -uri | define the gopher site to proxy (just 'domain.tld' is enough) |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop gopheroverhttp
|
||||
docker rm gopheroverhttp
|
||||
docker pull prologic/gopherproxy
|
||||
docker run --name gopheroverhttp \
|
||||
--restart unless-stopped \
|
||||
-p 8000:8000 \
|
||||
-d prologic/gopherproxy \
|
||||
-uri 'domain.tld'
|
||||
```
|
43
wiki/gopher-server.md
Normal file
43
wiki/gopher-server.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# Gopher Server
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [tiynger](https://hub.docker.com/r/tiynger/gopherserver).
|
||||
|
||||
#### Environment-variables
|
||||
Set the following variables with the -e tag.
|
||||
|
||||
| Name | Usage | Default |
|
||||
| ------------- | --------------------------------------------------- | --------- |
|
||||
| SERVER\_NAME | set this to your IP/Domain (no "gopher://" needed!) | localhost |
|
||||
|
||||
#### Volumes
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| -------------------- | --------------- | ----------------------------- |
|
||||
| gopherwebdir | /var/gopher | directory for the gopher page |
|
||||
|
||||
#### Ports
|
||||
Set the following ports with the -p tag.
|
||||
|
||||
| Container port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | ---------- | ---------------------------- |
|
||||
| 70 | 70 | TCP | port for the gopher-protocol |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop gopherserver
|
||||
docker rm gopherserver
|
||||
docker pull tiynger/gopherserver
|
||||
docker run --name gopherserver \
|
||||
--restart unless-stopped \
|
||||
-p 70:70 \
|
||||
-v gopherserver:/var/gopher \
|
||||
-e SERVER_NAME='domain.tld' \
|
||||
-d tiynger/gopherserver
|
||||
```
|
43
wiki/hastebin.md
Normal file
43
wiki/hastebin.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# Hastebin
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [rlister](https://hub.docker.com/r/rlister/hastebin).
|
||||
|
||||
#### Environment-variables
|
||||
Set the following variables with the -e tag.
|
||||
|
||||
| Name | Usage | Default |
|
||||
| ------------ | ----------------------- | ------- |
|
||||
| STORAGE_TYPE | Type to store the datas | file |
|
||||
|
||||
#### Volumes
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | --------------- | -------------------------- |
|
||||
| hastebin | /app/data | storage directory for data |
|
||||
|
||||
#### Ports
|
||||
Set the following ports with the -p tag.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | ----------- |
|
||||
| 7777 | 7777 | TCP | WebUI |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop hastebin
|
||||
docker rm hastebin
|
||||
docker pull rlister/hastebin:latest
|
||||
docker run --name hastebin \
|
||||
--restart unless-stopped \
|
||||
-p 7777:7777 \
|
||||
-v hastebin:/app/data \
|
||||
-e STORAGE_TYPE=file \
|
||||
-d rlister/hastebin:latest
|
||||
```
|
70
wiki/homer.md
Normal file
70
wiki/homer.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# Homer
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [b4bz](https://hub.docker.com/r/b4bz/homer).
|
||||
|
||||
#### Volumes
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ------------------------ | --------------- | ---------------------------------- |
|
||||
| /current/dir/config.yml | /www/config.yml | configuration file for static page |
|
||||
| homer | /www/assets | storage for icons, etc |
|
||||
|
||||
#### Ports
|
||||
Set the following ports with the -p tag.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | ----------- |
|
||||
| 8080 | 8080 | TCP | WebUI |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop homer
|
||||
docker rm homer
|
||||
docker pull b4bz/homer:latest
|
||||
docker run --name homer \
|
||||
--restart unless-stopped \
|
||||
-p 8080:8080 \
|
||||
-v /root/docker/homer/config.yml:/www/config.yml \
|
||||
-v homer:/www/assets \
|
||||
-d b4bz/homer:latest
|
||||
```
|
||||
|
||||
#### Configuration
|
||||
|
||||
This is a sample config.yml:
|
||||
|
||||
```
|
||||
title: "tmp"
|
||||
subtitle: "tmp"
|
||||
logo: "tmp"
|
||||
footer: ""
|
||||
|
||||
message:
|
||||
style: ""
|
||||
title: "tmp"
|
||||
content: "tmp"
|
||||
|
||||
links:
|
||||
- name: "tmp"
|
||||
icon: "tmp"
|
||||
url: "tmp"
|
||||
target: '_blank'
|
||||
|
||||
services:
|
||||
- name: "tmp"
|
||||
icon: "tmp"
|
||||
items:
|
||||
- name: "tmp"
|
||||
logo: "tmp"
|
||||
subtitle: "tmp"
|
||||
tag: "tmp"
|
||||
url: "tmp"
|
||||
target: '_blank'
|
||||
```
|
79
wiki/jellyfin.md
Normal file
79
wiki/jellyfin.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# Jellyfin
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [linuxserver](https://hub.docker.com/linuxserver/jellyfin).
|
||||
This docker-rebuild is made up by a `docker-compose.yml` file.
|
||||
|
||||
#### Environment-variables
|
||||
Set the following environment-variables in the `environment:` section of the docker-compose file.
|
||||
|
||||
| Name | Usage | Default |
|
||||
| ------------------- | ---------------------------- | ------- |
|
||||
| PUID | Userid to run the container | |
|
||||
| PGID | Groupid to run the container | |
|
||||
| TZ | specify the timezone | |
|
||||
|
||||
#### Volumes
|
||||
Set the following volumes in the `volumes:` section of the docker-compose file.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | ---------------------- | ------------------------------------ |
|
||||
| config | /config | storage for config files of jellyfin |
|
||||
| media\_movies | /data/movies | storage for movies |
|
||||
| media\_tvshows | /data/tvshows | storage for tvshows |
|
||||
| transcode | /transcode | tmp storage to transcode |
|
||||
|
||||
Because it is useful to have the possibility to use the `media_movies` and `media_tvshows` in multiple containers,
|
||||
it is recommended to use them as external volumes (volumes section: `external: true` instead of `driver: local`).
|
||||
To use the rebuild the volumes have to exist before creating the container (`docker volume create media_movies` and tvshows accordingly).
|
||||
|
||||
#### Ports
|
||||
Set the following ports in the `ports:` section.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | ----------- |
|
||||
| 8096 | 8096 | TCP | WebUI |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker-compose down
|
||||
docker pull linuxserver/jellyfin:latest
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
#### Docker-Compose.yml
|
||||
|
||||
```
|
||||
version: "2"
|
||||
services:
|
||||
jellyfin:
|
||||
image: linuxserver/jellyfin
|
||||
container_name: jellyfin
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Europe/Berlin
|
||||
volumes:
|
||||
- config:/config
|
||||
- media_movies:/data/movies
|
||||
- media_tvshows:/data/tvshows
|
||||
- transcode:/transcode
|
||||
ports:
|
||||
- 8096:8096
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
config:
|
||||
driver: local
|
||||
transcode:
|
||||
driver: local
|
||||
media_movies:
|
||||
external: true
|
||||
media_tvshows:
|
||||
external: true
|
||||
```
|
51
wiki/khal.md
Normal file
51
wiki/khal.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# Khal
|
||||
|
||||
`khal` is a calendar you can use in your terminal.
|
||||
To sync calendars you'll need `vdirsyncer` aswell.
|
||||
|
||||
## Setup
|
||||
|
||||
### Arch-Linux
|
||||
|
||||
- `pacman -S khal vdirsyncer` - Install needed packages
|
||||
|
||||
### Configuration
|
||||
|
||||
- To configure vdirsyncer edit a file in `~/.config/vdirsyncer/config`.
|
||||
|
||||
```
|
||||
[general]
|
||||
status_path = "~/.cache/vdirsyncer/status"
|
||||
|
||||
#calendar
|
||||
[pair private_calendar]
|
||||
a = "private_calendar_local"
|
||||
b = "private_calendar_remote"
|
||||
collections = ["from a", "from b"]
|
||||
metadata = ["color"]
|
||||
|
||||
[storage private_calendar_local]
|
||||
type = "filesystem"
|
||||
path = "~/.local/share/pim/calendars/private_calendar"
|
||||
fileext = ".ics"
|
||||
|
||||
[storage private_calendar_remote]
|
||||
type = "caldav"
|
||||
url = "https://<url>"
|
||||
auth = "basic"
|
||||
username = "<username>"
|
||||
password = "<password>"
|
||||
|
||||
```
|
||||
|
||||
- `vdirsyncer discober && vdirsyncer metasync` - After that initialize vdirsyncer.
|
||||
- `vdirsyncer sync` - Synchronize your data (put it in a crontab to run periodically)
|
||||
- Edit the `~/.config/khal/config`
|
||||
- Insert the following lines
|
||||
```
|
||||
[calendars]
|
||||
|
||||
[[calendars]]
|
||||
path = ~/.local/share/pim/calendars/*/*
|
||||
type = discover
|
||||
```
|
47
wiki/khard.md
Normal file
47
wiki/khard.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# Khard
|
||||
|
||||
`khard` is a adressbook that runs in your terminal.
|
||||
To sync the data using CardDAV you'll need `vdirsyncer` aswell.
|
||||
|
||||
## Setup
|
||||
|
||||
### Arch Linux
|
||||
|
||||
- `pacman -S khard vdirsyncer` - Install needed programs
|
||||
|
||||
### Configuration
|
||||
|
||||
- Edit the `~/.config/vdirsyncer/config`.
|
||||
- Insert the following lines:
|
||||
```
|
||||
[general]
|
||||
status_path = "~/.cache/vdirsyncer/status"
|
||||
|
||||
[pair private_contacts]
|
||||
a = "private_contacts_local"
|
||||
b = "private_contacts_remote"
|
||||
collections = ["from a", "from b"]
|
||||
|
||||
[storage private_contacts_local]
|
||||
type = "filesystem"
|
||||
path = "~/.local/share/pim/contacts"
|
||||
fileext = ".vcf"
|
||||
|
||||
[storage private_contacts_remote]
|
||||
type = "carddav"
|
||||
url = "https://<url>"
|
||||
username = "<username>"
|
||||
password = "<password>"
|
||||
auth = "basic"
|
||||
```
|
||||
- `vdirsyncer discover && vdirsyncer metasync` - Initialize vdirsyncer
|
||||
- `vdirsyncer sync` - Synchronize the addressbook (put this into a crontab to update periodically)
|
||||
- Add and configure a config for khard
|
||||
- `mkdir ~/.config/khard` - add a directory for the config
|
||||
- `cp /usr/share/doc/khard/khard.conf.example ~/.config/khard/khard.conf` - Copy the example configuration
|
||||
- Adjust `khard.conf` to your needs
|
||||
|
||||
#### Mutt
|
||||
|
||||
It is possible to use your khard-addressbook in mutt.
|
||||
To see how it works check out the [Mutt](/#application/neomutt.md).
|
18
wiki/mail.md
Normal file
18
wiki/mail.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# 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.
|
||||
|
||||
## Server
|
||||
|
||||
If you want to host your own mail-server there are solutions with and without interfaces.
|
||||
|
||||
- [Dovecot](setups/dovecot.md) is a simple mail server that can be dockerized and has no interface.
|
||||
|
||||
## Client
|
||||
|
||||
If you don't have a built-in web interface for your mail-server you need some software to access your mails.
|
||||
And even if you have it can be useful to keep your mails synced locally on your pc.
|
||||
|
||||
- [Neomutt](setups/neomutt.md) is a terminal-based mail client, that has a simple interface.
|
79
wiki/mordhau.md
Normal file
79
wiki/mordhau.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# Mordhau
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [tetricz](https://hub.docker.com/r/tetricz/mordhau-server).
|
||||
|
||||
#### Environment-variables
|
||||
Set the following variables with the -e tag.
|
||||
|
||||
| Name | Usage | Default |
|
||||
| ---- | ---------------------------------------------------- | ------- |
|
||||
| QUERYPORT | port for query mordhau | |
|
||||
| GAME\_PORT | port for mordhau game | |
|
||||
| BEACONPORT | port for mordhau beacon | |
|
||||
| STEAM\_CONNECT | set to tell if you want to connect to steam | |
|
||||
| STEAMID64 | set the serve owner steamid | |
|
||||
| UID | users userid to run | |
|
||||
| GID | users groupid to run | |
|
||||
| GAME\_MODE | specify mordhau game mode | |
|
||||
| PLAYER\_COUNT | set a playercount limit | |
|
||||
| SERVER\_NAME | set a servername | |
|
||||
| SERVER\_PASSWORD | set a password | |
|
||||
| ADMIN\_PASSWORD | set an admin password | |
|
||||
|
||||
#### Volumes
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | -------------------- | ---------------------------------------- |
|
||||
| mordhau | /serverdata/mordhau | storage for mordhau server relevant data |
|
||||
| mordhau\_steamcmd | /serverdata/steamcmd | storage for steam related data |
|
||||
|
||||
|
||||
#### Ports
|
||||
Set the following ports with the -p tag.
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | ----------------- |
|
||||
| 7777 | 7777 | UDP | mordhau internal |
|
||||
| 15000 | 15000 | UDP | mordhau internal |
|
||||
| 27015 | 27015 | UDP | mordhau internal |
|
||||
|
||||
#### Start
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
|
||||
docker pull tetricz/mordhau-server
|
||||
docker run --name=mordhau \
|
||||
--restart=unless-stopped \
|
||||
-p 27015:27015/udp \
|
||||
-p 7777:7777/udp \
|
||||
-p 15000:15000/udp \
|
||||
-v mordhau:/serverdata/mordhau \
|
||||
-v mordhau_steamcmd:/serverdata/steamcmd \
|
||||
-e QUERYPORT=27015 \
|
||||
-e GAME_PORT=7777 \
|
||||
-e BEACONPORT=15000 \
|
||||
-e STEAM_CONNECT=True \
|
||||
-e STEAMID64="tmp" \
|
||||
-e UID=99 \
|
||||
-e GID=100 \
|
||||
-e GAME_MODE=SKM \
|
||||
-e PLAYER_COUNT="16" \
|
||||
-e SERVER_NAME="tmp" \
|
||||
-e SERVER_PASSWORD="tmp" \
|
||||
-e ADMIN_PASSWORD="tmp" \
|
||||
tetricz/mordhau-server
|
||||
```
|
||||
|
||||
#### Stop
|
||||
|
||||
```
|
||||
#/bin/sh
|
||||
|
||||
docker stop mordhau
|
||||
docker rm mordhau
|
||||
```
|
12
wiki/music.md
Normal file
12
wiki/music.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# 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](setups/airsonic.md) is a free fork of Subsonic, can be dockerized and has a web-interface.
|
45
wiki/neomutt.md
Normal file
45
wiki/neomutt.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# NeoMutt
|
||||
|
||||
Neomutt is a mail program that runs in your terminal.
|
||||
It can be easily configured using mutt-wizard.
|
||||
|
||||
## Setup
|
||||
|
||||
### Arch-Linux
|
||||
|
||||
- `yay -S neomutt isync msmtp pass` - Install all dependecies
|
||||
- Install mutt-wizard from [github](https://github.com/LukeSmithxyz/mutt-wizard) (AUR is not up to date)
|
||||
|
||||
#### Using mutt-wizard
|
||||
|
||||
After installation you're able to use the following commands, that will guide you through configuration.
|
||||
|
||||
`mw add` to add mailaccounts
|
||||
|
||||
`mw ls` to list existing ones
|
||||
|
||||
`mw pass` to revise passwords
|
||||
|
||||
`mw delete` to delete accounts
|
||||
|
||||
`mw purge` to delete all accounts and settings
|
||||
|
||||
`mw cron` toggle a cronjob to sync mail
|
||||
|
||||
## Usage
|
||||
|
||||
## Khard in NeoMutt
|
||||
|
||||
- Edit `~/.config/mutt/muttrc`
|
||||
- Append the following lines.
|
||||
```
|
||||
set query_command= "khard email --parsable --search-in-source-files %s"
|
||||
bind editor <Tab> complete-query
|
||||
bind editor ^T complete
|
||||
macro index,pager A \
|
||||
"<pipe message>khard add-email<return>" \
|
||||
"add the sender email address to khard"
|
||||
```
|
||||
- You should now be able to tab-complete email-addresses in neomutt
|
||||
- You can also add new ones by pressing A
|
||||
|
31
wiki/nginx.md
Normal file
31
wiki/nginx.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Nginx
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The easiest way to configure and run nginx is [ncdt](https://github.com/nasourso/nginx-certbot-docker-tui) by nasourso.
|
||||
So 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.
|
||||
|
||||
#### Block remote port access
|
||||
|
||||
If you configured a reverse proxy to a port chances are you don't want the port to be accessed outside of the proxy.
|
||||
Especially if you set up a authentication over nginx the open port will avoid the authentication.
|
||||
This can be changed at the forwarded docker-service by replacing for example `-p 7000:7000` with `-p 172.17.0.1:7000:7000`.
|
||||
This forces the docker container to only expose the port in the docker bridge network, effectively banning remote access.
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker-compose down
|
||||
docker pull nginx:latest
|
||||
docker pull certbot/certbot:latest
|
||||
docker-compose up -d
|
||||
```
|
12
wiki/office-software.md
Normal file
12
wiki/office-software.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# Office software
|
||||
|
||||
To get work done many people prefer office-like software.
|
||||
There are numerous possibilities for this.
|
||||
The software can vary in coverage and interface type.
|
||||
|
||||
## Table calculation
|
||||
|
||||
One of the most used file modification is done in csv or similar datatypes.
|
||||
|
||||
- [sc-im](setups/sc-im.md) is a simple table calculation program with a terminal based interface.
|
||||
|
39
wiki/onedrive.md
Normal file
39
wiki/onedrive.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# Onedrive
|
||||
|
||||
## Setup Mirror
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [oznu](https://hub.docker.com/r/oznu/onedrive).
|
||||
|
||||
#### Environment-variables
|
||||
Set the following variables with the -e tag.
|
||||
|
||||
| Name | Usage | Default |
|
||||
| ---- | -------- | ------- |
|
||||
| PUID | UserID | |
|
||||
| PGID | GroupID | |
|
||||
|
||||
#### Volumes
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | --------------- | ----------------------------------------------- |
|
||||
| onedrive\_config | /config | configuration storage for the server connection |
|
||||
| onedrive\_doc | /documents | storage for downloaded documents |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop onedrive
|
||||
docker rm onedrive
|
||||
docker pull oznu/onedrive:latest
|
||||
docker run --name onedrive \
|
||||
--restart unless-stopped \
|
||||
-v onedrive_config:/config \
|
||||
-v onedrive_doc:/documents \
|
||||
-e PUID=$(id -u) \
|
||||
-e PGID=$(id -g) \
|
||||
-d oznu/onedrive:latest
|
||||
```
|
43
wiki/openvpn.md
Normal file
43
wiki/openvpn.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# OpenVPN
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [kylemanna](https://hub.docker.com/r/kylemanna/openvpn).
|
||||
|
||||
#### Volumes
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | --------------- | ------------------------ |
|
||||
| ovpn | /etc/openvpn | storage for openvpn data |
|
||||
|
||||
#### Ports
|
||||
Set the following ports with the -p tag.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | ------------ |
|
||||
| 1194 | 1194 | UDP | openvpn port |
|
||||
|
||||
#### Additional
|
||||
There are some special variables to set.
|
||||
|
||||
| Flag | Usage |
|
||||
| --------- | ---------------------- |
|
||||
| --cap-add | add linux capabilities |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop openvpn
|
||||
docker rm openvpn
|
||||
docker pull kylemanna/openvpn
|
||||
docker run --name openvpn \
|
||||
--restart unless-stopped \
|
||||
--cap-add=NET_ADMIN \
|
||||
-p 1194:1194/udp \
|
||||
-v ovpn:/etc/openvpn \
|
||||
-d kylemanna/openvpn
|
||||
```
|
123
wiki/owncloud.md
Normal file
123
wiki/owncloud.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# Owncloud
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
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.
|
||||
|
||||
#### Owncloud
|
||||
|
||||
##### Volumes
|
||||
Set the following volumes in the `volumes:` section of the docker-compose file.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | ---------------------- | ---------------------------- |
|
||||
| owncloud | /var/www/html | storage for owncloud plugins |
|
||||
| config | /var/www/html/config | storage for owncloud config |
|
||||
|
||||
##### Ports
|
||||
Set the following ports in the `ports:` section.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | ----------- |
|
||||
| 80 | 80 | TCP | WebUI |
|
||||
|
||||
#### Maria DB
|
||||
|
||||
##### Environment-variables
|
||||
Set the following environment-variables in the `environment:` section of the docker-compose file.
|
||||
|
||||
| Name | Usage | Default |
|
||||
| ------------------- | ---------------------------- | ------- |
|
||||
| MYSQL\_ROOT\_PASSWORD | set the mysql admin password | |
|
||||
|
||||
##### Volumes
|
||||
Set the following volumes in the `volumes:` section of the docker-compose file.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | ---------------------- | ---------------------------- |
|
||||
| mariadb | /var/lib/mysql | storage for owncloud data |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker-compose down
|
||||
docker pull owncloud
|
||||
docker pull mariadb
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
#### Docker-Compose.yml
|
||||
|
||||
```
|
||||
version: '3.1'
|
||||
|
||||
services:
|
||||
|
||||
owncloud:
|
||||
image: owncloud
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 80:80
|
||||
volumes:
|
||||
- owncloud:/var/www/html
|
||||
- config:/var/www/html/config
|
||||
|
||||
mariadb:
|
||||
image: mariadb
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: pass
|
||||
volumes:
|
||||
- mariadb:/var/lib/mysql
|
||||
|
||||
volumes:
|
||||
owncloud:
|
||||
driver: local
|
||||
mariadb:
|
||||
driver: local
|
||||
config:
|
||||
driver: local
|
||||
```
|
||||
|
||||
## Setup Client
|
||||
|
||||
### Docker
|
||||
|
||||
The original container and documentation are made by [tiynger](https://hub.docker.com/r/tiynger/owncloudclient)
|
||||
|
||||
#### Environment-variables
|
||||
Set the following variables with the -e tag.
|
||||
|
||||
| Name | Usage | Default |
|
||||
| ----------- | --------------------------------------------------- | --------- |
|
||||
| USER | username of OwnCloud server | admin |
|
||||
| PASSWORD | password of OwnCloud server | admin |
|
||||
| URL | url of OwnCloud server (dont forget the http(s)://) | localhost |
|
||||
|
||||
#### Volumes
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ----------- | --------------- | ----------------------------------- |
|
||||
| data | /data | directory for the owncloud contents |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop owncloudcli
|
||||
docker rm owncloudcli
|
||||
docker pull tiynger/owncloudclient
|
||||
docker run --name owncloudcli \
|
||||
--restart unless-stopped \
|
||||
-v owncloudcli:/data \
|
||||
-e USER='user' \
|
||||
-e PASSWORD='password' \
|
||||
-e URL='https://subdomain.domain.tld' \
|
||||
-d tiynger/owncloudclient
|
||||
```
|
35
wiki/pinedocs.md
Normal file
35
wiki/pinedocs.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# Pinedocs
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [xy2z](https://hub.docker.com/r/xy2z/pinedocs).
|
||||
|
||||
#### Volumes
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | --------------- | ----------------------- |
|
||||
| pinedocs | /data | storage for pinedocs |
|
||||
|
||||
#### Ports
|
||||
Set the following ports with the -p tag.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | ----------- |
|
||||
| 80 | 80 | TCP | WebUI |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop pinedocs
|
||||
docker rm pinedocs
|
||||
docker pull xy2z/pinedocs
|
||||
docker run --name pinedocs \
|
||||
--restart unless-stopped \
|
||||
-p 80:80 \
|
||||
-v pinedocs:/data \
|
||||
-d xy2z/pinedocs
|
||||
```
|
43
wiki/plex.md
Normal file
43
wiki/plex.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# Plex
|
||||
|
||||
## Setup Tunnel
|
||||
|
||||
### Docker
|
||||
|
||||
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.
|
||||
|
||||
| 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
|
||||
|
||||
```
|
||||
#!/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
|
||||
```
|
74
wiki/portainer.md
Normal file
74
wiki/portainer.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# Portainer
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [portainer](https://hub.docker.com/r/portainer/portainer).
|
||||
|
||||
#### Volumes
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| -------------------- | -------------------- | ------------------------------------------------- |
|
||||
| portainer | /data | configuration directory |
|
||||
| /var/run/docker.sock | /var/run/docker.sock | connection to local docker containers and volumes |
|
||||
|
||||
#### Ports
|
||||
Set the following ports with the -p tag.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | ----------- |
|
||||
| 9000 | 9000 | TCP | WebUI |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop portainer
|
||||
docker rm portainer
|
||||
docker pull portainer/portainer:latest
|
||||
docker run --name portainer \
|
||||
--restart unless-stopped \
|
||||
-p 9000:9000 \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-v portainer:/data \
|
||||
-d portainer/portainer
|
||||
```
|
||||
|
||||
## Setup Agent
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [portainer](https://hub.docker.com/r/portainer/agent).
|
||||
|
||||
#### Volumes
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ----------------------- | ----------------------- | -------------------------------------- |
|
||||
| /var/run/docker.sock | /var/run/docker.sock | connect your running docker containers |
|
||||
| /var/lib/docker/volumes | /var/lib/docker/volumes | connect running docker volumes |
|
||||
|
||||
#### Ports
|
||||
Set the following ports with the -p tag.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | -------------------- |
|
||||
| 9001 | 9001 | TCP | Portainer agent port |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop portainer_agent
|
||||
docker rm portainer_agent
|
||||
docker pull portainer/agent:latest
|
||||
docker run --name portainer_agent \
|
||||
-p 9001:9001 \
|
||||
--restart unless-stopped \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
|
||||
-d portainer/agent:latest
|
||||
```
|
||||
|
19
wiki/proxmox.md
Normal file
19
wiki/proxmox.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Proxmox
|
||||
|
||||
Proxmox is an environment for virtual machines and containers.
|
||||
|
||||
## Disk Management
|
||||
|
||||
### Enlarging disk of a VM
|
||||
|
||||
SSH into Proxmox.
|
||||
Enlarge a disk by using:
|
||||
`qm resize <vmid> <vm-disk-to-enlarge> <size>`
|
||||
For example:
|
||||
`qm resize 100 ide0 +100G`
|
||||
|
||||
## PCI/GPU passthrough
|
||||
|
||||
To use GPUs or other PCI devices you need to work with PCI passthrough.
|
||||
For documentation you can look in the [Proxmox wiki](https://pve.proxmox.com/wiki/Pci_passthrough).
|
||||
There is also an [article](https://www.reddit.com/r/homelab/comments/b5xpua/the_ultimate_beginners_guide_to_gpu_passthrough) on reddit, that focusses especially on windows 10 VMs with GPU passthrough.
|
199
wiki/radicale.md
Normal file
199
wiki/radicale.md
Normal file
@@ -0,0 +1,199 @@
|
||||
# Radicale
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
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.
|
||||
|
||||
#### Volumes
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | --------------- | --------------------------- |
|
||||
| radicale\_data | /data | storage for caldav |
|
||||
| radicale\_config | /config | storage for radicale config |
|
||||
|
||||
#### Ports
|
||||
Set the following ports with the -p tag.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | ------------- |
|
||||
| 5232 | 5232 | TCP | WebUI, caldav |
|
||||
|
||||
#### Additional
|
||||
There are some special variables to set.
|
||||
|
||||
| Flag | Usage |
|
||||
| ----------- | ---------------------------------------------------------------------- |
|
||||
| --read-only | make radicale read-only, caldav can still be changed and used normally |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#/bin/sh
|
||||
docker stop radicale
|
||||
docker rm radicale
|
||||
docker pull tomsquest/docker-radicale:2.1.11.4
|
||||
docker run --name radicale \
|
||||
--restart unless-stopped \
|
||||
--read-only \
|
||||
-p 5232:5232 \
|
||||
-v radicale_data:/data \
|
||||
-v radicale_config:/config \
|
||||
-d tomsquest/docker-radicale:2.1.11.4
|
||||
```
|
||||
|
||||
#### Configuration
|
||||
After installation there are a few crucial steps to take to secure your calendars with a login.
|
||||
It is important to change the config file which can be found in the docker volume with name `radicale_config` to match the `config`-file.
|
||||
|
||||
```
|
||||
# -*- mode: conf -*-
|
||||
# vim:ft=cfg
|
||||
|
||||
# Config file for Radicale - A simple calendar server
|
||||
#
|
||||
# Place it into /etc/radicale/config (global)
|
||||
# or ~/.config/radicale/config (user)
|
||||
#
|
||||
# The current values are the default ones
|
||||
|
||||
|
||||
[server]
|
||||
|
||||
# CalDAV server hostnames separated by a comma
|
||||
# IPv4 syntax: address:port
|
||||
# IPv6 syntax: [address]:port
|
||||
# For example: 0.0.0.0:9999, [::]:9999
|
||||
#hosts = 127.0.0.1:5232
|
||||
hosts = 0.0.0.0:5232
|
||||
|
||||
# Max parallel connections
|
||||
#max_connections = 8
|
||||
|
||||
# Max size of request body (bytes)
|
||||
#max_content_length = 100000000
|
||||
|
||||
# Socket timeout (seconds)
|
||||
#timeout = 30
|
||||
|
||||
# SSL flag, enable HTTPS protocol
|
||||
#ssl = False
|
||||
|
||||
# SSL certificate path
|
||||
#certificate = /etc/ssl/radicale.cert.pem
|
||||
|
||||
# SSL private key
|
||||
#key = /etc/ssl/radicale.key.pem
|
||||
|
||||
# CA certificate for validating clients. This can be used to secure
|
||||
# TCP traffic between Radicale and a reverse proxy
|
||||
#certificate_authority =
|
||||
|
||||
# SSL Protocol used. See python's ssl module for available values
|
||||
#protocol = PROTOCOL_TLSv1_2
|
||||
|
||||
# Available ciphers. See python's ssl module for available ciphers
|
||||
#ciphers =
|
||||
|
||||
# Reverse DNS to resolve client address in logs
|
||||
#dns_lookup = True
|
||||
|
||||
|
||||
[encoding]
|
||||
|
||||
# Encoding for responding requests
|
||||
#request = utf-8
|
||||
|
||||
# Encoding for storing local collections
|
||||
#stock = utf-8
|
||||
|
||||
|
||||
[auth]
|
||||
|
||||
# Authentication method
|
||||
# Value: none | htpasswd | remote_user | http_x_remote_user
|
||||
type = htpasswd
|
||||
|
||||
# Htpasswd filename
|
||||
htpasswd_filename = /data/users
|
||||
|
||||
# Htpasswd encryption method
|
||||
# Value: plain | sha1 | ssha | crypt | bcrypt | md5
|
||||
# Only bcrypt can be considered secure.
|
||||
# bcrypt and md5 require the passlib library to be installed.
|
||||
htpasswd_encryption = bcrypt
|
||||
|
||||
# Incorrect authentication delay (seconds)
|
||||
#delay = 1
|
||||
|
||||
# Message displayed in the client when a password is needed
|
||||
#realm = Radicale - Password Required
|
||||
|
||||
|
||||
[rights]
|
||||
|
||||
# Rights backend
|
||||
# Value: none | authenticated | owner_only | owner_write | from_file
|
||||
#type = owner_only
|
||||
|
||||
# File for rights management from_file
|
||||
#file = /etc/radicale/rights
|
||||
|
||||
|
||||
[storage]
|
||||
|
||||
# Storage backend
|
||||
# Value: multifilesystem
|
||||
#type = multifilesystem
|
||||
|
||||
# Folder for storing local collections, created if not present
|
||||
#filesystem_folder = /var/lib/radicale/collections
|
||||
filesystem_folder = /data/collections
|
||||
|
||||
# Delete sync token that are older (seconds)
|
||||
#max_sync_token_age = 2592000
|
||||
|
||||
# Command that is run after changes to storage
|
||||
# Example: ([ -d .git ] || git init) && git add -A && (git diff --cached --quiet || git commit -m "Changes by "%(user)s)
|
||||
#hook =
|
||||
|
||||
|
||||
[web]
|
||||
|
||||
# Web interface backend
|
||||
# Value: none | internal | radicale_infcloud
|
||||
# (See also https://github.com/Unrud/RadicaleInfCloud)
|
||||
type = internal
|
||||
|
||||
|
||||
[logging]
|
||||
|
||||
# Threshold for the logger
|
||||
# Value: debug | info | warning | error | critical
|
||||
#level = warning
|
||||
|
||||
# Don't include passwords in logs
|
||||
#mask_passwords = True
|
||||
|
||||
|
||||
[headers]
|
||||
|
||||
# Additional HTTP headers
|
||||
#Access-Control-Allow-Origin = *
|
||||
```
|
||||
|
||||
Following this you need to make sure there is a password file in the docker volume `radicale_data` called `users`.
|
||||
The password will be encrypted using `bcrypt`.
|
||||
Steps to create a file with a user and password:
|
||||
- You will have to install the package which includes `htpasswd`; for debian based distributions this is `apt install apache2-utils`
|
||||
- `cd /var/lib/docker/volumes/radicale\_data/\_data` - go to the volume
|
||||
- `touch ./users` - create a file called users
|
||||
- `htpasswd -B ./users username` - add user with name and password to the file (change `username` to your desired username)
|
||||
|
||||
Now you can go to the exposed port and login with your chosen username and password.
|
||||
If you only added one user you shouldn't be able to login with any other data than your username and password.
|
61
wiki/samba.md
Normal file
61
wiki/samba.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# Samba
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [dperson](https://hub.docker.com/r/samba).
|
||||
|
||||
#### Volumes
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | --------------- | ------------------------------ |
|
||||
| samba\_nas | /nas | storage for samba data |
|
||||
| samba\_lib | /var/lib/samba | storage for samba lib |
|
||||
| samba\_cache | /var/cache/samba | storage for samba cache |
|
||||
| samba\_run | /run/samba | run entries for samba |
|
||||
| samba\_etc | /etc | etc directory of samba server |
|
||||
| samba\_log | /var/log/samba | storage for samba logs |
|
||||
|
||||
#### Ports
|
||||
Set the following ports with the -p tag.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | -------------- |
|
||||
| 139 | 139 | TCP | Samba internal |
|
||||
| 445 | 445 | TCP | Samba internal |
|
||||
|
||||
#### Additional
|
||||
There are some special variables to set.
|
||||
|
||||
| Flag | Usage |
|
||||
| --------------------------------------------------------------------- | ---------------- |
|
||||
| -u \<username;password\>(;ID;group;GID) | define user |
|
||||
| -w \<workgroup\> | define workgroup |
|
||||
| -s \<name;path\>(;browse;readonly;guest;users;admins;writelist;comment) | define shares |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop samba
|
||||
docker rm samba
|
||||
docker pull dperson/samba
|
||||
docker run --name samba \
|
||||
--restart unless-stopped \
|
||||
-p 139:139 \
|
||||
-p 445:445 \
|
||||
-v samba_nas:/nas \
|
||||
-v samba_lib:/var/lib/samba \
|
||||
-v samba_cache:/var/cache/samba \
|
||||
-v samba_run:/run/samba \
|
||||
-v samba_etc:/etc \
|
||||
-v samba_log:/var/log/samba \
|
||||
-d dperson/samba -p \
|
||||
-u "user1;pass1" \
|
||||
-u "user2;pass2" \
|
||||
-s "public;/nas/public" \
|
||||
-s "user1private;/nas/user1;no;no;no;user1;user1" \
|
||||
-s "user2private;/nas/user2;no;no;no;user2;user2"
|
||||
```
|
25
wiki/sc-im.md
Normal file
25
wiki/sc-im.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# SC-IM
|
||||
|
||||
`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
|
||||
|
||||
## Usage
|
||||
|
||||
`sc-im` uses vim keys to move.
|
||||
You can insert text to a cell with `\` and numbers using `=`.
|
||||
You can edit existing entries with `e` for text and `E` for numbers.
|
||||
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
|
||||
|
||||
There are some functions you can use when in numbers mode.
|
||||
|
||||
- `=@sum(<start-cell>:<end-cell>)` - Summarize all number-entries in the range of given cells
|
14
wiki/shells.md
Normal file
14
wiki/shells.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# 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
|
53
wiki/syncthing.md
Normal file
53
wiki/syncthing.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# Syncthing
|
||||
|
||||
## Setup
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [linuxserver](https://hub.docker.com/r/linuxserver/syncthing).
|
||||
|
||||
#### Environment-variables
|
||||
Set the following variables with the -e tag.
|
||||
|
||||
| Name | Usage | Default |
|
||||
| --------- | ---------------- | ------- |
|
||||
| PUID | UserID | |
|
||||
| PGID | GroupID | |
|
||||
| TZ | Timezone | |
|
||||
| UMASK\_SET | setting usermask | |
|
||||
|
||||
#### Volumes
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | --------------- | ----------------------------------------------- |
|
||||
| syncthing\_config | /config | storage for config and possible downloaded data |
|
||||
|
||||
#### Ports
|
||||
Set the following ports with the -p tag.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | ------------------ |
|
||||
| 8384 | 8384 | TCP | WebUI |
|
||||
| 22000 | 22000 | TCP | Syncthing internal |
|
||||
| 21027 | 21027 | UDP | Syncthing internal |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop syncthing
|
||||
docker rm syncthing
|
||||
docker pull linuxserver/syncthing
|
||||
docker run --name syncthing \
|
||||
--restart unless-stopped \
|
||||
-p 8384:8384 \
|
||||
-p 22000:22000 \
|
||||
-p 21027:21027/udp \
|
||||
-v syncthing_config:/config \
|
||||
-e PUID=0 \
|
||||
-e PGID=0 \
|
||||
-e TZ=Europe/Berlin \
|
||||
-e UMASK_SET=022 \
|
||||
-d linuxserver/syncthing
|
||||
```
|
47
wiki/teamspeak.md
Normal file
47
wiki/teamspeak.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# Teamspeak3
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [teamspeak](https://hub.docker.com/_/teamspeak).
|
||||
|
||||
#### Environment-variables
|
||||
Set the following variables with the -e tag.
|
||||
|
||||
| Name | Usage | Default |
|
||||
| ----------------- | ---------------------------- | ------- |
|
||||
| TS3SERVER\_LICENSE | accept the license agreement | |
|
||||
|
||||
#### Volumes
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | --------------- | --------------------------- |
|
||||
| teamspeak3 | /var/ts3server | storage for ts3-server data |
|
||||
|
||||
#### Ports
|
||||
Set the following ports with the -p tag.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | ----------- |
|
||||
| 9987 | 9987 | UDP | ts3-intern |
|
||||
| 10011 | 10011 | TCP | ts3-intern |
|
||||
| 30033 | 30033 | TCP | ts3-intern |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop teamspeak3
|
||||
docker rm teamspeak3
|
||||
docker pull teamspeak:latest
|
||||
docker run --name teamspeak3 \
|
||||
--restart unless-stopped \
|
||||
-p 9987:9987/udp \
|
||||
-p 10011:10011 \
|
||||
-p 30033:30033 \
|
||||
-v teamspeak3:/var/ts3server \
|
||||
-e TS3SERVER_LICENSE=accept \
|
||||
-d teamspeak:latest
|
||||
```
|
37
wiki/todo-list.md
Normal file
37
wiki/todo-list.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# Todo-List
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [prologic](https://hub.docker.com/r/prologic/todo).
|
||||
|
||||
#### Volumes
|
||||
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | -------------------- | ----------------------- |
|
||||
| todo | /go/src/todo/todo.db | Database for todo list |
|
||||
|
||||
#### Ports
|
||||
|
||||
Set the following ports with the -p tag.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | ----------- |
|
||||
| 8000 | 8000 | TCP | WebUI |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker stop todo
|
||||
docker rm todo
|
||||
docker pull prologic/todo
|
||||
docker run --name todo \
|
||||
-p 8000:8000 \
|
||||
--restart unless-stopped \
|
||||
-v todo:/go/src/todo/todo.db \
|
||||
-d prologic/todo
|
||||
```
|
23
wiki/wine.md
Normal file
23
wiki/wine.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# Wine
|
||||
|
||||
Wine is a compatibility layer to run windows programs on linux machines.
|
||||
|
||||
## Setup
|
||||
|
||||
### Arch-Linux
|
||||
|
||||
- Enable multilib support in pacman
|
||||
- `vim /etc/pacman.conf` - Uncomment the following lines
|
||||
```
|
||||
[multilib]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
```
|
||||
- `pacman -S wine winetricks` - Install wine and configuration helper
|
||||
|
||||
### Configuration
|
||||
|
||||
- Set the global variable `WINEPREFIX` to your liking, standard is `$HOME/.wine`
|
||||
- `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 or files into your home directory
|
||||
- `wine $WINEPREFIX/drive_c/<insert program>` - Run the program with wine
|
94
wiki/yourls.md
Normal file
94
wiki/yourls.md
Normal file
@@ -0,0 +1,94 @@
|
||||
# YOURLS
|
||||
|
||||
## Setup Server
|
||||
|
||||
### Docker
|
||||
|
||||
The official container and documentation was made by [yourls](https://hub.docker.com/_/yourls).
|
||||
|
||||
#### YOURLS
|
||||
|
||||
##### Environment-variables
|
||||
Set the following variables with the -e tag.
|
||||
|
||||
| Name | Usage | Default |
|
||||
| ---- | ---------------------------------------------------- | ------- |
|
||||
| YOURLS\_DB\_PASS | database password | |
|
||||
| YOURLS\_SITE | domain/site name of yourls | |
|
||||
| YOURLS\_USER | username for yourls admin | |
|
||||
| YOURLS\_PASS | password for yourls admin | |
|
||||
|
||||
##### Volumes
|
||||
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | --------------- | ----------------------- |
|
||||
| yourls | /var/www/html | yourls specific html |
|
||||
|
||||
##### Ports
|
||||
|
||||
Set the following ports with the -p tag.
|
||||
|
||||
| Container Port | Recommended outside port | Protocol | Description |
|
||||
| -------------- | ------------------------ | -------- | ----------------- |
|
||||
| 80 | 80 | TCP | dns protocol port |
|
||||
|
||||
#### MySQL
|
||||
|
||||
##### Environment-variables
|
||||
Set the following variables with the -e tag.
|
||||
|
||||
| Name | Usage | Default |
|
||||
| ---- | ---------------------------------------------------- | ------- |
|
||||
| MYSQL\_ROOT\_PASSWORD | database password | |
|
||||
|
||||
##### Volumes
|
||||
|
||||
Set the following volumes with the -v tag.
|
||||
|
||||
| Volume-Name | Container mount | Description |
|
||||
| ---------------- | --------------- | ----------------------- |
|
||||
| mysql | /var/cache/bind | database for yourls |
|
||||
|
||||
#### Rebuild
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
docker-compose down
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
#### Docker-Compose.yml
|
||||
|
||||
```
|
||||
version: '3.1'
|
||||
services:
|
||||
yourls:
|
||||
image: yourls
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 7006:80
|
||||
environment:
|
||||
YOURLS_DB_PASS: mysql_pw
|
||||
YOURLS_SITE: https://domain.tld
|
||||
YOURLS_USER: admin_username
|
||||
YOURLS_PASS: admin_password
|
||||
YOURLS_PRIVATE: 'true'
|
||||
volumes:
|
||||
- yourls:/var/www/html
|
||||
|
||||
mysql:
|
||||
image: mysql:5.7
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: mysql_pw
|
||||
volumes:
|
||||
- mysql:/var/lib/mysql
|
||||
|
||||
volumes:
|
||||
yourls:
|
||||
driver: local
|
||||
mysql:
|
||||
driver: local
|
||||
```
|
Reference in New Issue
Block a user