vaultwarden : tentative de standardisation++

This commit is contained in:
Gitouche 2023-08-18 18:14:05 +02:00
parent 3680cace09
commit 73d617216b
5 changed files with 77 additions and 13 deletions

View File

@ -39,16 +39,16 @@ SMTP_SECURITY=off
SMTP_PORT=25 SMTP_PORT=25
EOT EOT
export vaultwarden_image export service_image
export vaultwarden_version export service_version
export database_image export database_image
export database_version export database_version
export database_path export database_path
export container_name export container_name
export db_container_name export db_container_name
if ! podman image exists ${vaultwarden_image}:${vaultwarden_version}; then if ! podman image exists ${service_image}:${service_version}; then
podman image pull ${vaultwarden_image}:${vaultwarden_version} || exit 1 podman image pull ${service_image}:${service_version} || exit 1
fi fi
if ! podman image exists ${database_image}:${database_version}; then if ! podman image exists ${database_image}:${database_version}; then
podman image pull ${database_image}:${database_version} || exit 1 podman image pull ${database_image}:${database_version} || exit 1

64
podman-vaultwarden/50_update.sh Executable file
View File

@ -0,0 +1,64 @@
#!/usr/bin/env bash
ABSDIR="$( dirname "$(readlink -f -- "$0")" )"
source "${ABSDIR}"/../functions.sh
source "${ABSDIR}"/vars.sh
ensure_pwd_is_scriptdir
ensure_not_root
ensure_pod_exists "${pod_name}"
ensure_systemd_unit_exists "${service_name}"
ensure_variables_are_defined "$envvars"
current_version=$(podman container list -a --format "{{.Image}}" | grep -F "${service_image}" | awk -F: '{print $NF}')
reinstall_please () {
for image in ${upstream_images}; do
if ! podman image exists "${service_image}":"${service_version}"; then
podman image pull "${service_image}":"${service_version}" || exit 1
fi
done &&
check_pod_running "${pod_name}" && ./40_stop.sh
./70_disable.sh && \
./80_destroy.sh && \
./10_install.sh && \
./20_enable.sh && \
./30_start.sh
}
cleanup_images () {
echo "Remove ${current_version} images?"
select yn in "Yes" "No"; do
case $yn in
Yes)
podman image rm "${service_image}":"${current_version}"
exit 0
;;
No)
exit 0
;;
esac
done
}
if [ "${current_version}" != "${service_version}" ]; then
if [[ "${current_version}" > "${service_version}" ]]; then
echo "WARNING : you are about to DOWNGRADE your installation"
fi
echo "Migrating from ${current_version} to ${service_version}. Proceed?"
select yn in "Yes" "No"; do
case $yn in
Yes)
reinstall_please && \
cleanup_images
exit 0
;;
No)
exit 0
;;
esac
done
else
echo "Already using version ${service_version}. Exiting."
fi

View File

@ -9,11 +9,11 @@ ensure_not_root
buildfolder=/tmp/vaultwarden-$$ buildfolder=/tmp/vaultwarden-$$
if ! podman image exists ${vaultwarden_image}:${vaultwarden_version}; then if ! podman image exists ${service_image}:${service_version}; then
mkdir ${buildfolder} && mkdir ${buildfolder} &&
if git clone --depth=1 --branch=${vaultwarden_version} https://github.com/dani-garcia/vaultwarden.git ${buildfolder}/ ; then if git clone --depth=1 --branch=${service_version} https://github.com/dani-garcia/vaultwarden.git ${buildfolder}/ ; then
TMPDIR=${HOME} podman image build \ TMPDIR=${HOME} podman image build \
-t ${vaultwarden_image}:${vaultwarden_version} \ -t ${service_image}:${service_version} \
--build-arg DB=postgresql,enable_mimalloc \ --build-arg DB=postgresql,enable_mimalloc \
-f ${buildfolder}/docker/amd64/Dockerfile.alpine \ -f ${buildfolder}/docker/amd64/Dockerfile.alpine \
${buildfolder} || retval=false ${buildfolder} || retval=false
@ -26,7 +26,7 @@ if ! podman image exists ${vaultwarden_image}:${vaultwarden_version}; then
podman image rm -f "$(podman image list -a -q -- dockerio/library/alpine)" podman image rm -f "$(podman image list -a -q -- dockerio/library/alpine)"
eval "$retval" eval "$retval"
else else
echo "Image ${vaultwarden_image}:${vaultwarden_version} already built" echo "Image ${service_image}:${service_version} already built"
fi && fi &&
oci_push_to_registry ${vaultwarden_image}:${vaultwarden_version} oci_push_to_registry ${service_image}:${service_version}

View File

@ -14,7 +14,7 @@ services:
app: app:
container_name: ${container_name} container_name: ${container_name}
image: ${vaultwarden_image}:${vaultwarden_version} image: ${service_image}:${service_version}
volumes: volumes:
- data:/data:Z - data:/data:Z
ports: ports:

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
## vars ## vars
vaultwarden_image="git.garbaye.fr/garbaye/vaultwarden" service_image="git.garbaye.fr/garbaye/vaultwarden"
vaultwarden_version='1.29.1' service_version='1.29.1'
database_image="docker.io/library/postgres" database_image="docker.io/library/postgres"
database_version='14-alpine' database_version='14-alpine'
database_path="/var/lib/postgresql/data" database_path="/var/lib/postgresql/data"
@ -20,7 +20,7 @@ envvars='GARBAYE_VAULTWARDEN_ADMIN_PASSWORD GARBAYE_VAULTWARDEN_DATABASE_PASSWOR
project_name=${PWD##*/} project_name=${PWD##*/}
pod_name="pod_${project_name}" pod_name="pod_${project_name}"
service_name="pod-${pod_name}.service" service_name="pod-${pod_name}.service"
upstream_images="${vaultwarden_image} ${postgres_image}" upstream_images="${service_image} ${database_image}"
datavolume="${project_name}_data" datavolume="${project_name}_data"
dbvolume="${project_name}_database" dbvolume="${project_name}_database"
container_name="${project_name}_app" container_name="${project_name}_app"