diff --git a/README.MD b/README.MD index 9c7ccda..960c312 100644 --- a/README.MD +++ b/README.MD @@ -1,95 +1,26 @@ ## DEBMAKER -The main goal of this repository is allow to create application from source without install compilation utility directly on the main system. -All package are install in folder in chroot environnement with only one script. - -### Requirement - - debootstrap (ie apt install debootstrap) - - Run as root +The main goal of this project is allow to create application from source without install compilation utility directly on the main system. +Compilation environnements are stores in temporary files. +All package are install with chroot environnement. ### Usage +To create deb file you just need to run the bellow command : + ```bash -. vaultwarden2deb +. joplin-server2deb debmake_runAllStep ``` -### package are available without compilation +### packages available in shared repository - - [joplin-server](#joplin-server) + - [element-web](#element-web) - [gotify](#gotify) + - [joplin-server](#joplin-server) - [rss-bridge](#rss-bridge) - [vaultwarden and vaultwarden-web](#vaultwarden-and-vaultwarden-web) + - [wallabag](#wallabag) - [zigbee2mqtt](#zigbee2mqtt) - - [element-web](#element-web) - -#### joplin-server - -```bash -apt install -y python wget ca-certificates -wget -qO - https://deb.lgy.fr/install.sh | bash -wget -qO - https://deb.nodesource.com/setup_16.x | bash -apt-get update -apt-get install -y joplin-server - -#Edit /etc/default/joplin-server - -systemctl enable --now joplin-server -``` - -#### gotify - -```bash -apt install -y python wget ca-certificates -wget -qO - https://deb.lgy.fr/install.sh | bash -apt-get update -apt-get install -y gotify-server - -#Edit /etc/gotify/config.yml - -systemctl enable --now gotify -``` - -#### rss-bridge - -```bash -wget -qO - https://deb.lgy.fr/install.sh | bash -apt install rss-bridge - -# sample configuration for apache2 - -apt install libapache2-mod-php -cp /usr/share/doc/rss-bridge/apache2-rss-bridge.conf /etc/apache2/site-available/ -a2ensite apache2-rss-bridge - -# edit /etc/apache2/site-available/apache2-rss-bridge.conf - -systemctl restart apache2 -``` - - -#### vaultwarden and vaultwarden-web - -```bash -wget -qO - https://deb.lgy.fr/install.sh | bash -apt install vaultwarden vaultwarden-web - -#Edit /etc/default/vaultwarden - -systemctl enable --now vaultwarden -``` - -#### zigbee2mqtt - -```bash -apt install -y wget ca-certificates -wget -qO - https://deb.lgy.fr/install.sh | bash -apt-get install -y zigbee2mqtt - -#Edit /etc/zigbee2mqtt/configuration.yaml - -systemctl enable --now zigbee2mqtt -``` - #### element-web @@ -108,3 +39,86 @@ a2ensite element-web systemctl restart apache2 ``` +#### gotify + +```bash +apt install -y python wget ca-certificates +wget -qO - https://deb.lgy.fr/install.sh | bash +apt-get update +apt-get install -y gotify-server + +#Edit /etc/gotify/config.yml + +systemctl enable --now gotify +``` + +#### joplin-server + +```bash +apt install -y python wget ca-certificates +wget -qO - https://deb.lgy.fr/install.sh | bash +wget -qO - https://deb.nodesource.com/setup_16.x | bash +apt-get update +apt-get install -y joplin-server + +#Edit /etc/default/joplin-server + +systemctl enable --now joplin-server +``` + +#### rss-bridge + +```bash +wget -qO - https://deb.lgy.fr/install.sh | bash +apt install rss-bridge + +# sample configuration for apache2 + +apt install libapache2-mod-php +cp /usr/share/doc/rss-bridge/apache2-rss-bridge.conf /etc/apache2/site-available/rss-bridge.conf +a2ensite rss-bridge + +# edit /etc/apache2/site-available/rss-bridge.conf + +systemctl restart apache2 +``` + +#### vaultwarden and vaultwarden-web + +```bash +wget -qO - https://deb.lgy.fr/install.sh | bash +apt install vaultwarden vaultwarden-web + +#Edit /etc/default/vaultwarden + +systemctl enable --now vaultwarden +``` + +#### wallabag + +```bash +wget -qO - https://deb.lgy.fr/install.sh | bash +apt install wallabag + +# sample configuration for apache2 + +apt install libapache2-mod-php +cp /usr/share/doc/rss-bridge/apache2-wallabag.conf /etc/apache2/site-available/wallabag.conf +a2ensite wallabag + +# edit /etc/apache2/site-available/wallabag.conf + +systemctl restart apache2 +``` + +#### zigbee2mqtt + +```bash +apt install -y wget ca-certificates +wget -qO - https://deb.lgy.fr/install.sh | bash +apt-get install -y zigbee2mqtt + +#Edit /etc/zigbee2mqtt/configuration.yaml + +systemctl enable --now zigbee2mqtt +``` diff --git a/lib/function.sh b/lib/function.sh index 414fc56..443bb88 100644 --- a/lib/function.sh +++ b/lib/function.sh @@ -93,7 +93,7 @@ debmake_runStepCustom() { CURRENT_STEP=$1 valideStep ${CURRENT_STEP} PREVIOUS=$(previousStep ${CURRENT_STEP}) - echo -n copy PREVIOUS in $PREVIOUS ... + echo -n copy $PREVIOUS in $CURRENT_STEP ... cp ${CACHE_APP}/${PREVIOUS} ${CACHE_APP}/${CURRENT_STEP} echo ": OK" debmake_chrootStep $1 /tmp/dist/exec_in_chroot.sh ${APP} ${CURRENT_STEP} ${GIT_VERSION} ${DEB_VERSION} diff --git a/ressources/mautrix-whatsapp/mautrix-whatsapp b/ressources/mautrix-whatsapp/mautrix-whatsapp index d25deba..cb5d9f8 100755 --- a/ressources/mautrix-whatsapp/mautrix-whatsapp +++ b/ressources/mautrix-whatsapp/mautrix-whatsapp @@ -3,7 +3,7 @@ STEP="envinit prebuild build makedeb" envinit() { - apt install -y --no-install-recommends ca-certificates git libolm3 libolm-dev build-essential wget + apt install -y --no-install-recommends wget fakeroot dpkg ca-certificates git libolm3 libolm-dev build-essential wget -qO - https://go.dev/dl/go1.17.7.linux-amd64.tar.gz | tar -C /usr/local -xz } diff --git a/ressources/vaultwarden-web/vaultwarden-web b/ressources/vaultwarden-web/vaultwarden-web index 185022b..71c4aac 100755 --- a/ressources/vaultwarden-web/vaultwarden-web +++ b/ressources/vaultwarden-web/vaultwarden-web @@ -3,22 +3,18 @@ STEP="envinit prebuild build makedeb" envinit() { - apt install -y --no-install-recommends build-essential git python wget ca-certificates + apt install -y --no-install-recommends wget fakeroot dpkg ca-certificates build-essential git python wget -qO - https://deb.nodesource.com/setup_16.x | bash - #wget -qO - https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor > /usr/share/keyrings/yarnkey.gpg - #echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" > /etc/apt/sources.list.d/yarn.list apt-get update - #apt-get install -y yarn nodejs apt-get install -y nodejs } prebuild(){ - VERSION=$1 + GIT_VERSION=$1 - cd /tmp - git clone https://github.com/bitwarden/web.git web-vault + GIT_VERSION=$1 + git clone --depth 1 -b ${GIT_VERSION} https://github.com/bitwarden/web.git /tmp/web-vault cd /tmp/web-vault - git checkout ${VERSION} git submodule update --init --recursive cd .. @@ -26,10 +22,11 @@ prebuild(){ cd bw_web_builds PATCH=$(git tag --sort=v:refname | tail -n1) git checkout ${PATCH} - cp patches/${PATCH}.patch ../web-vault/ + PATCH_FILE=$(ls patches/ | sort -V | tail -n 1) + cp patches/${PATCH_FILE} ../web-vault/ cd /tmp/web-vault - git apply ${PATCH}.patch + git apply ${PATCH_FILE} } build() { diff --git a/ressources/vaultwarden/vaultwarden b/ressources/vaultwarden/vaultwarden index f009539..2e25cf9 100755 --- a/ressources/vaultwarden/vaultwarden +++ b/ressources/vaultwarden/vaultwarden @@ -3,7 +3,7 @@ STEP="envinit prebuild build makedeb" envinit() { - apt install -y --no-install-recommends build-essential git wget ca-certificates libmariadb-dev libpq-dev pkg-config libmysql++-dev + apt install -y --no-install-recommends build-essential git wget fakeroot dpkg ca-certificates libmariadb-dev libpq-dev pkg-config libmysql++-dev cd /tmp wget -qO - https://sh.rustup.rs > rustup bash rustup -qy diff --git a/ressources/wallabag/rootfs/usr/share/doc/wallabag/apache2-grocy.conf b/ressources/wallabag/rootfs/usr/share/doc/wallabag/apache2-grocy.conf deleted file mode 100644 index ad814b9..0000000 --- a/ressources/wallabag/rootfs/usr/share/doc/wallabag/apache2-grocy.conf +++ /dev/null @@ -1,11 +0,0 @@ - - ServerName grocy.net.lgy.fr - - DocumentRoot /usr/share/grocy/public/ - - - Options -Indexes -MultiViews +FollowSymLinks - AllowOverride all - Require all granted - - diff --git a/ressources/wallabag/rootfs/usr/share/doc/wallabag/apache2-wallabag.conf b/ressources/wallabag/rootfs/usr/share/doc/wallabag/apache2-wallabag.conf new file mode 100644 index 0000000..2e5b137 --- /dev/null +++ b/ressources/wallabag/rootfs/usr/share/doc/wallabag/apache2-wallabag.conf @@ -0,0 +1,23 @@ + + servername wallabag.domain.com + ServerAdmin admin@domain.com + + DocumentRoot /usr/share/wallabag/web/ + Protocols h2c http/1.1 + + + Options +SymLinksIfOwnerMatch + Options -MultiViews + AllowOverride none + Require all granted + RewriteEngine On + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^(.*)$ app.php [QSA,L] + + + + RewriteEngine Off + + + + diff --git a/ressources/wallabag/wallabag b/ressources/wallabag/wallabag index 565864a..52bce0d 100755 --- a/ressources/wallabag/wallabag +++ b/ressources/wallabag/wallabag @@ -25,7 +25,8 @@ makedeb(){ cp -fr /tmp/wallabag/src ${PATH_DEB}/usr/share/wallabag/src cp -fr /tmp/wallabag/vendor ${PATH_DEB}/usr/share/wallabag/vendor cp -fr /tmp/wallabag/web ${PATH_DEB}/usr/share/wallabag/web - + echo need by synfony to find project directory > ${PATH_DEB}/usr/share/wallabag/composer.json + cp -fr /tmp/wallabag/data ${PATH_DEB}/var/lib/wallabag/data cp -fr /tmp/wallabag/var ${PATH_DEB}/var/lib/wallabag/var @@ -33,7 +34,6 @@ makedeb(){ ln -s /var/lib/wallabag/data ${PATH_DEB}/usr/share/wallabag/data ln -s /var/lib/wallabag/var ${PATH_DEB}/usr/share/wallabag/var - ln -s /etc/wallabag/parameters.yml ${PATH_DEB}/usr/share/wallabag/app/config/parameters.yml sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/ diff --git a/vaultwarden2deb b/vaultwarden2deb index 5f98da6..56811de 100755 --- a/vaultwarden2deb +++ b/vaultwarden2deb @@ -5,6 +5,6 @@ VERSION=1.24.0 GIT_VERSION=$VERSION DEB_VERSION=$VERSION-1 DEBIAN_VERSION_CODENAME=bullseye -IMAGE_SIZE= +IMAGE_SIZE=6 source ./lib/function.sh diff --git a/wallabag2deb b/wallabag2deb index 56fb4c0..4f6e357 100755 --- a/wallabag2deb +++ b/wallabag2deb @@ -3,8 +3,8 @@ APP=wallabag VERSION=2.4.3 GIT_VERSION=$VERSION -DEB_VERSION=$VERSION-1 +DEB_VERSION=$VERSION-3 DEBIAN_VERSION_CODENAME=bullseye -IMAGE_SIZE= +IMAGE_SIZE=2 source ./lib/function.sh