Migradted to other Repo
https://git.bprieshof.nl/brammp/SnipitRepo/src/branch/main/Linux
This commit is contained in:
@@ -1,58 +0,0 @@
|
|||||||
#ProxmoxCT Note use privileged container with nesting enabled #
|
|
||||||
|
|
||||||
#EPEL Repo
|
|
||||||
rpm --rebuilddb
|
|
||||||
dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
|
|
||||||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
|
|
||||||
|
|
||||||
#Webmin repo
|
|
||||||
cat << 'EOF' >> /etc/yum.repos.d/webmin.repo
|
|
||||||
[Webmin]
|
|
||||||
name=Webmin
|
|
||||||
#baseurl=https://download.webmin.com/download/yum
|
|
||||||
mirrorlist=https://download.webmin.com/download/yum/mirrorlist
|
|
||||||
enabled=1
|
|
||||||
EOF
|
|
||||||
rpm --import https://download.webmin.com/jcameron-key.asc
|
|
||||||
|
|
||||||
#Install
|
|
||||||
dnf --setopt=install_weak_deps=False --best --refresh -y install samba samba-common cronie nfs-utils webmin openssh-server nano nload htop avahi wsdd
|
|
||||||
|
|
||||||
#Webin config
|
|
||||||
service webmin stop
|
|
||||||
systemctl start webmin
|
|
||||||
sed -i -e '/port=/c\port=80' -e 's/ssl=/c\ssl=0/g' -e 's/ipv6=/c\ipv6=0/g' /etc/webmin/miniserv.conf
|
|
||||||
echo "servers=Services & Tools" >> /etc/webmin/webmin.catnames
|
|
||||||
cat << 'EOF' >> /etc/webmin/webmin.cats
|
|
||||||
filter=cluster
|
|
||||||
exports=servers
|
|
||||||
filemin=servers
|
|
||||||
useradmin=servers
|
|
||||||
mailboxes=
|
|
||||||
EOF
|
|
||||||
|
|
||||||
#Samba config
|
|
||||||
sed -i -e '/map to guest =/c\map to guest = never' /etc/samba/smb.conf
|
|
||||||
|
|
||||||
#Avahi config
|
|
||||||
cat << 'EOF' >> /etc/avahi/services/smb.service
|
|
||||||
<?xml version="1.0" standalone='no'?>
|
|
||||||
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
|
|
||||||
<service-group>
|
|
||||||
<name replace-wildcards="yes">%h</name>
|
|
||||||
<service>
|
|
||||||
<type>_smb._tcp</type>
|
|
||||||
<port>445</port>
|
|
||||||
</service>
|
|
||||||
<service>
|
|
||||||
<type>_device-info._tcp</type>
|
|
||||||
<port>0</port>
|
|
||||||
<txt-record>model=RackMac</txt-record>
|
|
||||||
</service>
|
|
||||||
</service-group>
|
|
||||||
EOF
|
|
||||||
|
|
||||||
#Restart services
|
|
||||||
service webmin stop
|
|
||||||
systemctl enable --now smb nfs-server webmin avahi-daemon wsdd
|
|
||||||
systemctl restart smb nfs-server webmin avahi-daemon wsdd
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
# Set debug flag as desired
|
|
||||||
DEBUG=1
|
|
||||||
# DEBUG=0
|
|
||||||
|
|
||||||
if [ "$DEBUG" -eq "1" ]; then
|
|
||||||
OUT='/dev/tty'
|
|
||||||
else
|
|
||||||
OUT='/dev/null'
|
|
||||||
fi
|
|
||||||
|
|
||||||
# actual script use commands like this
|
|
||||||
command > $OUT 2>&1
|
|
||||||
|
|
||||||
# or like this if you need
|
|
||||||
command 2> $OUT
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
#ProxmoxCT Note use privileged container with nesting enabled #
|
|
||||||
|
|
||||||
#Prerequisite packages
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
apt install --no-install-recommends wget gnupg2 apt-transport-https -y
|
|
||||||
|
|
||||||
#Webin repo
|
|
||||||
wget -qO - https://download.webmin.com/jcameron-key.asc | sudo apt-key add -
|
|
||||||
echo "deb https://download.webmin.com/download/repository sarge contrib" > /etc/apt/sources.list.d/webmin.list
|
|
||||||
|
|
||||||
#Wsdd(Web Service Discovery host daemon) repo
|
|
||||||
wget -O - https://pkg.ltec.ch/public/conf/ltec-ag.gpg.key|apt-key add -
|
|
||||||
echo "deb https://pkg.ltec.ch/public/ `lsb_release -cs` main" > /etc/apt/sources.list.d/wsdd.list
|
|
||||||
|
|
||||||
#Install
|
|
||||||
apt update
|
|
||||||
debconf-set-selections <<<"samba-common samba-common/do_debconf boolean true"
|
|
||||||
apt install --no-install-recommends samba samba-vfs-modules cron nfs-kernel-server webmin openssh-server nano nload htop avahi-daemon avahi-utils wsdd -y
|
|
||||||
|
|
||||||
#Webmin config
|
|
||||||
sed -i -e '/port=/c\port=80' -e 's/ssl=/c\ssl=0/g' -e 's/ipv6=/c\ipv6=0/g' /etc/webmin/miniserv.conf
|
|
||||||
echo "servers=Services & Tools" >> /etc/webmin/webmin.catnames
|
|
||||||
cat << 'EOF' >> /etc/webmin/webmin.cats
|
|
||||||
filter=cluster
|
|
||||||
exports=servers
|
|
||||||
filemin=servers
|
|
||||||
useradmin=servers
|
|
||||||
mailboxes=
|
|
||||||
EOF
|
|
||||||
|
|
||||||
|
|
||||||
#Samba config
|
|
||||||
sed -i -e '/map to guest =/c\map to guest = never' /etc/samba/smb.conf
|
|
||||||
|
|
||||||
#Avahi config
|
|
||||||
cat << 'EOF' >> /etc/avahi/services/smb.service
|
|
||||||
<?xml version="1.0" standalone='no'?>
|
|
||||||
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
|
|
||||||
<service-group>
|
|
||||||
<name replace-wildcards="yes">%h</name>
|
|
||||||
<service>
|
|
||||||
<type>_smb._tcp</type>
|
|
||||||
<port>445</port>
|
|
||||||
</service>
|
|
||||||
<service>
|
|
||||||
<type>_device-info._tcp</type>
|
|
||||||
<port>0</port>
|
|
||||||
<txt-record>model=RackMac</txt-record>
|
|
||||||
</service>
|
|
||||||
</service-group>
|
|
||||||
EOF
|
|
||||||
|
|
||||||
#Restart services
|
|
||||||
systemctl enable --now smbd nfs-kernel-server webmin avahi-daemon wsdd
|
|
||||||
systemctl restart smbd nfs-kernel-server webmin avahi-daemon wsdd
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
# Repack linux ISO
|
|
||||||
|
|
||||||
Commands expect to be in a root shell
|
|
||||||
|
|
||||||
## Install needed tools
|
|
||||||
mkisofs xorriso isohybrid
|
|
||||||
|
|
||||||
## Editing ISO image
|
|
||||||
|
|
||||||
Create workspace
|
|
||||||
`mkdir /tmp/custom_iso`
|
|
||||||
Mount image and extract it since it is read only
|
|
||||||
```
|
|
||||||
mount -t iso9660 -o loop ~/original.iso /mnt/`
|
|
||||||
tar cf - /mnt/. | (cd /tmp/custom_iso; tar xfp -)
|
|
||||||
```
|
|
||||||
You can now modify the files for editing the bootloader config for example!
|
|
||||||
|
|
||||||
## Back into an iso
|
|
||||||
|
|
||||||
### Legacy only
|
|
||||||
Rebuild iso with mkisofs
|
|
||||||
`mkisofs -o output.iso -b syslinux/isolinux.bin -c syslinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -R -V "Custom ISO" /tmp/custom_iso`
|
|
||||||
Bless it with isohybrid
|
|
||||||
`isohybrid output.iso`
|
|
||||||
|
|
||||||
### EFI and Legacy
|
|
||||||
Rebuild iso with mkisofs
|
|
||||||
`mkisofs -o output.iso -b syslinux/isolinux.bin -J -R -l -c syslinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -graft-points -V "Custom ISO" /tmp/custom_iso`
|
|
||||||
Bless it with isohybrid
|
|
||||||
`isohybrid --uefi output.iso`
|
|
||||||
|
|
||||||
### Sources
|
|
||||||
https://gist.github.com/AkdM/2cd3766236582ed0263920d42c359e0f
|
|
||||||
https://tuxfixer.com/mount-modify-edit-repack-create-uefi-iso-including-kickstart-file/
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#IP address on host promts (add to /etc/issue)
|
|
||||||
<ifName>: \4{<ifName>}
|
|
||||||
#IP address on motd (add to .bashrc)
|
|
||||||
echo "IP: $(ip -o -4 addr list "<IFNAME>" | awk '{print $4}' | cut -d/ -f1)"
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
# Migrate Secureboot key
|
|
||||||
## Export Ubuntu
|
|
||||||
Copy following files
|
|
||||||
* Private Key: /var/lib/shim-signed/mok/MOK.priv
|
|
||||||
* Public Key: /var/lib/shim-signed/mok/MOK.der
|
|
||||||
|
|
||||||
## Export Fedora
|
|
||||||
Copy following files
|
|
||||||
* Symlink to Private Key: /etc/pki/akmods/private/private_key.priv
|
|
||||||
* Symlink to Public Key: /etc/pki/akmods/certs/private_key.priv
|
|
||||||
|
|
||||||
## Import Ubuntu
|
|
||||||
Using source.priv and source.der files in current directory to import
|
|
||||||
```
|
|
||||||
cp source.priv /var/lib/shim-signed/mok/MOK.priv
|
|
||||||
cp source.der /var/lib/shim-signed/mok/MOK.der
|
|
||||||
```
|
|
||||||
|
|
||||||
## Import Fedora
|
|
||||||
Using source.priv and source.der files in current directory to import
|
|
||||||
```
|
|
||||||
dnf install akmods kmodtool
|
|
||||||
|
|
||||||
KEYNAME="$(hostname)"-"$(od -vAn -N4 -tu4 < /dev/urandom | awk '{print $1}')"
|
|
||||||
|
|
||||||
cp source.der /etc/pki/akmods/certs/${KEYNAME}.der
|
|
||||||
cp source.priv /etc/pki/akmods/private/${KEYNAME}.priv
|
|
||||||
|
|
||||||
chgrp akmods /etc/pki/akmods/certs/${KEYNAME}.*
|
|
||||||
chgrp akmods /etc/pki/akmods/private/${KEYNAME}.*
|
|
||||||
|
|
||||||
chmod g+r /etc/pki/akmods/certs/${KEYNAME}.*
|
|
||||||
chmod g+r /etc/pki/akmods/private/${KEYNAME}.*
|
|
||||||
|
|
||||||
ln -nsf /etc/pki/akmods/certs/${KEYNAME}.der /etc/pki/akmods/certs/public_key.der
|
|
||||||
ln -nsf /etc/pki/akmods/private/${KEYNAME}.priv /etc/pki/akmods/private/private_key.priv
|
|
||||||
```
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
## Install
|
|
||||||
```
|
|
||||||
apt install pigz
|
|
||||||
```
|
|
||||||
## Compress
|
|
||||||
```
|
|
||||||
tar cf - [inputdir] | pigz -[compression level (0 = none, 1 = minimal, 9 = maximum)] -p[cores] > [output.tar.gz]
|
|
||||||
```
|
|
||||||
## Extract
|
|
||||||
```
|
|
||||||
unpigz < [input.tar.gz] | (cd [extract location] && tar xvf -)
|
|
||||||
```
|
|
||||||
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
Dist=$(grep -oP '(?<=^ID=).+' /etc/os-release | tr -d '"')
|
|
||||||
DistVersion=$(grep -oP '(?<=^VERSION_CODENAME=).+' /etc/os-release | tr -d '"')
|
|
||||||
|
|
||||||
wget -qO - http://repo.mysql.com/RPM-GPG-KEY-mysql | apt-key add -
|
|
||||||
echo "deb http://repo.mysql.com/apt/"$Dist"/ "$DistVersion" mysql-8.0" >/etc/apt/sources.list.d/mysql.list
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
sed -i -e "0,/^#ConfHere/s/\(^#Conf.*\)/#ConfHere1 /" -e '/#ConfHere1/ r CMS_Config.txt' -e '/#ConfHere/c\' Base_Nginx_Config.txt
|
|
||||||
|
|
||||||
|
|
||||||
######################################
|
|
||||||
Base_Nginx_Config.txt Content example
|
|
||||||
######################################
|
|
||||||
|
|
||||||
#generated by certbot from here
|
|
||||||
server {
|
|
||||||
listen 443 ssl;
|
|
||||||
listen [::]:443 ssl;
|
|
||||||
server_name www.DOMAINname;
|
|
||||||
return 301 http://DOMAINname$request_uri;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 443 ssl;
|
|
||||||
listen [::]:443 ssl;
|
|
||||||
|
|
||||||
|
|
||||||
#ConfHere
|
|
||||||
|
|
||||||
}
|
|
||||||
#generated by certbot to here
|
|
||||||
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
listen [::]:80;
|
|
||||||
server_name www.DOMAINname;
|
|
||||||
return 301 http://DOMAINname$request_uri;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
listen [::]:80;
|
|
||||||
|
|
||||||
|
|
||||||
#ConfHere
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
###############################
|
|
||||||
CMS_Config.txt Content example
|
|
||||||
###############################
|
|
||||||
|
|
||||||
|
|
||||||
gzip on;
|
|
||||||
gzip_proxied any;
|
|
||||||
gzip_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript image/svg image/svg+xml application/xml image/x-icon;
|
|
||||||
gzip_comp_level 2;
|
|
||||||
gzip_disable "msie6";
|
|
||||||
gzip_buffers 16 8k;
|
|
||||||
|
|
||||||
|
|
||||||
location / {
|
|
||||||
#try_files $uri $uri/ =404;
|
|
||||||
try_files $uri $uri/ /index.php$is_args$args;
|
|
||||||
#try_files $uri $uri/ $uri.html $uri.php$is_args$query_string;
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
#### Input: dom.ain/UrLocation/?set=123
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### Nginx Conf
|
|
||||||
|
|
||||||
###### Required when directing to domain
|
|
||||||
```
|
|
||||||
resolver 1.1.1.1 [::1]:5353 valid=30s;
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
location /UrLocation {
|
|
||||||
proxy_pass https://other.domain/json.htm?type=command&&switchcmd=Set%20Level&level=$arg_set;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
#### result: https://other.domain/json.htm?type=command&&switchcmd=Set%20Level&level=123
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
args=("Option 1:" "Option 1 Desription" OFF)
|
|
||||||
args+=("Option 2: " "Option 2 Desription" OFF)
|
|
||||||
args+=("Option 3: " "Option 3 Desription" OFF)
|
|
||||||
option=$(whiptail --nocancel --title "Title" --checklist "Features" 11 110 5 "${args[@]}" 3>&1 1>&2 2>&3)
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
Install `qemu-user-static` on the proxmox host
|
|
||||||
Add an `armhf` or `arm64(aarch64)` image to the proxmox image store
|
|
||||||
Use this image to create a container
|
|
||||||
|
|
||||||
|
|
||||||
## Image links
|
|
||||||
Always download `rootfs.tar.xz`
|
|
||||||
(Distro releases current as of 20-10-2021)
|
|
||||||
### armhf
|
|
||||||
* Alpine https://uk.images.linuxcontainers.org/images/alpine/3.14/armhf/default/
|
|
||||||
* Debian https://uk.images.linuxcontainers.org/images/debian/bullseye/armhf/default/
|
|
||||||
* Ubuntu https://uk.images.linuxcontainers.org/images/ubuntu/focal/armhf/default/
|
|
||||||
### arm64
|
|
||||||
* Alpine https://uk.images.linuxcontainers.org/images/alpine/3.14/arm64/default/
|
|
||||||
* Debian https://uk.images.linuxcontainers.org/images/debian/bullseye/arm64/default/
|
|
||||||
* Ubuntu https://uk.images.linuxcontainers.org/images/ubuntu/focal/arm64/default/
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
#Proxmox Use SMTP to send mail
|
|
||||||
#Vars
|
|
||||||
MailFromName=$(hostname)
|
|
||||||
MailFormAddress=noreply@domain.com
|
|
||||||
MailFromServer=mail.provider.com
|
|
||||||
MailFromServerPort=465
|
|
||||||
MailFromPasswd=<MailBoxPassword>
|
|
||||||
MailTo=administrator@domain.com
|
|
||||||
|
|
||||||
#install dependencies
|
|
||||||
apt install libsasl2-modules -y
|
|
||||||
|
|
||||||
#Generating Configs
|
|
||||||
echo "[$MailFromServer]:$MailFromServerPort $MailFormAddress:$MailFromPasswd" > /etc/postfix/sasl_passwd
|
|
||||||
echo "/.+/ $MailFromName<$MailFormAddress>" > /etc/postfix/sender_canonical_maps
|
|
||||||
echo "/From:.*/ REPLACE From: $MailFromName<$MailFormAddress>" > /etc/postfix/header_check
|
|
||||||
sed -i '/relayhost/c\' /etc/postfix/main.cf
|
|
||||||
cat << EOF >> /etc/postfix/main.cf
|
|
||||||
#Custom PostfixSMTP config
|
|
||||||
relayhost = [$MailFromServer]:$MailFromServerPort
|
|
||||||
smtp_tls_wrappermode = yes
|
|
||||||
smtp_tls_security_level = encrypt
|
|
||||||
smtp_use_tls = yes
|
|
||||||
smtp_sasl_auth_enable = yes
|
|
||||||
smtp_sasl_security_options =
|
|
||||||
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
|
|
||||||
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
|
|
||||||
sender_canonical_classes = envelope_sender, header_sender
|
|
||||||
sender_canonical_maps = regexp:/etc/postfix/sender_canonical_maps
|
|
||||||
smtp_header_checks = regexp:/etc/postfix/header_check
|
|
||||||
EOF
|
|
||||||
|
|
||||||
postmap /etc/postfix/sasl_passwd
|
|
||||||
systemctl restart postfix
|
|
||||||
@@ -1,2 +1,4 @@
|
|||||||
# linux
|
# Linux Snipits
|
||||||
|
|
||||||
|
Migrated to [brammp/SnipitRepo](https://git.bprieshof.nl/brammp/SnipitRepo)/Linux
|
||||||
|
|
||||||
|
|||||||
42
SSH.md
42
SSH.md
@@ -1,42 +0,0 @@
|
|||||||
## SSH SOCSK (ProxyTunnel)
|
|
||||||
#### Command
|
|
||||||
`ssh -C -D <proxyport> <USERNAME>@<SYSTEM>`
|
|
||||||
|
|
||||||
* -C : enables compression
|
|
||||||
* -D : specifies Socks proxyport
|
|
||||||
|
|
||||||
### Firefox
|
|
||||||
1. go to Edit -> Preferences -> Advanced -> Network -> Connection -> Settings...
|
|
||||||
2. check "Manual proxy configuration"
|
|
||||||
3. make sure "Use this proxy server for all protocols" is cleared
|
|
||||||
4. clear "HTTP Proxy", "SSL Proxy", "FTP Proxy", and "Gopher Proxy" fields
|
|
||||||
5. enter "127.0.0.1" for "SOCKS Host"
|
|
||||||
6. enter "1080" (or whatever port you chose) for Port.
|
|
||||||
|
|
||||||
## SSH Remote forward (makes local port apear on remote machine)
|
|
||||||
|
|
||||||
#### Port to be internaly binded on remote machine
|
|
||||||
|
|
||||||
`ssh -R <remoteport>:<address in local network or localhost>:<localport> <USERNAME>@<SYSTEM>`
|
|
||||||
|
|
||||||
#### Port to be binded to remote machine
|
|
||||||
|
|
||||||
`ssh -g -R *:<remoteport>:<address in local network or localhost>:<localport> <USERNAME>@<SYSTEM>`
|
|
||||||
|
|
||||||
* -R : Remote forward
|
|
||||||
* -N : Do not execute a remote command
|
|
||||||
* -g : forward to remote network
|
|
||||||
|
|
||||||
### SSHD config (on remote where ports are forwarded to)
|
|
||||||
* GatewayPorts no : only allows the remote system to connect
|
|
||||||
* GatewayPorts yes: allows the remote network to connect to the forwarded port
|
|
||||||
* GatewayPorts clientspecified : allows the remote network to connect to the forwarded port when -g switch is used
|
|
||||||
|
|
||||||
|
|
||||||
## SSH Local forward (makes remote port apear on local machine)
|
|
||||||
|
|
||||||
#### Remote port to be binded on local machine
|
|
||||||
|
|
||||||
`ssh -L <bindPort>:<address in remote network or localhost>:<remote port> <USERNAME>@<SYSTEM>`
|
|
||||||
|
|
||||||
* -L : Local forward
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
option="${option// /}" #Removes Spaces
|
|
||||||
option="${option/:/ }" #First : to Space
|
|
||||||
option="${option//:/ }" #All : to Space
|
|
||||||
option="${option//:}" #Removes :
|
|
||||||
option="${option,,}" #Removes LowerCase
|
|
||||||
option="${option//'"'}" #Removes "
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
PKGM="debconf-apt-progress -- apt" #enable progresbar
|
|
||||||
PKGI="${PKGM} install -y" #Setting single install var
|
|
||||||
PKGA="debconf-apt-progress -- add-apt-repository"
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
# apt-cacher-ng
|
|
||||||
Default port 3142
|
|
||||||
## Deb(ubuntu/debian) repos work out of the box server sided
|
|
||||||
### client
|
|
||||||
`echo 'Acquire::http::Proxy "http://<ip>:<port>";' > /etc/apt/apt.conf.d/01proxy`
|
|
||||||
|
|
||||||
## For Centos are modifications needed
|
|
||||||
### Server
|
|
||||||
`curl https://www.centos.org/download/full-mirrorlist.csv | sed 's/^.*"http:/http:/' | sed 's/".*$//' | grep ^http >/etc/apt-cacher-ng/centos_mirrors`
|
|
||||||
|
|
||||||
SSL Passthrough
|
|
||||||
#### /etc/apt-cacher-ng/acng.conf
|
|
||||||
```
|
|
||||||
VfilePatternEx: ^/\?release=[0-9]+&arch=
|
|
||||||
VfilePatternEx: ^(/\?release=[0-9]+&arch=.*|.*/RPM-GPG-KEY-.*|/metalink\?repo=epel\$
|
|
||||||
VfilePatternEx = (^|.*/)repodata/.*\.(yaml|yml)(\.gz|\.bz2|\.lzma|\.xz)?$
|
|
||||||
Remap-centos: file:centos_mirrors /centos
|
|
||||||
|
|
||||||
#PassThroughPattern: .* # this would allow CONNECT to everything
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
### Client (installer)
|
|
||||||
use http://mirror.centos.org/centos/8/BaseOS/x86_64/os/ as repo and set proxy to <ip>:<port>
|
|
||||||
|
|
||||||
### Client (DNF)
|
|
||||||
make sure to set repos to use base url
|
|
||||||
add folowing to /etc/dnf/dnf.conf
|
|
||||||
```
|
|
||||||
proxy=http://<ip>:<port>
|
|
||||||
```
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
apt update
|
|
||||||
apt-get install apt-transport-https gnupg2 -y
|
|
||||||
|
|
||||||
wget http://www.webmin.com/jcameron-key.asc
|
|
||||||
apt-key add jcameron-key.asc
|
|
||||||
rm jcameron-key.asc
|
|
||||||
|
|
||||||
echo "deb https://download.webmin.com/download/repository sarge contrib" > /etc/apt/sources.list.d/webmin.list
|
|
||||||
apt-get update
|
|
||||||
apt-get install webmin -y
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
# gitea update tool
|
|
||||||
Tool from `https://github.com/CMiksche/gitea-auto-update`
|
|
||||||
or get local from `https://git.bprieshof.nl/Tools/gitea-auto-update`
|
|
||||||
|
|
||||||
requires python 3.7+
|
|
||||||
|
|
||||||
# Install tool
|
|
||||||
## ubuntu 18.04
|
|
||||||
```
|
|
||||||
add-apt-repository ppa:deadsnakes/ppa
|
|
||||||
apt install python3.7 python3-pip
|
|
||||||
|
|
||||||
python3.8 -m pip install gitea-auto-update
|
|
||||||
```
|
|
||||||
##debian 10,ubuntu 20.04
|
|
||||||
```
|
|
||||||
apt install python3-pip -y
|
|
||||||
pip3 install gitea-auto-update
|
|
||||||
```
|
|
||||||
|
|
||||||
# Configuring
|
|
||||||
### all os's
|
|
||||||
Add the following to `/etc/gitea/auto-update.ini`
|
|
||||||
```
|
|
||||||
[Gitea]
|
|
||||||
site=http://localhost:3000/api/v1/version
|
|
||||||
apiUrl=https://api.github.com/repos/go-gitea/gitea/releases/latest
|
|
||||||
system=linux-amd64
|
|
||||||
file=/usr/local/bin/gitea
|
|
||||||
tmpDir=/tmp/
|
|
||||||
buildFromSource=
|
|
||||||
sourceDir=
|
|
||||||
logFile=/var/log/gitupdate.log
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Cron job
|
|
||||||
### ubuntu 18.04
|
|
||||||
Add the following to `/etc/crontab`
|
|
||||||
```
|
|
||||||
0 5 * * 7 root /usr/bin/python3.8 /usr/local/bin/gitea-auto-update --settings=/etc/gitea/auto-update.ini
|
|
||||||
```
|
|
||||||
### debian 10,ubuntu 20.04
|
|
||||||
Add the following to `/etc/crontab`
|
|
||||||
```
|
|
||||||
0 5 * * 7 root /usr/local/bin/gitea-auto-update --settings=/etc/gitea/auto-update.ini
|
|
||||||
```
|
|
||||||
# Run manual update`
|
|
||||||
```
|
|
||||||
gitea-auto-update --settings=/etc/gitea/auto-update.ini
|
|
||||||
```
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
if [ "$1" != "-l" ]; then
|
|
||||||
echo "Normal mode"
|
|
||||||
IMODE=n
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$1" = "-l" ]; then
|
|
||||||
echo "Legacy mode";
|
|
||||||
IMODE=l
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if [ $IMODE = n ]; then
|
|
||||||
echo "New Menu"
|
|
||||||
elif [ $IMODE = l ]; then
|
|
||||||
echo "Legacy Menu"
|
|
||||||
fi
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
# Authchecker functions for curl
|
|
||||||
## curl keeps asking for password until correct, and downloads file
|
|
||||||
|
|
||||||
```
|
|
||||||
function getcurlsec {
|
|
||||||
|
|
||||||
local curlurl="$1"
|
|
||||||
local curluser="$2"
|
|
||||||
local curloutput="$3"
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
curl --fail --user "$curluser" "$curlurl" -o "$curloutput"
|
|
||||||
local EC=$?
|
|
||||||
if [ $EC -eq 0 ]; then
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Syntax: `getcurlsec <url to download> <username> <output file>`
|
|
||||||
|
|
||||||
|
|
||||||
## curl downloads file using given credentials
|
|
||||||
|
|
||||||
```
|
|
||||||
function getcurlsecwpassword {
|
|
||||||
|
|
||||||
local curlurl="$1"
|
|
||||||
local curluser="$2"
|
|
||||||
local curlpassword="$3"
|
|
||||||
local curloutput="$4"
|
|
||||||
curl --fail --user "$curluser":"$curlpassword" "$curlurl" -o "$curloutput"
|
|
||||||
local EC=$?
|
|
||||||
if [ $EC -eq 0 ]; then
|
|
||||||
echo "Password correct"
|
|
||||||
else
|
|
||||||
echo "Password incorrect"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Syntax: `getcurlsecwpassword <url to download> <username> <password> <output file>`
|
|
||||||
|
|
||||||
|
|
||||||
## curl keeps asking for password until correct, and stores username and password as var
|
|
||||||
|
|
||||||
```
|
|
||||||
function checkusercurl {
|
|
||||||
|
|
||||||
local curlurl="$1"
|
|
||||||
curluser="$2"
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
read -s -p "Enter password for user $curluser: " curlpassword
|
|
||||||
echo "";
|
|
||||||
curl -s --fail --user "$curluser":"$curlpassword" "$curlurl" -o /dev/null
|
|
||||||
local EC=$?
|
|
||||||
if [ $EC -eq 0 ]; then
|
|
||||||
echo "Password correct"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
echo "Incorrect password"
|
|
||||||
unset curlpassword
|
|
||||||
done
|
|
||||||
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Syntax: `checkusercurl <url to authenticate against> <username>`
|
|
||||||
username wil become var: curluser
|
|
||||||
password wil become var: $curlpassword
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
# Setup LXC on debian 10
|
|
||||||
|
|
||||||
Install packages and add unprivileged user
|
|
||||||
```
|
|
||||||
apt install lxc libvirt0 libpam-cgfs bridge-utils uidmap
|
|
||||||
useradd lxcuser
|
|
||||||
cat /etc/s*id|grep lxcuser
|
|
||||||
```
|
|
||||||
|
|
||||||
Put the following in /etc/default/lxc-net
|
|
||||||
```
|
|
||||||
USE_LXC_BRIDGE="true"
|
|
||||||
```
|
|
||||||
|
|
||||||
Put the following in /etc/lxc/default.conf
|
|
||||||
```
|
|
||||||
lxc.idmap = u 0 <Replace with output of cat> <Replace with output of cat>
|
|
||||||
lxc.idmap = g 0 <Replace with output of cat> <Replace with output of cat>
|
|
||||||
lxc.mount.auto = proc:mixed sys:ro cgroup:mixed
|
|
||||||
lxc.apparmor.profile = unconfined
|
|
||||||
lxc.apparmor.allow_nesting = 1
|
|
||||||
lxc.net.0.type = veth
|
|
||||||
lxc.net.0.link = lxcbr0
|
|
||||||
lxc.net.0.flags = up
|
|
||||||
lxc.net.0.hwaddr = 00:16:3e:xx:xx:xx
|
|
||||||
```
|
|
||||||
|
|
||||||
Give root acces to unprivileged user space
|
|
||||||
```
|
|
||||||
echo "root:<Replace with output of cat>:<Replace with output of cat>" >> /etc/subuid
|
|
||||||
echo "root:<Replace with output of cat>:<Replace with output of cat>" >> /etc/subgid
|
|
||||||
```
|
|
||||||
|
|
||||||
Enable and start lxc network service
|
|
||||||
```
|
|
||||||
systemctl enable --now lxc-net
|
|
||||||
```
|
|
||||||
enable unprivileged user namespaces for kernels < 5.10
|
|
||||||
```
|
|
||||||
echo kernel.unprivileged_userns_clone=1 >> /etc/sysctl.conf
|
|
||||||
sysctl -p
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
# Extra config KB
|
|
||||||
* Create Container `lxc-create -t download -n <CTName> -- -d debian -r buster -a amd64`
|
|
||||||
* Container config `/var/lib/lxc/<CTName>/config`
|
|
||||||
* add to Container config to start on boot `lxc.start.auto = 1`
|
|
||||||
* add to Container config for static ip
|
|
||||||
```
|
|
||||||
lxc.net.0.ipv4.address = 10.0.3.<IP>/24
|
|
||||||
lxc.net.0.ipv4.gateway = 10.0.3.1
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
# UFW forwarding
|
|
||||||
|
|
||||||
also dont forget to add the extenal port as allow rule
|
|
||||||
add to /etc/ufw/before.rules
|
|
||||||
|
|
||||||
to begin of file before *filter
|
|
||||||
```
|
|
||||||
*nat
|
|
||||||
:PREROUTING ACCEPT [0:0]
|
|
||||||
-A PREROUTING -i enp0s3 -p tcp --dport <extenal port> -j DNAT --to <ctip>:<internalport>
|
|
||||||
COMMIT
|
|
||||||
```
|
|
||||||
|
|
||||||
to end of file before last COMMIT
|
|
||||||
```
|
|
||||||
#LXC forwards
|
|
||||||
-A FORWARD -o lxcbr0 -j ACCEPT
|
|
||||||
-A FORWARD -i lxcbr0 -j ACCEPT
|
|
||||||
```
|
|
||||||
@@ -1,78 +0,0 @@
|
|||||||
## Prerequisites:
|
|
||||||
* A running jellyfin server on the master
|
|
||||||
|
|
||||||
## Step 1: Configuring Jellyfin and preparing the server
|
|
||||||
|
|
||||||
### Transcode temp folder
|
|
||||||
#### Sharing the the local trancode folder
|
|
||||||
Make the new trancode folder
|
|
||||||
```
|
|
||||||
mkdir /var/lib/jellyfin/transcoding-temp
|
|
||||||
```
|
|
||||||
NFS is the recomend way of sharing this folder, but SMB/CIFS shoud also work
|
|
||||||
```
|
|
||||||
apt -y install nfs-kernel-server
|
|
||||||
echo '/var/lib/jellyfin/transcoding-temp <Network IP>/24(rw,sync,no_subtree_check)' >> /etc/exports
|
|
||||||
systemctl restart nfs-kernel-server
|
|
||||||
```
|
|
||||||
Set the following setting in jellyfin "Transcode path" in the Playback settings to "/var/lib/jellyfin/transcoding-temp"
|
|
||||||
|
|
||||||
#### Useing a existing remote share trancode folder
|
|
||||||
Make sure the folder is mounted at"/var/lib/jellyfin/transcoding-temp"
|
|
||||||
Set the following setting in jellyfin "Transcode path" in the Playback settings to "/var/lib/jellyfin/transcoding-temp"
|
|
||||||
|
|
||||||
### Jellyfin user
|
|
||||||
Generating sshkey pair without password
|
|
||||||
```
|
|
||||||
sudo -u jellyfin mkdir -p /var/lib/jellyfin/.ssh
|
|
||||||
sudo -u jellyfin ssh-keygen -t rsa -f /var/lib/jellyfin/.ssh/id_rsa
|
|
||||||
```
|
|
||||||
Set the jellyfin user to login as bash in /etc/passwd
|
|
||||||
|
|
||||||
## Step 2: Install slave/render servers
|
|
||||||
|
|
||||||
### Getting info
|
|
||||||
Run `cat /etc/passwd | grep jellyfin:` to get user info, i will refer to it as `<JelUser>`
|
|
||||||
Run `cat /etc/group | grep jellyfin:`, to get group info, i will refer to it as `<JelGroup>`
|
|
||||||
Run `cat /var/lib/jellyfin/.ssh/id_rsa.pub` To get ssh-key for sending commands , i will refer to it as `<MasterPubKey>`
|
|
||||||
Get the ip of the master, i will refer to it as `<MasterIP>`
|
|
||||||
|
|
||||||
### Installing on the remote slave
|
|
||||||
Use the info you collected en follow "Slave-install.md"
|
|
||||||
```
|
|
||||||
sudo -u jellyfin ssh -i /var/lib/jellyfin/.ssh/id_rsa jellyfin@<SlaveIP>
|
|
||||||
```
|
|
||||||
When connected to the master exit the session with the slave server
|
|
||||||
Repeat these steps for all slave server
|
|
||||||
|
|
||||||
### Adding local system as slave
|
|
||||||
```
|
|
||||||
echo 'ssh-rsa <MasterPubKey>' | sudo -u jellyfin tee /var/lib/jellyfin/.ssh/authorized_keys
|
|
||||||
sudo -u jellyfin ssh -i /var/lib/jellyfin/.ssh/id_rsa jellyfin@localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
## Step 3: Installing rffmpeg
|
|
||||||
```
|
|
||||||
mkdir /etc/rffmpeg /opt/rffmpeg
|
|
||||||
wget https://raw.githubusercontent.com/joshuaboniface/rffmpeg/master/rffmpeg.yml.sample -O /etc/rffmpeg/rffmpeg.yml
|
|
||||||
wget https://raw.githubusercontent.com/joshuaboniface/rffmpeg/master/rffmpeg.py -O /opt/rffmpeg/rffmpeg.py
|
|
||||||
ln -s /usr/local/bin/rffmpeg.py /opt/rffmpeg/ffmpeg
|
|
||||||
ln -s /usr/local/bin/rffmpeg.py /opt/rffmpeg/ffprobe
|
|
||||||
```
|
|
||||||
## Step 3: Configuring rffmpeg
|
|
||||||
Add to the host section of /etc/rffmpeg/rffmpeg.yml
|
|
||||||
Example of the section in the config file
|
|
||||||
```
|
|
||||||
remote:
|
|
||||||
# A YAML list of remote hosts to connect to
|
|
||||||
hosts:
|
|
||||||
- 192.168.1.2
|
|
||||||
- 192.168.1.3
|
|
||||||
```
|
|
||||||
if you also want the local system to render add localhost or 127.0.0.1
|
|
||||||
|
|
||||||
|
|
||||||
## Step 4: Set jellyfin to use rffmpeg
|
|
||||||
Set the following setting in jellyfin "FFmpeg path" in the Playback settings to "/opt/rffmpeg/ffmpeg"
|
|
||||||
|
|
||||||
## Done
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
This Guide uses NFS for saring the Transcode tmp folder
|
|
||||||
This tool expects the media folder(s) to be mounted/located at same location as master(Jellyfin) server
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
## Prerequisites:
|
|
||||||
* You set up the master following Master-Install.md and have the information reddy
|
|
||||||
* A Clean install of ubuntu linux with ssh-server enabled
|
|
||||||
* The media folder accessible on the same location as the jellyfin server
|
|
||||||
|
|
||||||
## Step 1: Setting up the user
|
|
||||||
```
|
|
||||||
mkdir -p /var/lib/jellyfin/.ssh
|
|
||||||
echo "<JelUser>" >> /etc/passwd
|
|
||||||
echo "<JelGroup>" >> /etc/group
|
|
||||||
echo "jellyfin:*:17928:0:99999:7:::" >> /etc/shadow
|
|
||||||
```
|
|
||||||
Reboot the system just to make sure changes are piked up
|
|
||||||
|
|
||||||
```
|
|
||||||
echo '<MasterPubKey>' >> /var/lib/jellyfin/.ssh/authorized_keys
|
|
||||||
chmod 755 -R /var/lib/jellyfin/
|
|
||||||
chown -R jellyfin:jellyfin /var/lib/jellyfin/
|
|
||||||
```
|
|
||||||
|
|
||||||
## Step 2: setting up the Transcode temp folder
|
|
||||||
if you are not using NFS make sure the folder is mounted to "/var/lib/jellyfin/transcoding-temp" and skip the rest of step 2
|
|
||||||
|
|
||||||
### Setting up NFS Client
|
|
||||||
```
|
|
||||||
apt install nfs-common -y
|
|
||||||
mkdir -p /var/lib/jellyfin/transcoding-temp
|
|
||||||
chmod 777 /var/lib/jellyfin/transcoding-temp
|
|
||||||
echo '<MasterIP>:/var/lib/jellyfin/transcoding-temp /var/lib/jellyfin/transcoding-temp nfs defaults,vers=3,sync 0 0' >> /etc/fstab
|
|
||||||
sudo mount -a
|
|
||||||
```
|
|
||||||
|
|
||||||
## Step 3: Install the jellyfin version of ffmpeg
|
|
||||||
```
|
|
||||||
apt install apt-transport-https -y
|
|
||||||
add-apt-repository universe -y
|
|
||||||
wget -O - https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | sudo apt-key add -
|
|
||||||
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/ubuntu $( lsb_release -c -s ) main" >> /etc/apt/sources.list.d/jellyfin.list
|
|
||||||
apt update
|
|
||||||
apt install jellyfin-ffmpeg -y
|
|
||||||
```
|
|
||||||
## Done
|
|
||||||
Continue reading "Master-Install.md"
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
#Git update checker
|
|
||||||
## Will folow localy checked-out branch
|
|
||||||
## Make sure localy altered files (config,upload folder, etc) are setup in .gitignore
|
|
||||||
git remote update
|
|
||||||
|
|
||||||
UPSTREAM=${1:-'@{u}'}
|
|
||||||
LOCAL=$(git rev-parse @)
|
|
||||||
REMOTE=$(git rev-parse "$UPSTREAM")
|
|
||||||
BASE=$(git merge-base @ "$UPSTREAM")
|
|
||||||
|
|
||||||
if [ $LOCAL = $REMOTE ]; then
|
|
||||||
echo "Up-to-date"
|
|
||||||
elif [ $LOCAL = $BASE ]; then
|
|
||||||
echo "Update available, Pulling form git"
|
|
||||||
git pull
|
|
||||||
else
|
|
||||||
echo "Diverged"
|
|
||||||
fi
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#####################################################################
|
|
||||||
# @description: #
|
|
||||||
# Debian 10 to Debian 11 upgrade tool for basic debian 10 system #
|
|
||||||
# #
|
|
||||||
# @author: Bram Prieshof #
|
|
||||||
#####################################################################
|
|
||||||
|
|
||||||
#ScriptVars
|
|
||||||
UpgradeDist=deb11
|
|
||||||
InstalledOptions=("${SelectedOptions[@]}" "${EnabledAons[@]}")
|
|
||||||
Sysup2Date=no
|
|
||||||
|
|
||||||
#OS Detection
|
|
||||||
dist_ver=$(grep --color=never -Po "^VERSION_ID=\K.*" "/etc/os-release")
|
|
||||||
dist=$(grep --color=never -Po "^ID=\K.*" "/etc/os-release")
|
|
||||||
|
|
||||||
if [[ "${dist}" == *"debian"* ]] && [[ "${dist_ver}" == *"10"* ]]; then
|
|
||||||
CurDist=deb10
|
|
||||||
else
|
|
||||||
echo "This OS in not eligible for this upgrade"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
#PackageManager-config
|
|
||||||
PKGM=apt
|
|
||||||
PKGUC="$PKGM update"
|
|
||||||
PKGUP="$PKGM upgrade -y"
|
|
||||||
PKGI="${PKGM} install -y --no-install-recommends"
|
|
||||||
|
|
||||||
#Update current release
|
|
||||||
if [ $Sysup2Date = no ]; then
|
|
||||||
echo "The system will now update the packages for the current release"
|
|
||||||
read -r -s -p $'Press enter to continue, or ctrl+c to quit'
|
|
||||||
$PKGUC
|
|
||||||
DEBIAN_FRONTEND=noninteractive $PKGUP -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"
|
|
||||||
$PKGM dist-upgrade -y
|
|
||||||
$PKGM clean all
|
|
||||||
$PKGM autoremove -y
|
|
||||||
sed -i -e '/Sysup2Date=no/c\Sysup2Date=yes' "$0"
|
|
||||||
echo "The current release is up to date,"
|
|
||||||
echo "please reboot the system and re-run this scipt to continue"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "The system will now update the repositories to the new release and update all packages"
|
|
||||||
read -r -s -p $'Press enter to continue, or ctrl+c to quit'
|
|
||||||
|
|
||||||
#Update Debian repo's
|
|
||||||
sed -i -e 's/buster/bullseye/g' -e 's#http://security.debian.org/debian-security#https://deb.debian.org/debian-security#g' -e 's#http://security.debian.org#https://deb.debian.org/debian-security#g' -e 's#bullseye/updates#bullseye-security#g' /etc/apt/sources.list
|
|
||||||
#Update Hetzner mirrror repo's
|
|
||||||
sed -i -e 's/buster/bullseye/g' /etc/apt/sources.list.d/hetzner* -e 's#bullseye/updates#bullseye-security#g' /etc/apt/sources.list.d/hetzner*
|
|
||||||
|
|
||||||
#Running updates
|
|
||||||
$PKGM update
|
|
||||||
DEBIAN_FRONTEND=noninteractive $PKGUP --without-new-pkgs -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"
|
|
||||||
DEBIAN_FRONTEND=noninteractive $PKGM full-upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"
|
|
||||||
$PKGM autoremove -y
|
|
||||||
|
|
||||||
echo "Upgrade finished, please reboot the system"
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
###############################################################
|
|
||||||
# @description: #
|
|
||||||
# Add Custom rule to UFW for limiting ssh(4242/tcp) #
|
|
||||||
# #
|
|
||||||
# @author: Bram Prieshof #
|
|
||||||
###############################################################
|
|
||||||
|
|
||||||
#Sed in a function to detect line from $FindLine and insert the content of $AddLine on a new line above the match
|
|
||||||
UpdateFile () {
|
|
||||||
file="$1"
|
|
||||||
sed -i 's/'"$FindLine"'/'"$AddLine"'\n&/g' $file
|
|
||||||
unset FindLine AddLine
|
|
||||||
}
|
|
||||||
|
|
||||||
#Delete Existng SSH(4242/tcp) rule(s)
|
|
||||||
ufw delete limit 4242/tcp
|
|
||||||
|
|
||||||
#Add needed filters (IPv4)
|
|
||||||
FindLine="# End required lines"
|
|
||||||
AddLine=":ufw-user-limit - [0:0]\n:ufw-user-limit-accept - [0:0]"
|
|
||||||
UpdateFile /etc/ufw/after.rules
|
|
||||||
|
|
||||||
#Add needed filters (IPv6)
|
|
||||||
FindLine="# End required lines"
|
|
||||||
AddLine=":ufw6-user-limit - [0:0]\n:ufw6-user-limit-accept - [0:0]"
|
|
||||||
UpdateFile /etc/ufw/after6.rules
|
|
||||||
|
|
||||||
#Add custom SSH(4242/tcp) limit rule (IPv4)
|
|
||||||
FindLine="# don't delete the 'COMMIT' line or these rules won't be processed"
|
|
||||||
AddLine="### SSH limit tcp\n-A ufw-after-input -p tcp --dport 4242 -m conntrack --ctstate NEW -m recent --set\n-A ufw-after-input -p tcp --dport 4242 -m conntrack --ctstate NEW -m recent --update --seconds 30 --hitcount 15 -j ufw-user-limit\n-A ufw-after-input -p tcp --dport 4242 -j ufw-user-limit-accept\n"
|
|
||||||
UpdateFile /etc/ufw/after.rules
|
|
||||||
|
|
||||||
#Add custom SSH(4242/tcp) limit rule (IPv6)
|
|
||||||
FindLine="# don't delete the 'COMMIT' line or these rules won't be processed"
|
|
||||||
AddLine="### SSH limit tcp\n-A ufw6-after-input -p tcp --dport 4242 -m conntrack --ctstate NEW -m recent --set\n-A ufw6-after-input -p tcp --dport 4242 -m conntrack --ctstate NEW -m recent --update --seconds 30 --hitcount 15 -j ufw6-user-limit\n-A ufw6-after-input -p tcp --dport 4242 -j ufw6-user-limit-accept\n"
|
|
||||||
UpdateFile /etc/ufw/after6.rules
|
|
||||||
|
|
||||||
#Reload ufw rules
|
|
||||||
ufw reload
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
source /etc/os-release
|
|
||||||
|
|
||||||
#echo used Vars for testing only
|
|
||||||
echo $VERSION
|
|
||||||
|
|
||||||
#formaring $VERSION to a useable fromat
|
|
||||||
VERSION=$(echo $VERSION | grep -o '[0-9]\+.' | tr -d '\n')
|
|
||||||
|
|
||||||
#echo used Vars for testing only
|
|
||||||
echo $ID
|
|
||||||
echo $VERSION
|
|
||||||
|
|
||||||
#example if statement
|
|
||||||
|
|
||||||
if [ "$ID" = "debian" ]; then
|
|
||||||
echo "Execute Commands"
|
|
||||||
elif [ "$ID" = "ubuntu" ]; then
|
|
||||||
echo "Executue Ubuntu version detection"
|
|
||||||
if [[ "$VERSION" == "18.04"* ]]; then
|
|
||||||
echo "this ubuntu Ubuntu 18.04"
|
|
||||||
elif [[ "$VERSION" == "16.04"* ]]; then
|
|
||||||
echo "this ubuntu 16.04"
|
|
||||||
else
|
|
||||||
echo "this version of ubuntu is not yet supported"
|
|
||||||
fi
|
|
||||||
elif [ "$ID" = "centos" ]; then
|
|
||||||
echo "Executue Centos Commands"
|
|
||||||
elif [ "$ID" = "rhel" ]; then
|
|
||||||
echo "Executue Red hat enterpise Linux Commands"
|
|
||||||
else
|
|
||||||
echo "this OS is not yet supported"
|
|
||||||
fi
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
dist_ver=$(grep --color=never -Po "^VERSION_ID=\K.*" "/etc/os-release")
|
|
||||||
dist=$(grep --color=never -Po "^ID=\K.*" "/etc/os-release")
|
|
||||||
|
|
||||||
if [[ "${dist}" == *"ubuntu"* ]] && [[ "${dist_ver}" == *"18.04"* ]]; then
|
|
||||||
echo "Ubuntu 18.04 Detected"
|
|
||||||
shortdist=ubu1804
|
|
||||||
elif [[ "${dist}" == *"ubuntu"* ]] && [[ "${dist_ver}" == *"20.04"* ]]; then
|
|
||||||
echo "Ubuntu 20.04 Detected"
|
|
||||||
shortdist=ubu2004
|
|
||||||
elif [[ "${dist}" == *"debian"* ]] && [[ "${dist_ver}" == *"10"* ]]; then
|
|
||||||
echo "Debian 10 Detected"
|
|
||||||
shortdist=deb10
|
|
||||||
elif [[ "${dist}" == *"centos"* ]] && [[ "${dist_ver}" == *"8"* ]]; then
|
|
||||||
echo "Centos 8 Detected"
|
|
||||||
shortdist=cent10
|
|
||||||
else
|
|
||||||
echo "This OS in not supported"
|
|
||||||
fi
|
|
||||||
|
|
||||||
unset dist_ver
|
|
||||||
unset dist
|
|
||||||
@@ -1,215 +0,0 @@
|
|||||||
##----------##
|
|
||||||
# Menu #
|
|
||||||
##----------##
|
|
||||||
|
|
||||||
echo "Ubuntu 18.04 gitea install script."
|
|
||||||
echo "Domein without www:"
|
|
||||||
read domain
|
|
||||||
while true; do
|
|
||||||
read -p "Does www.${domain} exist in DNS -> yes/no?" yn
|
|
||||||
case $yn in
|
|
||||||
[Yy]* ) domainwww=1
|
|
||||||
break;;
|
|
||||||
[Nn]* ) domainwww=0
|
|
||||||
break;;
|
|
||||||
* ) echo "choose yes or no.";;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
echo "System password:"
|
|
||||||
read password
|
|
||||||
echo "Administrator email:"
|
|
||||||
read email
|
|
||||||
|
|
||||||
##----------------##
|
|
||||||
# Pre-Config #
|
|
||||||
##----------------##
|
|
||||||
|
|
||||||
apt install -y software-properties-common
|
|
||||||
add-apt-repository -y ppa:certbot/certbot
|
|
||||||
apt update
|
|
||||||
apt upgrade -y
|
|
||||||
apt install -y mysql-server nginx git
|
|
||||||
timedatectl set-timezone Europe/Amsterdam
|
|
||||||
sed -i 's/#/vm.swappiness=10/g' /etc/sysctl.conf
|
|
||||||
sed -i 's/#/vm.vfs_cache_pressure=50/g' /etc/sysctl.conf
|
|
||||||
sed -i 's/IPV6=yes/IPV6=no/g' /etc/default/ufw
|
|
||||||
sed -i "\$a0 3 * * 1 root apt update >/dev/null 2>&1&& apt upgrade -y >/dev/null 2>&1" /etc/crontab
|
|
||||||
systemctl restart cron
|
|
||||||
ufw allow OpenSSH
|
|
||||||
ufw allow 443/tcp
|
|
||||||
ufw allow 80/tcp
|
|
||||||
ufw limit ssh
|
|
||||||
echo "y" | ufw enable
|
|
||||||
|
|
||||||
##------------------##
|
|
||||||
# MySQL Config #
|
|
||||||
##------------------##
|
|
||||||
|
|
||||||
# mysql_secure_installation automated
|
|
||||||
mysqladmin -u root password "$password"
|
|
||||||
mysql -u root -p"$password" -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1')"
|
|
||||||
mysql -u root -p"$password" -e "DELETE FROM mysql.user WHERE User=''"
|
|
||||||
mysql -u root -p"$password" -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\_%'"
|
|
||||||
mysql -u root -p"$password" -e "SELECT user,authentication_string,plugin,host FROM mysql.user;"
|
|
||||||
mysql -u root -p"$password" -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '"$password"';"
|
|
||||||
mysql -u root -p"$password" -e "FLUSH PRIVILEGES;"
|
|
||||||
mysql -u root -p"$password" -e "SELECT user,authentication_string,plugin,host FROM mysql.user;"
|
|
||||||
|
|
||||||
rm /etc/mysql/my.cnf
|
|
||||||
cat > /etc/mysql/my.cnf <<- "EOF"
|
|
||||||
# - "/etc/mysql/my.cnf" to set global options,
|
|
||||||
[mysqld_safe]
|
|
||||||
socket = /var/run/mysqld/mysqld.sock
|
|
||||||
nice = 0
|
|
||||||
|
|
||||||
[mysqld]
|
|
||||||
user = mysql
|
|
||||||
pid-file = /var/run/mysqld/mysqld.pid
|
|
||||||
socket = /var/run/mysqld/mysqld.sock
|
|
||||||
port = 3306
|
|
||||||
basedir = /usr
|
|
||||||
datadir = /var/lib/mysql
|
|
||||||
tmpdir = /tmp
|
|
||||||
lc-messages-dir = /usr/share/mysql
|
|
||||||
skip-external-locking
|
|
||||||
|
|
||||||
innodb_buffer_pool_size = 1G # (adjust value here, 50%-70% of total RAM)
|
|
||||||
innodb_log_file_size = 256M
|
|
||||||
innodb_flush_log_at_trx_commit = 1 # may change to 2 or 0
|
|
||||||
innodb_flush_method = O_DIRECT
|
|
||||||
bind-address = 127.0.0.1
|
|
||||||
key_buffer_size = 16M
|
|
||||||
max_allowed_packet = 16M
|
|
||||||
thread_stack = 192K
|
|
||||||
thread_cache_size = 8
|
|
||||||
myisam-recover-options = BACKUP
|
|
||||||
#max_connections = 100
|
|
||||||
#table_open_cache = 64
|
|
||||||
#thread_concurrency = 10
|
|
||||||
query_cache_limit = 1M
|
|
||||||
query_cache_size = 16M
|
|
||||||
log_error = /var/log/mysql/error.log
|
|
||||||
expire_logs_days = 10
|
|
||||||
max_binlog_size = 100M
|
|
||||||
EOF
|
|
||||||
|
|
||||||
db_pass=$(date +%s|sha256sum|base64|head -c 32)
|
|
||||||
mysql -u root -p"$password" -e "CREATE DATABASE "giteadb" DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;"
|
|
||||||
mysql -u root -p"$password" -e "GRANT ALL ON "giteadb".* TO '"gitea"'@'localhost' IDENTIFIED BY '"$db_pass"';"
|
|
||||||
mysql -u root -p"$password" -e "FLUSH PRIVILEGES;"
|
|
||||||
echo $db_pass > ~/db-pass.txt
|
|
||||||
|
|
||||||
##------------------##
|
|
||||||
# Nginx Config #
|
|
||||||
##------------------##
|
|
||||||
|
|
||||||
cat <<EOF > /etc/nginx/sites-available/"$domain"
|
|
||||||
server {
|
|
||||||
server_name git.ictmaatwerk.com;
|
|
||||||
client_max_body_size 40M;
|
|
||||||
listen 80 ;
|
|
||||||
|
|
||||||
location / {
|
|
||||||
proxy_pass http://localhost:3000;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /.well-known {
|
|
||||||
alias /var/www/git.ictmaatwerk.com/.well-known;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
ln -s /etc/nginx/sites-available/"$domain" /etc/nginx/sites-enabled/
|
|
||||||
mkdir -p /var/www/"$domain"/html
|
|
||||||
chmod -R 755 /var/www
|
|
||||||
systemctl restart nginx
|
|
||||||
##-------------##
|
|
||||||
# Certbot #
|
|
||||||
##-------------##
|
|
||||||
apt install -y python-certbot-nginx
|
|
||||||
if [ $domainwww = 1 ]; then
|
|
||||||
certbot --nginx -n -d "$domain" -d "www.$domain" -m "$email" --hsts --redirect --no-eff-email --agree-tos
|
|
||||||
|
|
||||||
elif [ $domainwww = 0 ]; then
|
|
||||||
certbot --nginx -n -d "$domain" -m "$email" --hsts --redirect --no-eff-email --agree-tos
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
debconf-set-selections <<< "postfix postfix/mailname string $domain"
|
|
||||||
debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"
|
|
||||||
apt install -y mailutils
|
|
||||||
sed -i 's/#inet_interfaces = all/inet_interfaces = loopback-only/g' /etc/postfix/main.cf
|
|
||||||
sed -i 's/mydestination/#mydestination/g' /etc/postfix/main.cf
|
|
||||||
sed -i 's/relayhost =/mydestination = '$domain', localhost.'$domain', '$domain'/g' /etc/postfix/main.cf
|
|
||||||
cat <<EOF > /etc/aliases
|
|
||||||
# See man 5 aliases for format
|
|
||||||
postmaster: root
|
|
||||||
root: $email
|
|
||||||
EOF
|
|
||||||
newaliases
|
|
||||||
|
|
||||||
|
|
||||||
##-----------##
|
|
||||||
# gitea #
|
|
||||||
##-----------##
|
|
||||||
wget https://dl.gitea.io/gitea/1.7.0/gitea-1.7.0-linux-amd64 -O gitea
|
|
||||||
chmod +x gitea
|
|
||||||
|
|
||||||
adduser \
|
|
||||||
--system \
|
|
||||||
--shell /bin/bash \
|
|
||||||
--gecos 'Git Version Control' \
|
|
||||||
--group \
|
|
||||||
--disabled-password \
|
|
||||||
--home /home/git \
|
|
||||||
git
|
|
||||||
|
|
||||||
mkdir -p /var/lib/gitea/{custom,data,log}
|
|
||||||
chown -R git:git /var/lib/gitea/
|
|
||||||
chmod -R 750 /var/lib/gitea/
|
|
||||||
mkdir /etc/gitea
|
|
||||||
chown root:git /etc/gitea
|
|
||||||
chmod 770 /etc/gitea
|
|
||||||
mv gitea /usr/local/bin/gitea
|
|
||||||
|
|
||||||
cat <<EOF > /etc/systemd/system/gitea.service
|
|
||||||
[Unit]
|
|
||||||
Description=Gitea (Git with a cup of tea)
|
|
||||||
After=syslog.target
|
|
||||||
After=network.target
|
|
||||||
After=mysqld.service
|
|
||||||
#After=postgresql.service
|
|
||||||
#After=memcached.service
|
|
||||||
#After=redis.service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
# Modify these two values and uncomment them if you have
|
|
||||||
# repos with lots of files and get an HTTP error 500 because
|
|
||||||
# of that
|
|
||||||
###
|
|
||||||
#LimitMEMLOCK=infinity
|
|
||||||
#LimitNOFILE=65535
|
|
||||||
RestartSec=2s
|
|
||||||
Type=simple
|
|
||||||
User=git
|
|
||||||
Group=git
|
|
||||||
WorkingDirectory=/var/lib/gitea/
|
|
||||||
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
|
|
||||||
Restart=always
|
|
||||||
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
|
|
||||||
# If you want to bind Gitea to a port below 1024 uncomment
|
|
||||||
# the two values below
|
|
||||||
###
|
|
||||||
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
|
||||||
#AmbientCapabilities=CAP_NET_BIND_SERVICE
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo certbot --nginx -n -d "$domain" -m "$email" --hsts --redirect --no-eff-email --agree-tos > activatessl.sh
|
|
||||||
echo "Please put config here: /etc/gitea/app.ini"
|
|
||||||
echo "then run: systemctl enable gitea && systemctl start gitea"
|
|
||||||
echo "if service starts then reboot the system to finsh the installation"
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
service php-fpm53 stop
|
|
||||||
service php-fpm54 stop
|
|
||||||
service php-fpm55 stop
|
|
||||||
service php-fpm56 stop
|
|
||||||
service php-fpm70 stop
|
|
||||||
service php-fpm71 stop
|
|
||||||
service php-fpm72 stop
|
|
||||||
service php-fpm73 stop
|
|
||||||
service httpd stop
|
|
||||||
service nginx stop
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
curl https://uk.images.linuxcontainers.org/ | awk -F "</*td>|</*tr>" '/<\/*t[rd]>.*/ {print $3, $5, $7, $9, $11}' > /tmp/updatetimestapmps
|
|
||||||
|
|
||||||
#Debian 10 (Buster)
|
|
||||||
dbts=$(cat /tmp/updatetimestapmps | grep debian |grep buster |grep cloud| grep amd64 | awk '{ print $5 }')
|
|
||||||
wget https://uk.images.linuxcontainers.org/images/debian/buster/amd64/cloud/"$dbts"/rootfs.tar.xz -O /var/lib/vz/template/cache/DailyDebianBuster.tar.xz
|
|
||||||
|
|
||||||
#Ubuntu (Bionic Beaver)
|
|
||||||
ubts=$(cat /tmp/updatetimestapmps | grep ubuntu |grep bionic |grep cloud| grep amd64 | awk '{ print $5 }')
|
|
||||||
wget https://uk.images.linuxcontainers.org/images/ubuntu/bionic/amd64/cloud/"$ubts"/rootfs.tar.xz -O /var/lib/vz/template/cache/DailyUbuntuBionicBeaver.tar.xz
|
|
||||||
|
|
||||||
#Ubuntu 20.04 (FocalFossa)
|
|
||||||
ufts=$(cat /tmp/updatetimestapmps | grep ubuntu |grep focal |grep cloud| grep amd64 | awk '{ print $5 }')
|
|
||||||
wget https://uk.images.linuxcontainers.org/images/ubuntu/focal/amd64/cloud/"$ufts"/rootfs.tar.xz -O /var/lib/vz/template/cache/DailyUbuntuFocalFossa.tar.xz
|
|
||||||
|
|
||||||
#Centos 8
|
|
||||||
c8ts=$(cat /tmp/updatetimestapmps | grep "centos 8" | grep -v '8-Stream' |grep cloud| grep amd64 | awk '{ print $5 }')
|
|
||||||
wget https://uk.images.linuxcontainers.org/images/centos/8/amd64/cloud/"$c8ts"/rootfs.tar.xz -O /var/lib/vz/template/cache/DailyCentos8.tar.xz
|
|
||||||
|
|
||||||
#Alpine 3.12
|
|
||||||
alpine312=$(cat /tmp/updatetimestapmps | grep "alpine" | grep '3.12' |grep default| grep amd64 | awk '{ print $5 }')
|
|
||||||
wget https://uk.images.linuxcontainers.org/images/alpine/3.12/amd64/default/"$alpine312"/rootfs.tar.xz -O /var/lib/vz/template/cache/DailyAlpine3.12.tar.xz
|
|
||||||
|
|
||||||
rm /tmp/updatetimestapmps
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
service php-fpm53 restart
|
|
||||||
service php-fpm54 restart
|
|
||||||
service php-fpm55 restart
|
|
||||||
service php-fpm56 restart
|
|
||||||
service php-fpm70 restart
|
|
||||||
service php-fpm71 restart
|
|
||||||
service php-fpm72 restart
|
|
||||||
service php-fpm73 restart
|
|
||||||
service httpd restart
|
|
||||||
service nginx restart
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
service php-fpm53 status
|
|
||||||
service php-fpm54 status
|
|
||||||
service php-fpm55 status
|
|
||||||
service php-fpm56 status
|
|
||||||
service php-fpm70 status
|
|
||||||
service php-fpm71 status
|
|
||||||
service php-fpm72 status
|
|
||||||
service php-fpm73 status
|
|
||||||
service httpd status
|
|
||||||
service nginx status
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
service php-fpm53 start
|
|
||||||
service php-fpm54 start
|
|
||||||
service php-fpm55 start
|
|
||||||
service php-fpm56 start
|
|
||||||
service php-fpm70 start
|
|
||||||
service php-fpm71 start
|
|
||||||
service php-fpm72 start
|
|
||||||
service php-fpm73 start
|
|
||||||
service httpd start
|
|
||||||
service nginx start
|
|
||||||
@@ -1,168 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#########Tested on#########
|
|
||||||
## Debian 9(i386) ##
|
|
||||||
# Hp t5740e #
|
|
||||||
## Debian 9(amd64) ##
|
|
||||||
# Dell Optiplex Fx160 #
|
|
||||||
###########################
|
|
||||||
|
|
||||||
|
|
||||||
echo "Debian 9 Thin client install script."
|
|
||||||
echo "Full url including http(s)://:"
|
|
||||||
read url
|
|
||||||
|
|
||||||
|
|
||||||
apt update
|
|
||||||
|
|
||||||
# get software
|
|
||||||
apt install xorg chromium openbox lightdm nedit locales spacefm sudo gmessage unattended-upgrades plymouth plymouth-themes -y
|
|
||||||
|
|
||||||
# dir
|
|
||||||
mkdir -p /home/kiosk/.config/openbox
|
|
||||||
|
|
||||||
mkdir -p /home/kiosk/Bureaublad
|
|
||||||
# create group
|
|
||||||
groupadd kiosk
|
|
||||||
|
|
||||||
# create user if not exists
|
|
||||||
id -u kiosk &>/dev/null || useradd -m kiosk -g kiosk -s /bin/bash
|
|
||||||
|
|
||||||
# rights
|
|
||||||
chown -R kiosk:kiosk /home/kiosk
|
|
||||||
|
|
||||||
# create config
|
|
||||||
echo oldurl=${url} > /var/log/browserurl.log
|
|
||||||
|
|
||||||
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
|
|
||||||
|
|
||||||
wget https://git.ictmaatwerk.com/bprieshof/Linux-scripts/raw/branch/master/tc/config/gui/grub-4x3.png -O /usr/share/desktop-base/softwaves-theme/grub/grub-4x3.png
|
|
||||||
wget https://git.ictmaatwerk.com/bprieshof/Linux-scripts/raw/branch/master/tc/config/gui/grub-16x9.png -O /usr/share/desktop-base/softwaves-theme/grub/grub-16x9.png
|
|
||||||
wget https://git.ictmaatwerk.com/bprieshof/Linux-scripts/raw/branch/master/tc/config/gui/joy-ictm.tar.gz -O /tmp/joy-ictm.tar.gz
|
|
||||||
tar -zxf /tmp/joy-ictm.tar.gz -C /usr/share/plymouth/themes/
|
|
||||||
|
|
||||||
sed -i 's|GRUB_TIMEOUT=5|GRUB_TIMEOUT=1|g' /etc/default/grub
|
|
||||||
sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT="quiet"|GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"|g' /etc/default/grub
|
|
||||||
update-grub
|
|
||||||
plymouth-set-default-theme -R joy-ictm
|
|
||||||
|
|
||||||
wget https://git.ictmaatwerk.com/bprieshof/Linux-scripts/raw/branch/master/tc/config/20auto-upgrades -O /etc/apt/apt.conf.d/20auto-upgrades
|
|
||||||
wget https://git.ictmaatwerk.com/bprieshof/Linux-scripts/raw/branch/master/tc/config/50unattended-upgrades -O /etc/apt/apt.conf.d/50unattended-upgrades
|
|
||||||
|
|
||||||
if [ -e "/etc/lightdm/lightdm.conf" ]; then
|
|
||||||
mv /etc/lightdm/lightdm.conf /etc/lightdm/lightdm.conf.backup
|
|
||||||
fi
|
|
||||||
cat > /etc/lightdm/lightdm.conf << EOF
|
|
||||||
[SeatDefaults]
|
|
||||||
autologin-user=kiosk
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# create autostart
|
|
||||||
if [ -e "/home/kiosk/.config/openbox/autostart" ]; then
|
|
||||||
mv /home/kiosk/.config/openbox/autostart /home/kiosk/.config/openbox/autostart.backup
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat > /home/kiosk/.config/openbox/autostart << EOF
|
|
||||||
#!/bin/bash
|
|
||||||
sleep 1; spacefm --desktop &
|
|
||||||
chromium \
|
|
||||||
--no-first-run \
|
|
||||||
--disable \
|
|
||||||
--disable-translate \
|
|
||||||
--disable-infobars \
|
|
||||||
--disable-suggestions-service \
|
|
||||||
--disable-save-password-bubble \
|
|
||||||
--disable-session-crashed-bubble \
|
|
||||||
--incognito \
|
|
||||||
"${url}"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
#creating app files
|
|
||||||
|
|
||||||
cat > /home/kiosk/Bureaublad/chromium.desktop << EOF
|
|
||||||
[Desktop Entry]
|
|
||||||
Version=1.0
|
|
||||||
Name=Chromium
|
|
||||||
GenericName=Web Browser
|
|
||||||
GenericName[nl]=Webbrowser
|
|
||||||
Comment=Access the Internet
|
|
||||||
Comment[nl]=Verbinding maken met internet
|
|
||||||
Exec=/usr/bin/chromium --no-first-run --disable --disable-translate --disable-infobars --disable-suggestions-service --disable-save-password-bubble --disable-session-crashed-bubble --incognito ${url}
|
|
||||||
Terminal=false
|
|
||||||
X-MultipleArgs=false
|
|
||||||
Type=Application
|
|
||||||
Icon=chromium.png
|
|
||||||
Categories=Network;WebBrowser;
|
|
||||||
MimeType=text/html;text/xml;application/xhtml_xml;application/x-mimearchive;x-scheme-handler/http;x-scheme-handler/https;
|
|
||||||
StartupWMClass=chromium
|
|
||||||
StartupNotify=true
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat > /home/kiosk/Bureaublad/nedit.desktop << EOF
|
|
||||||
[Desktop Entry]
|
|
||||||
Version=1.0
|
|
||||||
Name=NEdit
|
|
||||||
Name[en]=NEdit
|
|
||||||
Name[nl]=NEdit
|
|
||||||
Exec=nedit-nc %F
|
|
||||||
Icon=nedit
|
|
||||||
Terminal=false
|
|
||||||
Type=Application
|
|
||||||
MimeType=text/plain;
|
|
||||||
Categories=Motif;Utility;TextTools;
|
|
||||||
Keywords=Customizable;Scripts;Powerful;
|
|
||||||
GenericName=Text Editor
|
|
||||||
GenericName[en]=Text Editor
|
|
||||||
GenericName[nl]=Tekstverwerker
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat > /home/kiosk/Bureaublad/shutdown.desktop << EOF
|
|
||||||
[Desktop Entry]
|
|
||||||
Encoding=UTF-8
|
|
||||||
Version=1.0
|
|
||||||
Type=Application
|
|
||||||
Terminal=false
|
|
||||||
Exec=shutdown-menu
|
|
||||||
Name=Shutdown
|
|
||||||
Icon=/usr/share/icons/Adwaita/64x64/actions/system-shutdown-symbolic.symbolic.png
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cp -r /home/kiosk/Bureaublad/ /home/kiosk/Desktop
|
|
||||||
|
|
||||||
# rights for apps folder
|
|
||||||
chown -R kiosk:kiosk /home/kiosk/Bureaublad
|
|
||||||
chown -R kiosk:kiosk /home/kiosk/Desktop
|
|
||||||
|
|
||||||
|
|
||||||
# setting user power privileges
|
|
||||||
cat > /etc/sudoers.d/powerctl << EOF
|
|
||||||
# Cmnd alias specification
|
|
||||||
Cmnd_Alias SHUTDOWN = /sbin/shutdown
|
|
||||||
Cmnd_Alias REBOOT = /sbin/reboot
|
|
||||||
|
|
||||||
# User privilege specification
|
|
||||||
kiosk ALL=SHUTDOWN
|
|
||||||
kiosk ALL=NOPASSWD: SHUTDOWN
|
|
||||||
kiosk ALL=REBOOT
|
|
||||||
kiosk ALL=NOPASSWD: REBOOT
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat > /usr/bin/shutdown-menu << EOF
|
|
||||||
gmessage "Weet u zeker dat u de computer wilt afsluiten?" -center -title "Shutdown" -font "Sans bold 10" -default "Cancel" -buttons "_Annuleren":1,"_Opnieuw opstarten":3,"_Afsluiten":4 >/dev/null
|
|
||||||
|
|
||||||
case \$? in
|
|
||||||
1)
|
|
||||||
echo "Exit";;
|
|
||||||
3)
|
|
||||||
pkill spacefm
|
|
||||||
sudo shutdown -r now;;
|
|
||||||
4)
|
|
||||||
pkill spacefm
|
|
||||||
sudo shutdown -h now;;
|
|
||||||
esac
|
|
||||||
EOF
|
|
||||||
chmod 775 /usr/bin/shutdown-menu
|
|
||||||
|
|
||||||
wget https://git.ictmaatwerk.com/bprieshof/Linux-scripts/raw/branch/master/tc/update-url.sh -O /root/update-url.sh
|
|
||||||
|
|
||||||
echo "Done!"
|
|
||||||
@@ -1,176 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#######Made for:#######
|
|
||||||
## Debian 9 ##
|
|
||||||
# Hp t510 #
|
|
||||||
#######################
|
|
||||||
|
|
||||||
echo "Debian 9 Thin client install script."
|
|
||||||
echo "Full url including http(s)://:"
|
|
||||||
read url
|
|
||||||
|
|
||||||
apt-get update
|
|
||||||
|
|
||||||
|
|
||||||
# get software
|
|
||||||
apt-get install xorg chromium openbox lightdm nedit locales spacefm sudo gmessage unattended-upgrades plymouth plymouth-themes xserver-xorg-video-openchrome -y
|
|
||||||
|
|
||||||
# dir
|
|
||||||
mkdir -p /home/kiosk/.config/openbox
|
|
||||||
mkdir -p /home/kiosk/Bureaublad
|
|
||||||
|
|
||||||
# create group
|
|
||||||
groupadd kiosk
|
|
||||||
|
|
||||||
# create user if not exists
|
|
||||||
id -u kiosk &>/dev/null || useradd -m kiosk -g kiosk -s /bin/bash
|
|
||||||
|
|
||||||
# rights
|
|
||||||
chown -R kiosk:kiosk /home/kiosk
|
|
||||||
|
|
||||||
# create config
|
|
||||||
echo oldurl=${url} > /var/log/browserurl.log
|
|
||||||
|
|
||||||
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
|
|
||||||
|
|
||||||
wget https://git.ictmaatwerk.com/bprieshof/Linux-scripts/raw/branch/master/tc/config/gui/grub-4x3.png -O /usr/share/desktop-base/softwaves-theme/grub/grub-4x3.png
|
|
||||||
wget https://git.ictmaatwerk.com/bprieshof/Linux-scripts/raw/branch/master/tc/config/gui/grub-16x9.png -O /usr/share/desktop-base/softwaves-theme/grub/grub-16x9.png
|
|
||||||
wget https://git.ictmaatwerk.com/bprieshof/Linux-scripts/raw/branch/master/tc/config/gui/joy-ictm.tar.gz -O /tmp/joy-ictm.tar.gz
|
|
||||||
tar -zxf /tmp/joy-ictm.tar.gz -C /usr/share/plymouth/themes/
|
|
||||||
|
|
||||||
sed -i 's|GRUB_TIMEOUT=5|GRUB_TIMEOUT=1|g' /etc/default/grub
|
|
||||||
sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT="quiet"|GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"|g' /etc/default/grub
|
|
||||||
update-grub
|
|
||||||
plymouth-set-default-theme -R joy-ictm
|
|
||||||
|
|
||||||
|
|
||||||
wget https://git.ictmaatwerk.com/bprieshof/Linux-scripts/raw/branch/master/tc/config/20auto-upgrades -O /etc/apt/apt.conf.d/20auto-upgrades
|
|
||||||
wget https://git.ictmaatwerk.com/bprieshof/Linux-scripts/raw/branch/master/tc/config/50unattended-upgrades -O /etc/apt/apt.conf.d/50unattended-upgrades
|
|
||||||
|
|
||||||
if [ -e "/etc/lightdm/lightdm.conf" ]; then
|
|
||||||
mv /etc/lightdm/lightdm.conf /etc/lightdm/lightdm.conf.backup
|
|
||||||
fi
|
|
||||||
cat > /etc/lightdm/lightdm.conf << EOF
|
|
||||||
[SeatDefaults]
|
|
||||||
autologin-user=kiosk
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# create autostart
|
|
||||||
if [ -e "/home/kiosk/.config/openbox/autostart" ]; then
|
|
||||||
mv /home/kiosk/.config/openbox/autostart /home/kiosk/.config/openbox/autostart.backup
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat > /home/kiosk/.config/openbox/autostart << EOF
|
|
||||||
#!/bin/bash
|
|
||||||
sleep 1; spacefm --desktop &
|
|
||||||
chromium \
|
|
||||||
--no-first-run \
|
|
||||||
--disable \
|
|
||||||
--disable-translate \
|
|
||||||
--disable-infobars \
|
|
||||||
--disable-suggestions-service \
|
|
||||||
--disable-save-password-bubble \
|
|
||||||
--disable-session-crashed-bubble \
|
|
||||||
--incognito \
|
|
||||||
"${url}"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
#creating app files
|
|
||||||
|
|
||||||
cat > /home/kiosk/Bureaublad/chromium.desktop << EOF
|
|
||||||
[Desktop Entry]
|
|
||||||
Version=1.0
|
|
||||||
Name=Chromium
|
|
||||||
GenericName=Web Browser
|
|
||||||
GenericName[nl]=Webbrowser
|
|
||||||
Comment=Access the Internet
|
|
||||||
Comment[nl]=Verbinding maken met internet
|
|
||||||
Exec=/usr/bin/chromium --no-first-run --disable --disable-translate --disable-infobars --disable-suggestions-service --disable-save-password-bubble --disable-session-crashed-bubble --incognito ${url}
|
|
||||||
Terminal=false
|
|
||||||
X-MultipleArgs=false
|
|
||||||
Type=Application
|
|
||||||
Icon=chromium.png
|
|
||||||
Categories=Network;WebBrowser;
|
|
||||||
MimeType=text/html;text/xml;application/xhtml_xml;application/x-mimearchive;x-scheme-handler/http;x-scheme-handler/https;
|
|
||||||
StartupWMClass=chromium
|
|
||||||
StartupNotify=true
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat > /home/kiosk/Bureaublad/nedit.desktop << EOF
|
|
||||||
[Desktop Entry]
|
|
||||||
Version=1.0
|
|
||||||
Name=NEdit
|
|
||||||
Name[en]=NEdit
|
|
||||||
Name[nl]=NEdit
|
|
||||||
Exec=nedit-nc %F
|
|
||||||
Icon=nedit
|
|
||||||
Terminal=false
|
|
||||||
Type=Application
|
|
||||||
MimeType=text/plain;
|
|
||||||
Categories=Motif;Utility;TextTools;
|
|
||||||
Keywords=Customizable;Scripts;Powerful;
|
|
||||||
GenericName=Text Editor
|
|
||||||
GenericName[en]=Text Editor
|
|
||||||
GenericName[nl]=Tekstverwerker
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat > /home/kiosk/Bureaublad/shutdown.desktop << EOF
|
|
||||||
[Desktop Entry]
|
|
||||||
Encoding=UTF-8
|
|
||||||
Version=1.0
|
|
||||||
Type=Application
|
|
||||||
Terminal=false
|
|
||||||
Exec=shutdown-menu
|
|
||||||
Name=Shutdown
|
|
||||||
Icon=/usr/share/icons/Adwaita/64x64/actions/system-shutdown-symbolic.symbolic.png
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cp -r /home/kiosk/Bureaublad/ /home/kiosk/Desktop
|
|
||||||
|
|
||||||
# rights for apps folder
|
|
||||||
chown -R kiosk:kiosk /home/kiosk/Bureaublad
|
|
||||||
chown -R kiosk:kiosk /home/kiosk/Desktop
|
|
||||||
|
|
||||||
|
|
||||||
# setting user power privileges
|
|
||||||
cat > /etc/sudoers.d/powerctl << EOF
|
|
||||||
# Cmnd alias specification
|
|
||||||
Cmnd_Alias SHUTDOWN = /sbin/shutdown
|
|
||||||
Cmnd_Alias REBOOT = /sbin/reboot
|
|
||||||
|
|
||||||
# User privilege specification
|
|
||||||
kiosk ALL=SHUTDOWN
|
|
||||||
kiosk ALL=NOPASSWD: SHUTDOWN
|
|
||||||
kiosk ALL=REBOOT
|
|
||||||
kiosk ALL=NOPASSWD: REBOOT
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat > /usr/bin/shutdown-menu << EOF
|
|
||||||
gmessage "Weet u zeker dat u de computer wilt afsluiten?" -center -title "Shutdown" -font "Sans bold 10" -default "Cancel" -buttons "_Annuleren":1,"_Opnieuw opstarten":3,"_Afsluiten":4 >/dev/null
|
|
||||||
|
|
||||||
case \$? in
|
|
||||||
1)
|
|
||||||
echo "Exit";;
|
|
||||||
3)
|
|
||||||
pkill spacefm
|
|
||||||
sudo shutdown -r now;;
|
|
||||||
4)
|
|
||||||
pkill spacefm
|
|
||||||
sudo shutdown -h now;;
|
|
||||||
esac
|
|
||||||
EOF
|
|
||||||
chmod 775 /usr/bin/shutdown-menu
|
|
||||||
|
|
||||||
|
|
||||||
wget https://git.ictmaatwerk.com/bprieshof/Linux-scripts/raw/branch/master/tc/update-url.sh -O /root/update-url.sh
|
|
||||||
|
|
||||||
cat > /etc/modprobe.d/blacklist-framebuffer.conf << EOF
|
|
||||||
blacklist tridentfb
|
|
||||||
blacklist vesafb
|
|
||||||
blacklist vfb
|
|
||||||
blacklist viafb
|
|
||||||
blacklist vt8623fb
|
|
||||||
blacklist udlfb
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "Done!"
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
APT::Periodic::Update-Package-Lists "1";
|
|
||||||
APT::Periodic::Download-Upgradeable-Packages "1";
|
|
||||||
APT::Periodic::AutocleanInterval "7";
|
|
||||||
APT::Periodic::Unattended-Upgrade "1";
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
APT::Periodic::Update-Package-Lists "1";
|
|
||||||
APT::Periodic::Download-Upgradeable-Packages "1";
|
|
||||||
APT::Periodic::AutocleanInterval "7";
|
|
||||||
APT::Periodic::Unattended-Upgrade "1";
|
|
||||||
Unattended-Upgrade::Mail "root";
|
|
||||||
|
|
||||||
// Automatically upgrade packages from these
|
|
||||||
Unattended-Upgrade::Origins-Pattern {
|
|
||||||
"o=Debian,a=stable";
|
|
||||||
"o=Debian,a=stable-updates";
|
|
||||||
"o=Debian,a=proposed-updates";
|
|
||||||
"origin=Debian,codename=${distro_codename},label=Debian-Security";
|
|
||||||
};
|
|
||||||
|
|
||||||
// You can specify your own packages to NOT automatically upgrade here
|
|
||||||
Unattended-Upgrade::Package-Blacklist {
|
|
||||||
// "vim";
|
|
||||||
// "libc6";
|
|
||||||
// "libc6-dev";
|
|
||||||
// "libc6-i686";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
Unattended-Upgrade::MailOnlyOnError "false";
|
|
||||||
Unattended-Upgrade::Automatic-Reboot "false";
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 892 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 179 KiB |
Binary file not shown.
@@ -1,277 +0,0 @@
|
|||||||
#### Contents of the preconfiguration file (for stretch)
|
|
||||||
### Localization
|
|
||||||
# Preseeding only locale sets language, country and locale.
|
|
||||||
#d-i debian-installer/locale string en_US
|
|
||||||
|
|
||||||
# The values can also be preseeded individually for greater flexibility.
|
|
||||||
d-i debian-installer/language string nl
|
|
||||||
d-i debian-installer/country string NL
|
|
||||||
d-i debian-installer/locale string nl_NL.UTF-8
|
|
||||||
# Optionally specify additional locales to be generated.
|
|
||||||
#d-i localechooser/supported-locales multiselect en_US.UTF-8, nl_NL.UTF-8
|
|
||||||
|
|
||||||
# Keyboard selection.
|
|
||||||
d-i keyboard-configuration/xkb-keymap select us
|
|
||||||
# d-i keyboard-configuration/toggle select No toggling
|
|
||||||
|
|
||||||
### Network configuration
|
|
||||||
# Disable network configuration entirely. This is useful for cdrom
|
|
||||||
# installations on non-networked devices where the network questions,
|
|
||||||
# warning and long timeouts are a nuisance.
|
|
||||||
#d-i netcfg/enable boolean false
|
|
||||||
|
|
||||||
# netcfg will choose an interface that has link if possible. This makes it
|
|
||||||
# skip displaying a list if there is more than one interface.
|
|
||||||
d-i netcfg/choose_interface select auto
|
|
||||||
|
|
||||||
# To pick a particular interface instead:
|
|
||||||
#d-i netcfg/choose_interface select eth1
|
|
||||||
|
|
||||||
# To set a different link detection timeout (default is 3 seconds).
|
|
||||||
# Values are interpreted as seconds.
|
|
||||||
#d-i netcfg/link_wait_timeout string 10
|
|
||||||
|
|
||||||
# If you have a slow dhcp server and the installer times out waiting for
|
|
||||||
# it, this might be useful.
|
|
||||||
#d-i netcfg/dhcp_timeout string 60
|
|
||||||
#d-i netcfg/dhcpv6_timeout string 60
|
|
||||||
|
|
||||||
# If you prefer to configure the network manually, uncomment this line and
|
|
||||||
# the static network configuration below.
|
|
||||||
#d-i netcfg/disable_autoconfig boolean true
|
|
||||||
|
|
||||||
|
|
||||||
# Any hostname and domain names assigned from dhcp take precedence over
|
|
||||||
# values set here. However, setting the values still prevents the questions
|
|
||||||
# from being shown, even if values come from dhcp.
|
|
||||||
d-i netcfg/get_hostname string Thin-Client
|
|
||||||
d-i netcfg/get_domain string
|
|
||||||
|
|
||||||
# If you want to force a hostname, regardless of what either the DHCP
|
|
||||||
# server returns or what the reverse DNS entry for the IP is, uncomment
|
|
||||||
# and adjust the following line.
|
|
||||||
#d-i netcfg/hostname string somehost
|
|
||||||
|
|
||||||
# Disable that annoying WEP key dialog.
|
|
||||||
d-i netcfg/wireless_wep string
|
|
||||||
# The wacky dhcp hostname that some ISPs use as a password of sorts.
|
|
||||||
#d-i netcfg/dhcp_hostname string radish
|
|
||||||
|
|
||||||
# If non-free firmware is needed for the network or other hardware, you can
|
|
||||||
# configure the installer to always try to load it, without prompting. Or
|
|
||||||
# change to false to disable asking.
|
|
||||||
#d-i hw-detect/load_firmware boolean true
|
|
||||||
|
|
||||||
### Network console
|
|
||||||
# Use the following settings if you wish to make use of the network-console
|
|
||||||
# component for remote installation over SSH. This only makes sense if you
|
|
||||||
# intend to perform the remainder of the installation manually.
|
|
||||||
#d-i anna/choose_modules string network-console
|
|
||||||
#d-i network-console/authorized_keys_url string http://10.0.0.1/openssh-key
|
|
||||||
#d-i network-console/password password r00tme
|
|
||||||
#d-i network-console/password-again password r00tme
|
|
||||||
|
|
||||||
### Mirror settings
|
|
||||||
# If you select ftp, the mirror/country string does not need to be set.
|
|
||||||
#d-i mirror/protocol string ftp
|
|
||||||
d-i mirror/country string manual
|
|
||||||
d-i mirror/http/hostname string ftp.nl.debian.org
|
|
||||||
d-i mirror/http/directory string /debian
|
|
||||||
d-i mirror/http/proxy string
|
|
||||||
|
|
||||||
# Suite to install.
|
|
||||||
#d-i mirror/suite string testing
|
|
||||||
# Suite to use for loading installer components (optional).
|
|
||||||
#d-i mirror/udeb/suite string testing
|
|
||||||
|
|
||||||
### Account setup
|
|
||||||
# Skip creation of a root account (normal user account will be able to
|
|
||||||
# use sudo).
|
|
||||||
#d-i passwd/root-login boolean false
|
|
||||||
# Alternatively, to skip creation of a normal user account.
|
|
||||||
d-i passwd/make-user boolean false
|
|
||||||
|
|
||||||
# Root password, either in clear text
|
|
||||||
#d-i passwd/root-password password r00tme
|
|
||||||
#d-i passwd/root-password-again password r00tme
|
|
||||||
# or encrypted using a crypt(3) hash.
|
|
||||||
#d-i passwd/root-password-crypted password [crypt(3) hash]
|
|
||||||
|
|
||||||
|
|
||||||
### Clock and time zone setup
|
|
||||||
# Controls whether or not the hardware clock is set to UTC.
|
|
||||||
d-i clock-setup/utc boolean true
|
|
||||||
|
|
||||||
# You may set this to any valid setting for $TZ; see the contents of
|
|
||||||
# /usr/share/zoneinfo/ for valid values.
|
|
||||||
d-i time/zone string Europe/Amsterdam
|
|
||||||
|
|
||||||
# Controls whether to use NTP to set the clock during the install
|
|
||||||
d-i clock-setup/ntp boolean true
|
|
||||||
# NTP server to use. The default is almost always fine here.
|
|
||||||
#d-i clock-setup/ntp-server string ntp.example.com
|
|
||||||
|
|
||||||
### Partitioning
|
|
||||||
## Partitioning example
|
|
||||||
# If the system has free space you can choose to only partition that space.
|
|
||||||
# This is only honoured if partman-auto/method (below) is not set.
|
|
||||||
#d-i partman-auto/init_automatically_partition select biggest_free
|
|
||||||
|
|
||||||
# Alternatively, you may specify a disk to partition. If the system has only
|
|
||||||
# one disk the installer will default to using that, but otherwise the device
|
|
||||||
# name must be given in traditional, non-devfs format (so e.g. /dev/sda
|
|
||||||
# and not e.g. /dev/discs/disc0/disc).
|
|
||||||
# For example, to use the first SCSI/SATA hard disk:
|
|
||||||
#d-i partman-auto/disk string /dev/sda
|
|
||||||
# In addition, you'll need to specify the method to use.
|
|
||||||
# The presently available methods are:
|
|
||||||
# - regular: use the usual partition types for your architecture
|
|
||||||
# - lvm: use LVM to partition the disk
|
|
||||||
# - crypto: use LVM within an encrypted partition
|
|
||||||
d-i partman-auto/method string regular
|
|
||||||
|
|
||||||
# If one of the disks that are going to be automatically partitioned
|
|
||||||
# contains an old LVM configuration, the user will normally receive a
|
|
||||||
# warning. This can be preseeded away...
|
|
||||||
#d-i partman-lvm/device_remove_lvm boolean true
|
|
||||||
# The same applies to pre-existing software RAID array:
|
|
||||||
d-i partman-md/device_remove_md boolean true
|
|
||||||
# And the same goes for the confirmation to write the lvm partitions.
|
|
||||||
d-i partman-lvm/confirm boolean true
|
|
||||||
d-i partman-lvm/confirm_nooverwrite boolean true
|
|
||||||
|
|
||||||
# You can choose one of the three predefined partitioning recipes:
|
|
||||||
# - atomic: all files in one partition
|
|
||||||
# - home: separate /home partition
|
|
||||||
# - multi: separate /home, /var, and /tmp partitions
|
|
||||||
d-i partman-auto/choose_recipe select atomic
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# This makes partman automatically partition without confirmation.
|
|
||||||
d-i partman-md/confirm boolean true
|
|
||||||
d-i partman-partitioning/confirm_write_new_label boolean true
|
|
||||||
d-i partman/choose_partition select finish
|
|
||||||
d-i partman/confirm boolean true
|
|
||||||
d-i partman/confirm_nooverwrite boolean true
|
|
||||||
|
|
||||||
## Controlling how partitions are mounted
|
|
||||||
# The default is to mount by UUID, but you can also choose "traditional" to
|
|
||||||
# use traditional device names, or "label" to try filesystem labels before
|
|
||||||
# falling back to UUIDs.
|
|
||||||
#d-i partman/mount_style select uuid
|
|
||||||
|
|
||||||
### Base system installation
|
|
||||||
# Configure APT to not install recommended packages by default. Use of this
|
|
||||||
# option can result in an incomplete system and should only be used by very
|
|
||||||
# experienced users.
|
|
||||||
#d-i base-installer/install-recommends boolean false
|
|
||||||
|
|
||||||
# The kernel image (meta) package to be installed; "none" can be used if no
|
|
||||||
# kernel is to be installed.
|
|
||||||
#d-i base-installer/kernel/image string linux-image-686
|
|
||||||
|
|
||||||
### Apt setup
|
|
||||||
# You can choose to install non-free and contrib software.
|
|
||||||
d-i apt-setup/non-free boolean true
|
|
||||||
d-i apt-setup/contrib boolean true
|
|
||||||
|
|
||||||
# Uncomment this to add multiarch configuration for i386
|
|
||||||
#d-i apt-setup/multiarch string i386
|
|
||||||
|
|
||||||
|
|
||||||
### Package selection
|
|
||||||
tasksel tasksel/first multiselect standard
|
|
||||||
|
|
||||||
# Individual additional packages to install
|
|
||||||
d-i pkgsel/include string openssh-server xorg chromium openbox lightdm nedit locales spacefm sudo gmessage unattended-upgrades plymouth plymouth-themes
|
|
||||||
|
|
||||||
# Some versions of the installer can report back on what software you have
|
|
||||||
# installed, and what software you use. The default is not to report back,
|
|
||||||
# but sending reports helps the project determine what software is most
|
|
||||||
# popular and include it on CDs.
|
|
||||||
#popularity-contest popularity-contest/participate boolean false
|
|
||||||
|
|
||||||
### Boot loader installation
|
|
||||||
# Grub is the default boot loader (for x86). If you want lilo installed
|
|
||||||
# instead, uncomment this:
|
|
||||||
#d-i grub-installer/skip boolean true
|
|
||||||
# To also skip installing lilo, and install no bootloader, uncomment this
|
|
||||||
# too:
|
|
||||||
#d-i lilo-installer/skip boolean true
|
|
||||||
|
|
||||||
|
|
||||||
# This is fairly safe to set, it makes grub install automatically to the MBR
|
|
||||||
# if no other operating system is detected on the machine.
|
|
||||||
###d-i grub-installer/only_debian boolean true
|
|
||||||
|
|
||||||
# This one makes grub-installer install to the MBR if it also finds some other
|
|
||||||
# OS, which is less safe as it might not be able to boot that other OS.
|
|
||||||
###d-i grub-installer/with_other_os boolean true
|
|
||||||
|
|
||||||
# Due notably to potential USB sticks, the location of the MBR can not be
|
|
||||||
# determined safely in general, so this needs to be specified:
|
|
||||||
#d-i grub-installer/bootdev string /dev/sda
|
|
||||||
# To install to the first device (assuming it is not a USB stick):
|
|
||||||
#d-i grub-installer/bootdev string default
|
|
||||||
|
|
||||||
|
|
||||||
# Use the following option to add additional boot parameters for the
|
|
||||||
# installed system (if supported by the bootloader installer).
|
|
||||||
# Note: options passed to the installer will be added automatically.
|
|
||||||
#d-i debian-installer/add-kernel-opts string nousb
|
|
||||||
|
|
||||||
### Finishing up the installation
|
|
||||||
# During installations from serial console, the regular virtual consoles
|
|
||||||
# (VT1-VT6) are normally disabled in /etc/inittab. Uncomment the next
|
|
||||||
# line to prevent this.
|
|
||||||
#d-i finish-install/keep-consoles boolean true
|
|
||||||
|
|
||||||
# Avoid that last message about the install being complete.
|
|
||||||
d-i finish-install/reboot_in_progress note
|
|
||||||
|
|
||||||
# This will prevent the installer from ejecting the CD during the reboot,
|
|
||||||
# which is useful in some situations.
|
|
||||||
#d-i cdrom-detect/eject boolean false
|
|
||||||
|
|
||||||
# This is how to make the installer shutdown when finished, but not
|
|
||||||
# reboot into the installed system.
|
|
||||||
#d-i debian-installer/exit/halt boolean true
|
|
||||||
# This will power off the machine instead of just halting it.
|
|
||||||
#d-i debian-installer/exit/poweroff boolean true
|
|
||||||
|
|
||||||
### Preseeding other packages
|
|
||||||
# Depending on what software you choose to install, or if things go wrong
|
|
||||||
# during the installation process, it's possible that other questions may
|
|
||||||
# be asked. You can preseed those too, of course. To get a list of every
|
|
||||||
# possible question that could be asked during an install, do an
|
|
||||||
# installation, and then run these commands:
|
|
||||||
# debconf-get-selections --installer > file
|
|
||||||
# debconf-get-selections >> file
|
|
||||||
|
|
||||||
|
|
||||||
#### Advanced options
|
|
||||||
### Running custom commands during the installation
|
|
||||||
# d-i preseeding is inherently not secure. Nothing in the installer checks
|
|
||||||
# for attempts at buffer overflows or other exploits of the values of a
|
|
||||||
# preconfiguration file like this one. Only use preconfiguration files from
|
|
||||||
# trusted locations! To drive that home, and because it's generally useful,
|
|
||||||
# here's a way to run any shell command you'd like inside the installer,
|
|
||||||
# automatically.
|
|
||||||
|
|
||||||
# This first command is run as early as possible, just after
|
|
||||||
# preseeding is read.
|
|
||||||
#d-i preseed/early_command string anna-install some-udeb
|
|
||||||
# This command is run immediately before the partitioner starts. It may be
|
|
||||||
# useful to apply dynamic partitioner preseeding that depends on the state
|
|
||||||
# of the disks (which may not be visible when preseed/early_command runs).
|
|
||||||
#d-i partman/early_command \
|
|
||||||
# string debconf-set partman-auto/disk "$(list-devices disk | head -n1)"
|
|
||||||
# This command is run just before the install finishes, but when there is
|
|
||||||
# still a usable /target directory. You can chroot to /target and use it
|
|
||||||
# directly, or use the apt-install and in-target commands to easily install
|
|
||||||
# packages and run commands in the target system.
|
|
||||||
d-i preseed/late_command string \
|
|
||||||
in-target wget -O /root/Setup-TC-Generic-Kiosk.sh https://git.ictmaatwerk.com/bprieshof/Linux-scripts/raw/branch/master/tc/Setup-TC-Generic-Kiosk.sh # ; \
|
|
||||||
#in-target bash /root/Setup-TC-Generic-Kiosk.sh
|
|
||||||
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
echo "Thin client url updater."
|
|
||||||
echo "enter the full url including http(s)://"
|
|
||||||
read url
|
|
||||||
|
|
||||||
source /var/log/browserurl.log
|
|
||||||
|
|
||||||
sed -i "s|$oldurl|$url|g" /home/kiosk/Bureaublad/chromium.desktop
|
|
||||||
sed -i "s|$oldurl|$url|g" /home/kiosk/Desktop/chromium.desktop
|
|
||||||
sed -i "s|$oldurl|$url|g" /home/kiosk/.config/openbox/autostart
|
|
||||||
|
|
||||||
echo oldurl=${url} > /var/log/browserurl.log
|
|
||||||
|
|
||||||
echo "Done!"
|
|
||||||
@@ -1,221 +0,0 @@
|
|||||||
# Setup Smokeping
|
|
||||||
Intructions for setting up SmokePing on Alpine Linux
|
|
||||||
|
|
||||||
## Main(Master)
|
|
||||||
Needed packages: smokeping lighttpd
|
|
||||||
|
|
||||||
make sure to empty the remote secret file (/etc/smokeping/smokeping_secrets),
|
|
||||||
you also need to correct the permissions `chown smokeping:smokeping /etc/smokeping/smokeping_secrets`
|
|
||||||
|
|
||||||
Lighttpd (/etc/lighttpd/lighttpd.conf)
|
|
||||||
```
|
|
||||||
# {{{ modules
|
|
||||||
server.modules = (
|
|
||||||
# "mod_accesslog",
|
|
||||||
"mod_cgi"
|
|
||||||
)
|
|
||||||
# }}}
|
|
||||||
|
|
||||||
# {{{ includes
|
|
||||||
include "mime-types.conf"
|
|
||||||
# }}}
|
|
||||||
|
|
||||||
# {{{ CGI
|
|
||||||
cgi.assign = (
|
|
||||||
".cgi" => "/usr/bin/perl"
|
|
||||||
)
|
|
||||||
# }}}
|
|
||||||
|
|
||||||
# {{{ server settings
|
|
||||||
server.username = "smokeping"
|
|
||||||
server.groupname = "smokeping"
|
|
||||||
server.document-root = "/usr/share/webapps/smokeping"
|
|
||||||
server.pid-file = "/run/lighttpd.pid"
|
|
||||||
server.errorlog-use-syslog = "enable"
|
|
||||||
server.indexfiles = ("smokeping.cgi")
|
|
||||||
server.follow-symlink = "enable"
|
|
||||||
static-file.exclude-extensions = (".cgi")
|
|
||||||
# }}}
|
|
||||||
|
|
||||||
# {{{ mod_accesslog
|
|
||||||
#accesslog.filename = "/var/log/lighttpd-access.log"
|
|
||||||
# }}}
|
|
||||||
|
|
||||||
# vim: set ft=conf foldmethod=marker et :
|
|
||||||
```
|
|
||||||
|
|
||||||
Smokeping config (/etc/smokeping/config)
|
|
||||||
```
|
|
||||||
*** General ***
|
|
||||||
|
|
||||||
owner = MaintainerName
|
|
||||||
contact = some@address.nowhere
|
|
||||||
mailhost = my.mail.host
|
|
||||||
sendmail = /usr/sbin/sendmail
|
|
||||||
imgcache = /var/lib/smokeping/.simg
|
|
||||||
imgurl = img
|
|
||||||
datadir = /var/lib/smokeping
|
|
||||||
piddir = /var/run/smokeping
|
|
||||||
cgiurl = http://some.url/smokeping.cgi
|
|
||||||
tmail = /etc/smokeping/tmail
|
|
||||||
smokemail = /etc/smokeping/smokemail
|
|
||||||
syslogfacility = local0
|
|
||||||
|
|
||||||
#Use to overwrite system hostname
|
|
||||||
#display_name = HostName
|
|
||||||
|
|
||||||
*** Database ***
|
|
||||||
|
|
||||||
step = 300
|
|
||||||
pings = 20
|
|
||||||
|
|
||||||
# consfn mrhb steps total
|
|
||||||
|
|
||||||
AVERAGE 0.5 1 1008
|
|
||||||
AVERAGE 0.5 12 4320
|
|
||||||
MIN 0.5 12 4320
|
|
||||||
MAX 0.5 12 4320
|
|
||||||
AVERAGE 0.5 144 720
|
|
||||||
MAX 0.5 144 720
|
|
||||||
MIN 0.5 144 720
|
|
||||||
|
|
||||||
*** Presentation ***
|
|
||||||
|
|
||||||
template = /etc/smokeping/basepage.html
|
|
||||||
htmltitle = yes
|
|
||||||
graphborders = no
|
|
||||||
|
|
||||||
+ charts
|
|
||||||
|
|
||||||
menu = Charts
|
|
||||||
title = The most interesting destinations
|
|
||||||
|
|
||||||
++ stddev
|
|
||||||
sorter = StdDev(entries=>4)
|
|
||||||
title = Top Standard Deviation
|
|
||||||
menu = Std Deviation
|
|
||||||
format = Standard Deviation %f
|
|
||||||
|
|
||||||
++ max
|
|
||||||
sorter = Max(entries=>5)
|
|
||||||
title = Top Max Roundtrip Time
|
|
||||||
menu = by Max
|
|
||||||
format = Max Roundtrip Time %f seconds
|
|
||||||
|
|
||||||
++ loss
|
|
||||||
sorter = Loss(entries=>5)
|
|
||||||
title = Top Packet Loss
|
|
||||||
menu = Loss
|
|
||||||
format = Packets Lost %f
|
|
||||||
|
|
||||||
++ median
|
|
||||||
sorter = Median(entries=>5)
|
|
||||||
title = Top Median Roundtrip Time
|
|
||||||
menu = by Median
|
|
||||||
format = Median RTT %f seconds
|
|
||||||
|
|
||||||
+ overview
|
|
||||||
|
|
||||||
width = 600
|
|
||||||
height = 50
|
|
||||||
range = 10h
|
|
||||||
|
|
||||||
+ detail
|
|
||||||
|
|
||||||
width = 600
|
|
||||||
height = 200
|
|
||||||
unison_tolerance = 2
|
|
||||||
|
|
||||||
"Last hour" 1h
|
|
||||||
"Last day" 24h
|
|
||||||
"Last week" 7d
|
|
||||||
"Last month" 30d
|
|
||||||
"Last year" 365d
|
|
||||||
|
|
||||||
|
|
||||||
*** Probes ***
|
|
||||||
|
|
||||||
+FPing
|
|
||||||
binary = /usr/sbin/fping
|
|
||||||
step = 60
|
|
||||||
|
|
||||||
*** Slaves ***
|
|
||||||
secrets=/etc/smokeping/smokeping_secrets
|
|
||||||
|
|
||||||
|
|
||||||
*** Targets ***
|
|
||||||
|
|
||||||
probe = FPing
|
|
||||||
|
|
||||||
menu = Top
|
|
||||||
title = Network Latency Grapher
|
|
||||||
remark = Welcome to SmokePing.
|
|
||||||
|
|
||||||
+ Internet
|
|
||||||
menu = Internet
|
|
||||||
title = Hosts on the internet
|
|
||||||
|
|
||||||
++ cloudflare
|
|
||||||
#slaves =
|
|
||||||
host = 1.1.1.1
|
|
||||||
|
|
||||||
++ google
|
|
||||||
#slaves =
|
|
||||||
host = 8.8.8.8
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
Start and Enable services on boot `service smokeping start && service lighttpd start && rc-update add smokeping default && rc-update add lighttpd default`
|
|
||||||
|
|
||||||
## Remote(Slave)
|
|
||||||
|
|
||||||
### On Main
|
|
||||||
Add the name and a secret in in the secrets file`/etc/smokeping/smokeping_secrets` using the following format (one per line) `remotehostname:Secret`
|
|
||||||
Add the host to the slaves section using the following example:
|
|
||||||
```
|
|
||||||
+remotehostname
|
|
||||||
display_name=Remote-Hostname
|
|
||||||
color=00ffff
|
|
||||||
```
|
|
||||||
Add the host to the `slaves` section of the targets (should be seperated with a space)
|
|
||||||
Last step on main is to restart smokeping `service smokeping restart`
|
|
||||||
|
|
||||||
### On Remote
|
|
||||||
Needed packages: smokeping
|
|
||||||
|
|
||||||
Put a secret in `/etc/smokeping/secret.txt`
|
|
||||||
set its permissions `chown smokeping:smokeping /etc/smokeping/secret.txt && chmod 600 /etc/smokeping/secret.txt`
|
|
||||||
|
|
||||||
Service file(/etc/init.d/smokeping-remote)
|
|
||||||
```
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
HostName=host1
|
|
||||||
MainURL="http://<MainHost>/smokeping.cgi"
|
|
||||||
|
|
||||||
depend() {
|
|
||||||
need net
|
|
||||||
}
|
|
||||||
|
|
||||||
start() {
|
|
||||||
checkpath --directory --owner smokeping:smokeping /var/run/smokeping
|
|
||||||
|
|
||||||
ebegin "Starting smokeping remote"
|
|
||||||
LC_ALL=C \
|
|
||||||
start-stop-daemon --start --name smokeping \
|
|
||||||
--pidfile /var/run/smokeping/smokeping.pid \
|
|
||||||
--exec /usr/bin/smokeping \
|
|
||||||
--user smokeping:smokeping \
|
|
||||||
-- --master-url=$MainURL --cache-dir=/var/lib/smokeping --pid-dir=/var/run/smokeping --shared-secret=/etc/smokeping/secret.txt --slave-name=$HostName
|
|
||||||
eend $?
|
|
||||||
}
|
|
||||||
|
|
||||||
stop() {
|
|
||||||
ebegin "Stopping smokeping Remote"
|
|
||||||
start-stop-daemon --stop \
|
|
||||||
--pidfile /var/run/smokeping/smokeping.pid
|
|
||||||
eend $?
|
|
||||||
}
|
|
||||||
```
|
|
||||||
Set permissions service file `chmod +x /etc/init.d/smokeping-remote`
|
|
||||||
Start and Enable service on boot `service smokeping-remote start && rc-update add smokeping-remote default`
|
|
||||||
Add to Root cron tab to auto reload after crash (/etc/crontabs/root) `echo '* * * * * openrc --no-stop' >> /etc/crontabs/root`
|
|
||||||
Reference in New Issue
Block a user