mirror of
https://github.com/vichan-devel/vichan.git
synced 2024-11-30 18:24:29 +01:00
88 lines
2.3 KiB
Bash
Executable File
88 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -eu
|
|
|
|
function set_cfg() {
|
|
if [ -L "/var/www/inc/$1" ]; then
|
|
echo "INFO: Resetting $1"
|
|
rm "/var/www/inc/$1"
|
|
cp "/code/inc/$1" "/var/www/inc/$1"
|
|
chown www-data "/var/www/inc/$1"
|
|
chgrp www-data "/var/www/inc/$1"
|
|
chmod 600 "/var/www/inc/$1"
|
|
else
|
|
echo "INFO: Using existing $1"
|
|
fi
|
|
}
|
|
|
|
if ! mountpoint -q /var/www; then
|
|
echo "WARNING: '/var/www' is not a mountpoint. All the data will remain inside the container!"
|
|
fi
|
|
|
|
if [ ! -w /var/www ] ; then
|
|
echo "ERROR: '/var/www' is not writable. Closing."
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "${XDEBUG_OUT_DIR:-''}" ] ; then
|
|
echo "INFO: Initializing xdebug out directory at $XDEBUG_OUT_DIR"
|
|
mkdir -p "$XDEBUG_OUT_DIR"
|
|
chown www-data "$XDEBUG_OUT_DIR"
|
|
chgrp www-data "$XDEBUG_OUT_DIR"
|
|
chmod 755 "$XDEBUG_OUT_DIR"
|
|
fi
|
|
|
|
# Link the entrypoints from the exposed directory.
|
|
ln -nfs \
|
|
/code/tools/ \
|
|
/code/*.php \
|
|
/code/LICENSE.* \
|
|
/code/install.sql \
|
|
/var/www/
|
|
# Static files accessible from the webserver must be copied.
|
|
cp -ur /code/static /var/www/
|
|
cp -ur /code/stylesheets /var/www/
|
|
|
|
# Ensure correct permissions are set, since this might be bind mount.
|
|
chown www-data /var/www
|
|
chgrp www-data /var/www
|
|
|
|
# Initialize an empty robots.txt with the default if it doesn't exist.
|
|
touch /var/www/robots.txt
|
|
|
|
# Link the cache and tmp files directory.
|
|
ln -nfs /var/tmp/vichan /var/www/tmp
|
|
|
|
# Link the javascript directory.
|
|
ln -nfs /code/js /var/www/
|
|
|
|
# Link the html templates directory and it's cache.
|
|
ln -nfs /code/templates /var/www/
|
|
ln -nfs -T /var/cache/template-cache /var/www/templates/cache
|
|
chown -h www-data /var/www/templates/cache
|
|
chgrp -h www-data /var/www/templates/cache
|
|
|
|
# Link the generic cache.
|
|
ln -nfs -T /var/cache/gen-cache /var/www/tmp/cache
|
|
chown -h www-data /var/www/tmp/cache
|
|
chgrp -h www-data /var/www/tmp/cache
|
|
|
|
# Create the included files directory and link them
|
|
install -d -m 700 -o www-data -g www-data /var/www/inc
|
|
for file in /code/inc/*; do
|
|
file="${file##*/}"
|
|
if [ ! -e /var/www/inc/$file ]; then
|
|
ln -s /code/inc/$file /var/www/inc/
|
|
fi
|
|
done
|
|
|
|
# Copy an empty instance configuration if the file is a link (it was linked because it did not exist before).
|
|
set_cfg 'instance-config.php'
|
|
set_cfg 'secrets.php'
|
|
|
|
# Link the composer dependencies.
|
|
ln -nfs /code/vendor /var/www/
|
|
|
|
# Start the php-fpm server.
|
|
exec php-fpm
|