Files
KNELProductionContainers/CloudronPackages/Elabftw/start.sh

53 lines
2.2 KiB
Bash

#!/bin/bash
set -e
# Create directory structure if it doesn't exist
if [ ! -d /app/data/uploads ]; then
mkdir -p /app/data/uploads
cp -r /tmp/data/uploads/* /app/data/uploads/ 2>/dev/null || true
chown -R cloudron:cloudron /app/data/uploads
fi
if [ ! -d /app/data/logs ]; then
mkdir -p /app/data/logs
cp -r /tmp/data/logs/* /app/data/logs/ 2>/dev/null || true
chown -R cloudron:cloudron /app/data/logs
fi
if [ ! -f /app/data/config/config.yml ]; then
mkdir -p /app/data/config
cp -r /tmp/data/config/* /app/data/config/ 2>/dev/null || true
# Configure database connection
sed -i "s/host: .*/host: ${CLOUDRON_MYSQL_HOST}/" /app/data/config/config.yml
sed -i "s/port: .*/port: ${CLOUDRON_MYSQL_PORT}/" /app/data/config/config.yml
sed -i "s/database: .*/database: ${CLOUDRON_MYSQL_DATABASE}/" /app/data/config/config.yml
sed -i "s/username: .*/username: ${CLOUDRON_MYSQL_USERNAME}/" /app/data/config/config.yml
sed -i "s/password: .*/password: ${CLOUDRON_MYSQL_PASSWORD}/" /app/data/config/config.yml
# Configure paths
sed -i "s|uploads: .*|uploads: /app/data/uploads|" /app/data/config/config.yml
sed -i "s|logs: .*|logs: /app/data/logs|" /app/data/config/config.yml
# Configure LDAP if enabled
if [ "${CLOUDRON_LDAP_ENABLED}" == "true" ]; then
# Update LDAP settings in config
sed -i "s/ldap_enabled: .*/ldap_enabled: true/" /app/data/config/config.yml
sed -i "s/ldap_host: .*/ldap_host: ${CLOUDRON_LDAP_SERVER}/" /app/data/config/config.yml
sed -i "s/ldap_port: .*/ldap_port: ${CLOUDRON_LDAP_PORT}/" /app/data/config/config.yml
sed -i "s/ldap_username: .*/ldap_username: ${CLOUDRON_LDAP_BIND_DN}/" /app/data/config/config.yml
sed -i "s/ldap_password: .*/ldap_password: ${CLOUDRON_LDAP_BIND_PASSWORD}/" /app/data/config/config.yml
sed -i "s/ldap_base_dn: .*/ldap_base_dn: ${CLOUDRON_LDAP_USERS_BASE_DN}/" /app/data/config/config.yml
fi
chown -R cloudron:cloudron /app/data/config
fi
# Create a symlink to the config file
ln -sf /app/data/config/config.yml /app/code/config.yml
# Set proper permissions
chown -R cloudron:cloudron /app/data
# Start the supervisord
exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf