First commit

This commit is contained in:
Thomas Legay 2021-02-20 22:15:06 +01:00
commit 5fcdb763a5
79 changed files with 2605 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
alldebfiles
repository

0
README.md Normal file
View File

19
make Executable file
View File

@ -0,0 +1,19 @@
#!/bin/bash
PROJECT=$1
if [ -d src/$PROJECT ] && [ "$1" != "" ]
then
echo Projet $PROJECT
else
ls src/
read -p"list " PROJECT
fi
VERSION=$(cat src/$PROJECT/DEBIAN/control | grep -i "version:" | cut -d " " -f 2)
NEW_VERSION=$(echo $VERSION | awk 'BEGIN { FS="." } { $2++; if ($2 > 99) { $2=0; $1++ } } { printf "%d.%02d\n", $1, $2 }')
sed -i -e "s/$(echo $VERSION)/$(echo $NEW_VERSION)/" src/$PROJECT/DEBIAN/control
fakeroot dpkg-deb -Z gzip --build src/$PROJECT alldebfiles/$PROJECT.deb
reprepro --ask-passphrase -Vb repository/ remove tools ${PROJECT%.*}
reprepro --ask-passphrase -Vb repository/ includedeb tools alldebfiles/$PROJECT.deb
rsync --delete -av -e "ssh -A -J lgy.fr " repository/* deb.net.lgy.fr:/var/www/html/

View File

@ -0,0 +1,5 @@
2sman-client (1.0) stable; urgency=low
* Create
-- Legay Thomas <thomas@syngate.fr> mar. 28 avril 2020 10:55

View File

@ -0,0 +1,7 @@
Package: 2sman-client
Version: 1.04
Section: base
Priority: optional
Architecture: all
Maintainer: Thomas Legay <thomas@syngate.fr>
Description: Package 2smanclient

View File

@ -0,0 +1 @@
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 255 | head -n 1 > /etc/2sman/client/key

View File

@ -0,0 +1,5 @@
#Change default server
#SERVER=http://192.168.24.191:8080
everytime system.mountpoint.freespace
everytime system.uptime
everytime system.temp

View File

@ -0,0 +1 @@
i6ugWyYjhTIhYRa3SgFmXUIoAGQD1UXCemgk95xx9F1OeWdCP79zAefQgNTOkRkmEX8vjBDJGi450p6sHwPEBLCBmjUJZ5aNdWYRoUTZgK0celPDqKVOjTZTw916KZ4xQVYmihJXi5LmrZd68ae51KN05hOpBGiPafyIXYD75MwZyN1tW1PIa4mj3ryoKB1wVnVK270VCZgOPnTELSgBMgNEZ0jDIwdpIe3nuvynpOhiS5ZmiFfEi7hkKzNCQHf

View File

@ -0,0 +1 @@
https://2sman.lgy.fr/

View File

@ -0,0 +1,10 @@
[Unit]
Description=2sman-client
[Service]
ExecStart=/usr/bin/2sman-client
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,49 @@
#!/bin/bash
CONFIG_PATH=/etc/2sman/client
KEY_FILE=$CONFIG_PATH/key
SERVER_FILE=$CONFIG_PATH/server
SCRIPT_PATH=/usr/share/2sman-client
DEVICES_PATH=$CONFIG_PATH/devices
DAILY_FILE=/var/run/2sman-client-daily
HOURLY_FILE=/var/run/2sman-client-hourly
LASTRUN_FILE=/var/run/2sman-client-lastrun
[ -f $KEY_FILE ] && DEFAULT_KEY=$(cat $KEY_FILE)
[ ! "$KEY" = "" ] && echo ERROR : Key file is empty $KEY_FILE && exit 1
[ -f $SERVER_FILE ] && DEFAULT_SERVER=$(cat $SERVER_FILE)
[ ! "$SERVER" = "" ] && echo ERROR : Server file is empty $KEY_FILE && exit 1
function everytime {
if [ -f $SCRIPT_PATH/$1 ]
then bash $SCRIPT_PATH/$* &
else echo WARNING : script $1 not exist 1>&2
fi
}
function hourly {
elapsedSeconds=$([ -f $HOURLY_FILE ] && echo $(( $(date +%s) - $(date +%s -r $HOURLY_FILE) )) || echo 3601)
if [ $elapsedSeconds -gt 3600 ] ; then
touch $DAILY_FILE
everytime $*
fi
}
function daily {
elapsedSeconds=$([ -f $DAILY_FILE ] && echo $(( $(date +%s) - $(date +%s -r $DAILY_FILE) )) || echo 86401)
if [ $elapsedSeconds -gt 86400 ]; then
touch $DAILY_FILE
everytime $*
fi
}
while true
do
for device_conf in $(find $DEVICES_PATH/ -name *.conf)
do
KEY=$DEFAULT_KEY
SERVER=$DEFAULT_SERVER
devicename=$(basename $device_conf .conf)
. $device_conf | tee $LASTRUN_FILE | curl -s $SERVER/$KEY/$devicename --data-binary @- > /dev/null
done
sleep 300
done

View File

@ -0,0 +1,7 @@
#!/bin/bash
df -HP | grep -E '^/dev/|rootfs|^//' | awk '{ print $5 " " $1 }' | while read output;
do
usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
partition=$(echo $output | awk '{ print $2 }' )
echo system\|mountpoint\|freespace\|$partition $usep
done

View File

@ -0,0 +1,11 @@
#!/bin/bash
if [ "$(systemd-detect-virt)" == "none" ]
then
sensors -u | while read ligne
do
echo $ligne | grep '^[A-Z].*' > /dev/null && main=$(echo $ligne | tr '\ ' '-' | tr -d ":")
echo $ligne | grep "_input" > /dev/null && echo system\|temp\|$main\|$( echo $ligne | tr -d ":")
done
fi

View File

@ -0,0 +1,2 @@
#!/bin/bash
echo system\|uptime $( cat /proc/uptime | cut -d " " -f 1)

View File

View File

@ -0,0 +1,7 @@
Package: amp-base
Version: 1.15
Section: base
Priority: optional
Architecture: all
Maintainer: Thomas Legay <thomas@syngate.fr>
Description: base file for all other package

View File

@ -0,0 +1,5 @@
#!/bin/bash
[ -e /etc/apt/sources.list.d/pve-enterprise.list ] && rm /etc/apt/sources.list.d/pve-enterprise.list
apt update && apt upgrade -y && apt dist-upgrade -y && apt-get clean

View File

@ -0,0 +1,5 @@
#!/bin/bash
TMP=$(mktemp)
apt-mark showmanual > $TMP
diff $TMP /var/lib/amp/lxc-debian-10/apt-mark-manual | grep -e "<" -e ">"
rm $TMP

1504
src/amp-base/usr/bin/speedtest-cli Executable file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,2 @@
#!/bin/bash
for proc in /proc/[0-9]*; do awk '/VmSwap/ { print $2 "\t'`readlink $proc/exe | awk '{ print $1 }'`'" }' $proc/status; done | sort -n | awk '{ total += $1 ; print $0 } END { print total "\tTotal" }'

View File

@ -0,0 +1,337 @@
adduser
apt
apt-listchanges
apt-utils
base-files
base-passwd
bash
bash-completion
bind9-host
bsdmainutils
bsdutils
bzip2
ca-certificates
coreutils
cpio
cpp
cpp-8
cron
dash
dbus
debconf
debconf-i18n
debian-archive-keyring
debian-faq
debianutils
diffutils
dmidecode
dmsetup
doc-debian
dpkg
e2fsprogs
fdisk
file
findutils
fontconfig-config
fonts-dejavu-core
gcc-8-base
gdbm-l10n
gettext-base
gpgv
grep
groff-base
gzip
hostname
ifupdown
init
init-system-helpers
iproute2
iptables
iputils-ping
isc-dhcp-client
isc-dhcp-common
kmod
krb5-locales
less
libacl1
libapparmor1
libapt-inst2.0
libapt-pkg5.0
libargon2-1
libattr1
libaudit-common
libaudit1
libbind9-161
libblkid1
libbsd0
libbz2-1.0
libc-bin
libc-l10n
libc6
libcap-ng0
libcap2
libcap2-bin
libcom-err2
libcryptsetup12
libcurl3-gnutls
libdb5.3
libdbus-1-3
libdebconfclient0
libdevmapper1.02.1
libdns-export1104
libdns1104
libdrm-amdgpu1
libdrm-common
libdrm-intel1
libdrm-nouveau2
libdrm-radeon1
libdrm2
libedit2
libelf1
libestr0
libexpat1
libext2fs2
libfastjson4
libfdisk1
libffi6
libfontconfig1
libfontenc1
libfreetype6
libfstrm0
libgcc1
libgcrypt20
libgdbm-compat4
libgdbm6
libgeoip1
libgl1
libgl1-mesa-dri
libglapi-mesa
libglvnd0
libglx-mesa0
libglx0
libgmp10
libgnutls30
libgpg-error0
libgssapi-krb5-2
libhogweed4
libice6
libicu63
libidn11
libidn2-0
libip4tc0
libip6tc0
libiptc0
libisc-export1100
libisc1100
libisccc161
libisccfg163
libisl19
libjson-c3
libk5crypto3
libkeyutils1
libkmod2
libkrb5-3
libkrb5support0
libldap-2.4-2
libldap-common
libllvm7
liblmdb0
liblocale-gettext-perl
liblockfile-bin
liblognorm5
liblwres161
liblz4-1
liblzma5
libmagic-mgc
libmagic1
libmnl0
libmount1
libmpc3
libmpdec2
libmpfr6
libncurses6
libncursesw6
libnetfilter-conntrack3
libnettle6
libnewt0.52
libnfnetlink0
libnftnl11
libnghttp2-14
libnss-systemd
libp11-kit0
libpam-modules
libpam-modules-bin
libpam-runtime
libpam-systemd
libpam0g
libpciaccess0
libpcre2-8-0
libpcre3
libperl5.28
libpipeline1
libpng16-16
libpopt0
libprocps7
libprotobuf-c1
libpsl5
libpython-stdlib
libpython2-stdlib
libpython2.7-minimal
libpython2.7-stdlib
libpython3-stdlib
libpython3.7-minimal
libpython3.7-stdlib
libreadline7
librtmp1
libsasl2-2
libsasl2-modules-db
libseccomp2
libselinux1
libsemanage-common
libsemanage1
libsensors-config
libsensors5
libsepol1
libslang2
libsm6
libsmartcols1
libsqlite3-0
libss2
libssh2-1
libssl1.1
libstdc++6
libsystemd0
libtasn1-6
libtext-charwidth-perl
libtext-iconv-perl
libtext-wrapi18n-perl
libtinfo6
libuchardet0
libudev1
libunistring2
libuuid1
libwrap0
libx11-6
libx11-data
libx11-xcb1
libxau6
libxaw7
libxcb-dri2-0
libxcb-dri3-0
libxcb-glx0
libxcb-present0
libxcb-shape0
libxcb-sync1
libxcb1
libxcomposite1
libxcursor1
libxdamage1
libxdmcp6
libxext6
libxfixes3
libxft2
libxi6
libxinerama1
libxkbfile1
libxml2
libxmu6
libxmuu1
libxpm4
libxrandr2
libxrender1
libxshmfence1
libxt6
libxtables12
libxtst6
libxv1
libxxf86dga1
libxxf86vm1
libzstd1
locales
login
logrotate
lsb-base
lsof
man-db
manpages
mawk
mime-support
mount
nano
ncurses-base
ncurses-bin
ncurses-term
netbase
netcat-traditional
openssh-client
openssh-server
openssh-sftp-server
openssl
passwd
perl
perl-base
perl-modules-5.28
postfix
procps
python
python-apt-common
python-minimal
python2
python2-minimal
python2.7
python2.7-minimal
python3
python3-apt
python3-certifi
python3-chardet
python3-debconf
python3-debian
python3-debianbts
python3-httplib2
python3-idna
python3-minimal
python3-pkg-resources
python3-pycurl
python3-pysimplesoap
python3-reportbug
python3-requests
python3-six
python3-urllib3
python3.7
python3.7-minimal
readline-common
reportbug
rsyslog
sed
sensible-utils
ssh
ssl-cert
systemd
systemd-sysv
sysvinit-utils
tar
tasksel
tasksel-data
telnet
traceroute
tzdata
ucf
udev
util-linux
vim-common
vim-tiny
wamerican
wget
whiptail
x11-apps
x11-common
x11-session-utils
x11-utils
x11-xkb-utils
x11-xserver-utils
xauth
xbase-clients
xinit
xxd
xz-utils
zlib1g

View File

View File

@ -0,0 +1,8 @@
Package: amp-prefered-config
Version: 1.03
Section: base
Priority: optional
Architecture: all
Depends: amp-base
Maintainer: Thomas Legay <thomas@syngate.fr>
Description: change debian default configuration

View File

@ -0,0 +1,15 @@
#!/bin/bash
grep '$include /usr/lib/amp-prefered-config/inputrc' /etc/inputrc > /dev/null || echo '$include /usr/lib/amp-prefered-config/inputrc' >> /etc/inputrc
#sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config
ln -fs /usr/share/zoneinfo/Europe/Paris /etc/localtime
dpkg-reconfigure -f noninteractive tzdata
sed -i 's/# fr_FR.UTF-8 UTF-8/fr_FR.UTF-8 UTF-8/g' /etc/locale.gen
echo "LANG=fr_FR.UTF-8" > /etc/default/locale
/usr/sbin/locale-gen
[ "$(systemd-detect-virt )" == "lxc" ] && grep '^MaxRetentionSec=' /etc/systemd/journald.conf || echo 'MaxRetentionSec=2week' >> /etc/systemd/journald.conf

View File

@ -0,0 +1,2 @@
"\e[5~": history-search-backward
"\e[6~": history-search-forward

View File

View File

@ -0,0 +1,8 @@
Package: amp-proxmox-utils
Version: 1.07
Section: base
Priority: optional
Architecture: all
Depends: debootstrap
Maintainer: Thomas Legay <thomas@lgy.fr>
Description: Proxmox scripts

View File

@ -0,0 +1,2 @@
MAX_ARCHIVE=5
MAX_LOG_DAYS=14

View File

@ -0,0 +1,5 @@
BACKUP_DEST_IP=10.237.66.10
BACKUP_DEST_PATH=/pool/netbackup/dump
NB_ARCHIVE=3
BACKUP_DEST_USER=root
BACKUP_PORT=22

View File

@ -0,0 +1,5 @@
#!/bin/bash
for tmp in $(pct list | grep running | cut -c 1-3)
do
lxc-attach $tmp "[ -e /usr/bin/amp-full-upgrade ] && amp-full-upgrade "
done

View File

@ -0,0 +1,21 @@
set -e
SRC_DEBOOTSTRAP=/usr/share/debootstrap/scripts
IMAGE=$1
TARBALL=$1-$(date +%Y%m%d).tar.gz
if [ -f $SRC_DEBOOTSTRAP/$IMAGE ] ;
then
TARGET=$(tempfile)
rm $TARGET
mkdir $TARGET
echo create rootfs in temporary folder $TARGET
debootstrap $IMAGE $TARGET > /dev/null
echo create archive $TARBALL
tar -C $TARGET -zcvf $TARBALL .
echo Remove temporary folder
rm -fr $TARGET
chmod ugo+r $TARBALL
echo lxc image available in $TARBALL
else
echo $(basename $0) \<version\>
ls $SRC_DEBOOTSTRAP
fi

View File

@ -0,0 +1,62 @@
#!/bin/bash
RETOUR=0
if [ "$1" = "backup-end" ]
then
. /etc/amp-proxmox-utils/vzdump.hook.conf
echo "vzdump hook backup-end (by thomas Legay)"
VM_ID=$3
#Rename archive name with vm hostname
VM_HOSTNAME=$(pct config $VM_ID | grep hostname | cut -d " " -f 2)
ARCHIVE_DIR=$(dirname $TARFILE)
ARCHIVE_NAME=$(basename $TARFILE)
NEW_ARCHIVE_NAME=$(echo $ARCHIVE_NAME | awk -v VM_HOSTNAME="$VM_HOSTNAME" -F '[-]+' '{print $1"-"$2"-"$3"-"VM_HOSTNAME"-"$4"-"$5'})
ARCHIVE_PREFIX=$(echo $ARCHIVE_NAME | awk -F '[-]+' '{print $1"-"$2"-"$3"-"}')
echo "Rename $ARCHIVE_NAME to $NEW_ARCHIVE_NAME"
mv $TARFILE $ARCHIVE_DIR/$NEW_ARCHIVE_NAME
TMP=$?
[ $TMP -ne 0 ] && RETOUR=$TMP
#Remove old archive
nb=$(find $ARCHIVE_DIR -regex ".*/vzdump-lxc-$VM_ID-.*\(.tgz\|.tar.gz\|.tar\|.tar.zst\|.tar.lzo\)" | wc -l)
nb_delete=$(($nb - $MAX_ARCHIVE ))
echo "$nb archives ( $nb_delete to delete)"
if [ $nb_delete -gt 0 ]
then
count=0
for archive in $(find $ARCHIVE_DIR -regex ".*/vzdump-lxc-$VM_ID-.*\(.tgz\|.tar.gz\|.tar\|.tar.zst\|.tar.lzo\)" -printf "%T@ %p\n" | sort -n | cut -d " " -f 2)
do
count=$(( $count + 1 ))
delete_prefix=$(echo $archive | sed 's/\(.tgz\|.tar.gz\|.tar\|.tar.zst\|.tar.lzo\)//')
if [ $count -le $nb_delete ]
then
for file in $(ls $delete_prefix*)
do
echo "Remove $file"
rm "$file"
done
fi
done
fi
#remove old log
find $ARCHIVE_DIR -type f -mtime +$MAX_LOG_DAYS -name "*.log" -delete
#export archive
for tmp in $(find /etc/amp-proxmox-utils/vzdump.hook.d/ -name '*.conf')
do
. $tmp
echo "copie de l'archive pour $*"
scp -P $BACKUP_PORT $ARCHIVE_DIR/$NEW_ARCHIVE_NAME $BACKUP_DEST_USER@$BACKUP_DEST_IP:$BACKUP_DEST_PATH
TMP=$?
[ $TMP -ne 0 ] && RETOUR=$TMP
for tmp in $( ssh -p $BACKUP_PORT $BACKUP_DEST_USER@$BACKUP_DEST_IP "ls -rt $BACKUP_DEST_PATH/*$3*" | grep -v -e .log | head -n -$NB_ARCHIVE);
do
echo "suppression distante de $tmp"
ssh -p $BACKUP_PORT -l $BACKUP_DEST_USER $BACKUP_DEST_IP rm $tmp
done
done
fi
exit $RETOUR

View File

@ -0,0 +1,11 @@
amp-tools-unifi (1.0) stable; urgency=low
* Create
-- Legay Thomas <thomas@syngate.fr> mar. 28 avril 2020 10:55
amp-tools-unifi (1.1) stable; urgency=low
* first issue :-p
-- Legay Thomas <thomas@syngate.fr> mar. 28 avril 2020 10:55

View File

@ -0,0 +1,8 @@
Package: amp-tools-unifi
Version: 1.03
Section: base
Priority: optional
Architecture: all
Depends: jq, gnupg
Maintainer: Thomas Legay <thomas@lgy.fr>
Description: amp-tools-unifi

View File

@ -0,0 +1,8 @@
#!/bin/bash
VERSION=$(wget --header='X-Requested-With: XMLHttpRequest' 'https://www.ui.com/download/?platform=unifi' -O - | jq '.downloads | .[] | select(.filename=="unifi_sysvinit_all.deb") | .version' | sed 's/"//g' | sort -V | tail -n 1)
wget https://dl.ui.com/unifi/$VERSION/unifi_sysvinit_all.deb -O - > /tmp/unifi_sysvinit_all.deb
dpkg -i /tmp/unifi_sysvinit_all.deb
apt install -f
rm /tmp/unifi_sysvinit_all.deb

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,8 @@
Package: amp-upgrade-airsonic
Version: 1.01
Section: base
Priority: optional
Architecture: all
Depends: wget
Maintainer: Thomas Legay <thomas@syngate.fr>
Description: airsonic upgrade script

View File

@ -0,0 +1 @@
AIRSONIC_ROOT=/var/www/html/

View File

@ -0,0 +1,7 @@
#!/bin/bash
PROJECT_URL=https://github.com/airsonic/airsonic/
VERSION=$(wget -qO - $PROJECT_URL/releases.atom | grep "releases/tag" | head -n 1 | grep -o -P "/tag/[^\"]*" | cut -c 6-)
FILE=airsonic.war
wget -q $PROJECT_URL/releases/download/$VERSION/$FILE -O $AIRSONIC_ROOT/airsonic.war
systemctl restart airsonic.service

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,8 @@
Package: amp-upgrade-baikal
Version: 1.01
Section: base
Priority: optional
Architecture: all
Depends: wget
Maintainer: Thomas Legay <thomas@lgy.fr>
Description: baikal upgrade script

View File

@ -0,0 +1,3 @@
WEBROOT=/var/www/html/
USER=www-data
GROUP=www-data

View File

@ -0,0 +1,28 @@
#!/bin/bash
set -e
PROJECT_URL=https://github.com/sabre-io/Baikal/
VERSION=$(wget -qO - $PROJECT_URL/releases.atom | grep "releases/tag" | head -n 1 | grep -o -P "/tag/[^\"]*" | cut -c 6-)
FILE=baikal-$VERSION.zip
TMP_PATH=$(mktemp -d)
wget -q $PROJECT_URL/releases/download/$VERSION/$FILE -O $TMP_PATH/$FILE
for tmp in $(find /etc/amp-upgrade-script/baikal.d/ -name '*.conf')
do
source $tmp
mkdir -p $TMP_PATH/baikal
if [ -e $WEBROOT ]
then
cp -fr $WEBROOT/Specific $TMP_PATH/baikal/Specific
cp -fr $WEBROOT/config $TMP_PATH/baikal/config
fi
unzip -u $TMP_PATH/$FILE -d $TMP_PATH
rm -fr $WEBROOT
cp -fr $TMP_PATH/baikal/ $WEBROOT
chown $USER:$GROUP $WEBROOT -R
rm -fr $TMP_PATH/baikal
done
rm -fr $TMP_PATH

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,8 @@
Package: amp-upgrade-bitwardenrs
Version: 1.01
Section: base
Priority: optional
Architecture: all
Depends: rsync, wget, git
Maintainer: Thomas Legay <thomas@lgy.fr>
Description: bitwardenrs upgrade script

View File

@ -0,0 +1,34 @@
#!/bin/bash
set -e
cd ~
find bitwarden_rs/target/* -maxdepth 0 -mtime +30 -exec rm -fr {} \;
#Backend
source ~/.cargo/env
cd ~/bitwarden_rs
git checkout master
git pull
git checkout $(git tag | sort -V | tail -n 1)
cargo build --release --features postgresql
#Frontend
cd ~
PROJECT_URL=https://github.com/dani-garcia/bw_web_builds
VERSION=$(wget -qO - $PROJECT_URL/releases.atom | grep "releases/tag" | head -n 1 | grep -o -P "/tag/[^\"]*" | cut -c 6-)
FILE=bw_web_$VERSION.tar.gz
RELEASE_TARGET=~/bitwarden_rs/target/release/
rm -fr $RELEASE_TARGET/web-vault/
wget -q $PROJECT_URL/releases/download/$VERSION/$FILE -O - | tar -zx -C $RELEASE_TARGET
#Deploy
rsync -a --info=progress2 bitwarden_rs/target/release/ /opt/bitwarden/
chown -R www-data: /opt/bitwarden
systemctl restart bitwarden

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,8 @@
Package: amp-upgrade-element-web
Version: 1.01
Section: base
Priority: optional
Architecture: all
Depends: wget
Maintainer: Thomas Legay <thomas@lgy.fr>
Description: element web upgrade script

View File

@ -0,0 +1 @@
AIRSONIC_ROOT=/var/www/html/

View File

@ -0,0 +1,3 @@
WEBROOT=/var/www/html/
USER=www-data
GROUP=www-data

View File

@ -0,0 +1,28 @@
#!/bin/bash
set -e
PROJECT_URL=https://github.com/vector-im/element-web
VERSION=$(wget -qO - $PROJECT_URL/releases.atom | grep "releases/tag" | head -n 1 | grep -o -P "/tag/[^\"]*" | cut -c 6-)
FILE=element-$VERSION.tar.gz
TMP_PATH=$(mktemp -d)
wget https://github.com/vector-im/element-web/releases/download/$VERSION/$FILE -O - | tar -zx -C $TMP_PATH
for tmp in $(find /etc/amp-upgrade-script/element-web.d/ -name '*.conf')
do
source $tmp
TMP_CONFIG=$(mktemp -d)
if [ -e $WEBROOT ]
then
[ $(find $WEBROOT/ -name '*.json' | wc -l) -ne 0 ] && mv $WEBROOT/config*.json $TMP_CONFIG
rm -fr $WEBROOT
fi
mv $TMP_PATH/element-$VERSION $WEBROOT
[ $(find $TMP_CONFIG/ -name '*.json' | wc -l) -ne 0 ] && mv $TMP_CONFIG/*.json $WEBROOT/
chown $USER:$GROUP $WEBROOT -R
rm -fr $TMP_CONFIG
done
rm -fr $TMP_PATH

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,8 @@
Package: amp-upgrade-golang
Version: 1.01
Section: base
Priority: optional
Architecture: all
Depends: wget
Maintainer: Thomas Legay <thomas@lgy.fr>
Description: golang upgrade script

View File

@ -0,0 +1,9 @@
#!/bin/bash
URL=https://golang.org/$(wget -qO - https://golang.org/dl/ | grep downloadBox | grep linux-amd64 | cut -d "\"" -f 4)
wget -qO - $URL | tar -zx -C /opt/
for tmp in $(find /opt/go/bin -type f);
do
DST=/usr/bin/$(basename $tmp)
[ -e $DST ] && rm -fr $DST
ln -s $tmp $DST
done

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,8 @@
Package: amp-upgrade-phpmyadmin
Version: 1.01
Section: base
Priority: optional
Architecture: all
Depends: unzip, wget
Maintainer: Thomas Legay <thomas@lgy.fr>
Description: phpmyadmin update script

View File

@ -0,0 +1 @@
AIRSONIC_ROOT=/var/www/html/

View File

@ -0,0 +1,3 @@
WEBROOT=/var/www/html/
USER=www-data
GROUP=www-data

View File

@ -0,0 +1,3 @@
WEBROOT=/var/www/html/
USER=www-data
GROUP=www-data

View File

@ -0,0 +1,3 @@
WEBROOT=/var/www/html/
USER=www-data
GROUP=www-data

View File

@ -0,0 +1,3 @@
WEBROOT=/var/www/roundcube/
USER=www-data
GROUP=www-data

View File

@ -0,0 +1,20 @@
#!/bin/bash
set -e
TMP_PATH=$(mktemp -d)
TMP_ZIP=$TMP_PATH/tmp.zip
wget -q https://www.phpmyadmin.net/ -O - | grep '\-all-languages.zip' | sed -n "s/.*\(https:\S*all-languages.zip\).*/\1/p" -O $TMP_PATH/tmp.zip
for tmp in $(find /etc/amp-upgrade-script/phpmysql.d/ -name '*.conf')
do
source $tmp
TMP_CONFIG=$(mktemp -d)
[ -e $WEBROOT ] && rm -fr $WEBROOT
mkdir -p $WEBROOT
unzip TMP_ZIP -d $WEBROOT
done
rm -fr $TMP_PATH

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,8 @@
Package: amp-upgrade-roundcube
Version: 1.01
Section: base
Priority: optional
Architecture: all
Depends: wget
Maintainer: Thomas Legay <thomas@lgy.fr>
Description: roundcube update script

View File

@ -0,0 +1,3 @@
WEBROOT=/var/www/roundcube/
USER=www-data
GROUP=www-data

View File

@ -0,0 +1,22 @@
#!/bin/bash
set -e
PROJECT_URL=https://github.com/roundcube/roundcubemail/
VERSION=$(wget -qO -$PROJECT_URL/releases.atom | grep "releases/tag" | grep -o -P "/tag/[^\"]*" | sort -rV | head -n 1 | cut -c 6-)
FILE=roundcubemail-$VERSION-complete.tar.gz
TMP_PATH=$(mktemp -d)
wget -q $PROJECT_URL/releases/download/$VERSION/$FILE -O - | tar -zx -C $TMP_PATH
cd $TMP_PATH/roundcubemail-$VERSION
for tmp in $(find /etc/amp-upgrade-script/roundcube.d/ -name '*.conf')
do
source $tmp
bin/installto.sh $WEBROOT
chown $USER:$GROUP $WEBROOT -R
rm -fr $TMP_PATH
done

View File

View File

@ -0,0 +1,8 @@
Package: amp-webdav
Version: 1.01
Section: base
Priority: optional
Architecture: all
Depends: php-sabre-dav
Maintainer: Thomas Legay <thomas@syngate.fr>
Description: Package pour webdav

View File

@ -0,0 +1,28 @@
<?php
date_default_timezone_set('Europe/Paris');
$publicDir = $_SERVER['DOCUMENT_ROOT'];
$baseUri = '/';
require_once 'Sabre/autoload.php';
$root = new \Sabre\DAV\FS\Directory($publicDir);
$server = new \Sabre\DAV\Server($root);
if (isset($baseUri))
$server->setBaseUri($baseUri);
$lockBackend = new \Sabre\DAV\Locks\Backend\File('/locksdb');
$lockPlugin = new \Sabre\DAV\Locks\Plugin($lockBackend);
$server->addPlugin($lockPlugin);
$browser = new \Sabre\DAV\Browser\Plugin();
$server->addPlugin($browser);
// Automatically guess (some) contenttypes, based on extesion
$server->addPlugin(new \Sabre\DAV\Browser\GuessContentType());
// Temporary file filter
//$tempFF = new \Sabre\DAV\TemporaryFileFilterPlugin($tmpDir);
//$server->addPlugin($tempFF);
$server->exec();

View File

@ -0,0 +1,28 @@
<?php
date_default_timezone_set('Europe/Paris');
$publicDir = $_SERVER['DOCUMENT_ROOT'];
$baseUri = '/zdav';
require_once 'Sabre/autoload.php';
$root = new \Sabre\DAV\FS\Directory($publicDir);
$server = new \Sabre\DAV\Server($root);
if (isset($baseUri))
$server->setBaseUri($baseUri);
$lockBackend = new \Sabre\DAV\Locks\Backend\File('/locksdb');
$lockPlugin = new \Sabre\DAV\Locks\Plugin($lockBackend);
$server->addPlugin($lockPlugin);
$browser = new \Sabre\DAV\Browser\Plugin();
$server->addPlugin($browser);
// Automatically guess (some) contenttypes, based on extesion
$server->addPlugin(new \Sabre\DAV\Browser\GuessContentType());
// Temporary file filter
//$tempFF = new \Sabre\DAV\TemporaryFileFilterPlugin($tmpDir);
//$server->addPlugin($tempFF);
$server->exec();

View File

@ -0,0 +1,31 @@
Sample to add in the apache host
Case on the root directory
php_flag output_buffering off
php_flag always_populate_raw_post_data off
php_flag magic_quotes_gpc off
php_flag mbstring.func_overload off
AliasMatch .* /usr/lib/amp-webdav/dav.php
<location / >
AuthType basic
AuthName "Mon serveur"
AuthUserFile /opt/htpasswd
Require valid-user
</location>
case with fake root /zdav/
php_flag output_buffering off
php_flag always_populate_raw_post_data off
php_flag magic_quotes_gpc off
php_flag mbstring.func_overload off
Alias /zdav /usr/lib/amp-webdav/zdav.php
<location /zdav >
AuthType basic
AuthName "Mon serveur"
AuthUserFile /opt/htpasswd
Require valid-user
</location>

View File

@ -0,0 +1,5 @@
logveillance (1.00) stable; urgency=low
* Création
-- Legay Thomas <thomas@syngate.fr> jeu. 07 mai 2020 00:10

View File

@ -0,0 +1,8 @@
Package: logveillance
Version: 1.17
Section: base
Priority: optional
Architecture: all
Maintainer: Thomas Legay <thomas@lgy.fr>
Depends: python3-requests
Description: paquet logveillance

View File

@ -0,0 +1,3 @@
#!/bin/bash
systemctl enable logveillance
systemctl restart logveillance

3
src/logveillance/DEBIAN/prerm Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
systemctl disable logveillance

View File

@ -0,0 +1,9 @@
[Unit]
Description=logveillance
[Service]
ExecStart=/usr/lib/logveillance/logveillance.py
Restart=always
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,112 @@
#!/usr/bin/python3
import time
import re
import requests
import json
import os
INTERVAL=10
LOOP_CONTROL_EVERY=6
f = open("/etc/logveillance/token")
TOKEN = f.readline().splitlines()[0]
f.close()
f = open("/etc/logveillance/room")
ROOM = f.readline().splitlines()[0]
f.close()
f = open("/etc/logveillance/server")
SERVER = f.readline().splitlines()[0]
f.close()
f = open("/etc/logveillance/logfile")
filename = f.readline().splitlines()[0]
f.close()
URL=SERVER + "/_matrix/client/r0/rooms/"+ROOM+"/send/m.room.message?access_token=" + TOKEN
RULE = [
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*dhcpd\[\d*\]:\s*DHCPACK\s*on \S* to \S*( \(\S*\))?( via \S*)?",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*dhcpd\[\d*\]:\s*DHCPOFFER on \S* to \S*( \(\S*\))?( via \S*)?",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*dhcpd\[\d*\]:\s*DHCPREQUEST for \S*( \(\S*\))? from \S*( \(\S*\))?( via \S*)?",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*dhcpd\[\d*\]:\s*DHCPRELEASE of \S*( \(\S*\))? from \S*( \(\S*\))?( via \S*)?",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*dhcpd\[\d*\]:\s*reuse_lease: lease age .*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*dhcpd\[\d*\]:\s*Wrote .*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*dhcpd\[\d*\]:\s*uid lease \S*( \(\S*\))? for client \S* is duplicate on \S*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*systemd\[\d*\]:\s*\S* Succeeded.",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*systemd\[\d*\]:\s*Started\s*.*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*systemd\[\d*\]:\s*Starting\s*.*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*systemd\[\d*\]:\s*Reloaded\s*.*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*systemd\[\d*\]:\s*Reloading\s*.*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*systemd\[\d*\]:\s*Reached\s*.*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*systemd\[\d*\]:\s*Listening\s*.*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*systemd\[\d*\]:\s*Stopping\s*.*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*systemd\[\d*\]:\s*Stopped\s*.*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*systemd\[\d*\]:\s*Startup\s*finished\s*in\s*.*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*systemd\[\d*\]:\s*Created\s*.*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*systemd\[\d*\]:\s*Closed\s*.*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*systemd\[\d*\]:\s*Removed\s*.*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*ntpd\[\d*\]:\s*Listen\s*normally\s*.*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*ntpd\[\d*\]:\s*Listen\s*and\s*drop\s*on\s*.*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*ntpd\[\d*\]:\s*Listening\s*on\s*routing\s*socket\s*on.*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*CRON\[\d*\]:\s*\(\S*\)\s*CMD.*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*in\.tftpd\[\d*\]:\s*RRQ\s*from\s*\S*\s*filename.*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*rsyslogd:\s*\[.*\] rsyslogd was HUPed",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*kernel:\s*\[.*\] EXT4-fs \(.*\): mounted filesystem without journal. Opts: .*",
"\w*\s*[0-9]{1,2}\s*\d*:\d*:\d*\s*\w*\s*EXT4-fs\s*\(\S*\): write access unavailable, skipping orphan cleanup"
]
def matchrule(ligne,rulelist):
res = False
cpt = len(rulelist)
while cpt != 0 and not res:
cpt = cpt - 1
objmatch = rulelist[cpt].fullmatch(ligne)
if objmatch != None:
res = True
return res
relist = []
for tmp in RULE:
relist.append(re.compile(tmp))
fd = open(filename)
firstline_control = fd.readline().splitlines()[0]
inode_control = os.stat(filename).st_ino
fd.seek(0,2)
loop_control = 0
content = ""
while True:
loop_control = (loop_control + 1) % LOOP_CONTROL_EVERY
where = fd.tell()
ligne = fd.readline()
if ligne:
ligne = ligne.splitlines()
if ligne != []:
ligne = ligne[0]
if not matchrule(ligne,relist):
content = content + ligne + '\n'
else:
time.sleep(INTERVAL)
fd.seek(where)
if loop_control == 0:
where = fd.tell()
fd.seek(0,0)
firstline = fd.readline().splitlines()[0]
fd.seek(where)
inode = os.stat(filename).st_ino
if inode_control != inode:
inode_control = inode
fd.close()
fd = open(filename)
firstline_control = fd.readline().splitlines()[0]
fd.seek(0,0)
if firstline_control != firstline:
firstline_control = firstline
fd.seek(0,0)
if content != "":
try:
payload=json.dumps({"msgtype":"m.text","body":content})
r = requests.post(URL, data=payload)
content = ""
except:
print("Unexpected error:", sys.exc_info()[0])