diff --git a/README.md b/README.md index ebd4c2c46d..ed13264f45 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,31 @@ $ docker run -d \ postgresql ``` +## Auto configuration via environment variables + +The following environment variables are also honored for configuring your UXBOX instance: + +### Frontend +- `-e API_URL=...` (defaults to http://127.0.0.1:6060/api. **Only available at build time!** + +### Backend +- `-e UXBOX_HTTP_SERVER_DEBUG=...` (defaults to false) +- `-e UXBOX_DATABASE_USERNAME=...` (defaults to uxbox) +- `-e UXBOX_DATABASE_PASSWORD=...` (defaults to youshouldoverwritethiswithsomethingelse) +- `-e UXBOX_DATABASE_NAME=...` (defaults to uxbox) +- `-e UXBOX_DATABASE_SERVER=...` (defaults to localhost) +- `-e UXBOX_DATABASE_PORT=...` (defaults to 5432) +- `-e UXBOX_EMAIL_REPLY_TO=...` (defaults to no-reply@uxbox.io) +- `-e UXBOX_EMAIL_FROM=...` (defaults to no-reply@uxbox.io) +- `-e UXBOX_SMTP_HOST=...` (defaults to localhost) +- `-e UXBOX_SMTP_PORT=...` (defaults to 25) +- `-e UXBOX_SMTP_USER=...` (defaults to uxbox) +- `-e UXBOX_SMTP_PASSWORD=...` (defaults to youshouldoverwritethiswithsomethingelse) +- `-e UXBOX_SMTP_SSL=...` (defaults to false) +- `-e UXBOX_SMTP_TLS=...` (defaults to false) +- `-e UXBOX_SMTP_ENABLED=...` (defaults to false) +- `-e UXBOX_SECRET=...` (defaults to youshouldoverwritethiswithsomethingelse) + ## Contributing ## **Open to you!** diff --git a/backend/Dockerfile b/backend/Dockerfile index 16a5975f9e..8dcf9ebb9c 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -28,9 +28,14 @@ RUN set -ex; \ mkdir -p /srv/uxbox/resources/public/static; -ENV UXBOX_CONFIG=/srv/uxbox/config/application.properties \ - UXBOX_SECRET=youshouldoverwritethiswithsomethingelse \ - UXBOX_DEBUG=false \ +ENV UXBOX_HTTP_SERVER_DEBUG=false \ + UXBOX_DATABASE_USERNAME=uxbox \ + UXBOX_DATABASE_PASSWORD=youshouldoverwritethiswithsomethingelse \ + UXBOX_DATABASE_NAME=uxbox \ + UXBOX_DATABASE_SERVER=localhost \ + UXBOX_DATABASE_PORT=5432 \ + UXBOX_EMAIL_REPLY_TO=no-reply@uxbox.io \ + UXBOX_EMAIL_FROM=no-reply@uxbox.io \ UXBOX_SMTP_HOST=localhost \ UXBOX_SMTP_PORT=25 \ UXBOX_SMTP_USER=uxbox \ @@ -38,14 +43,7 @@ ENV UXBOX_CONFIG=/srv/uxbox/config/application.properties \ UXBOX_SMTP_SSL=false \ UXBOX_SMTP_TLS=false \ UXBOX_SMTP_ENABLED=false \ - UXBOX_MAIL_REPLY=no-reply@uxbox.io \ - UXBOX_MAIL_FROM=no-reply@uxbox.io \ - UXBOX_DB_TYPE=postgresql \ - UXBOX_DB_USER=uxbox \ - UXBOX_DB_PASSWORD=youshouldoverwritethiswithsomethingelse \ - UXBOX_DB_NAME=uxbox \ - UXBOX_DB_HOST=localhost \ - UXBOX_DB_PORT=5432 + UXBOX_SECRET=youshouldoverwritethiswithsomethingelse EXPOSE 6060 diff --git a/backend/docker-entrypoint.sh b/backend/docker-entrypoint.sh index 77f966ab78..a774e1a7b8 100644 --- a/backend/docker-entrypoint.sh +++ b/backend/docker-entrypoint.sh @@ -3,54 +3,5 @@ set -e echo "UXBOX backend Docker entrypoint initialization..." - -echo 'Backend configuration...' - -# If no config provided in volume, setup a default config from environment variables -if [ ! -f $APP_CONFIG ]; then - echo "Setting up initial application configuration..." - echo "# Initial configuration generated at $(date +%Y-%m-%dT%H:%M:%S%z)" > $APP_CONFIG - - echo "# ~~~~~" >> $APP_CONFIG - echo "# Security Configuration" >> $APP_CONFIG - echo "# ~~~~~" >> $APP_CONFIG - echo "secret=${UXBOX_SECRET}" >> $APP_CONFIG - - -e "s/:host .*/:host \"${UXBOX_DEBUG}" >> $APP_CONFIG - - echo "# ~~~~~" >> $APP_CONFIG - echo "# SMTP Configuration" >> $APP_CONFIG - echo "# ~~~~~" >> $APP_CONFIG - echo "smtp.host=${UXBOX_SMTP_HOST}" >> $APP_CONFIG - echo "smtp.port=${UXBOX_SMTP_PORT}" >> $APP_CONFIG - echo "smtp.user=${UXBOX_SMTP_USER}" >> $APP_CONFIG - echo "smtp.pass=${UXBOX_SMTP_PASSWORD}" >> $APP_CONFIG - echo "smtp.ssl=${UXBOX_SMTP_SSL}" >> $APP_CONFIG - echo "smtp.tls=${UXBOX_SMTP_TLS}" >> $APP_CONFIG - echo "smtp.enabled=${UXBOX_SMTP_ENABLED}" >> $APP_CONFIG - - echo "# ~~~~~" >> $APP_CONFIG - echo "# Email Configuration" >> $APP_CONFIG - echo "# ~~~~~" >> $APP_CONFIG - echo "email.host=${UXBOX_MAIL_REPLY}" >> $APP_CONFIG - echo "email.port=${UXBOX_MAIL_FROM}" >> $APP_CONFIG - - echo "# ~~~~~" >> $APP_CONFIG - echo "# Database Configuration" >> $APP_CONFIG - echo "# ~~~~~" >> $APP_CONFIG - echo "database.adapter=${UXBOX_DB_TYPE}" >> $APP_CONFIG - echo "database.username=${UXBOX_DB_USER}" >> $APP_CONFIG - echo "database.password=${UXBOX_DB_PASSWORD}" >> $APP_CONFIG - echo "database.database-name=${UXBOX_DB_NAME}" >> $APP_CONFIG - echo "database.server-name=${UXBOX_DB_HOST}" >> $APP_CONFIG - echo "database.port-number=${UXBOX_DB_PORT}" >> $APP_CONFIG - - echo "Configuration generated." -else - echo "Configuration found." -fi - -# TODO Find how to actually pass configuration file to JAR - -echo 'Running backend' +echo 'Running UXBOX backend' exec "$@" diff --git a/docker-compose.yml b/docker-compose.yml index 92aff48c33..8c28c5222d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -27,10 +27,17 @@ services: ports: - "6060:6060" environment: - # Security setup - - "UXBOX_SECRET=youshouldoverwritethiswithsomethingelse" - # Debug setup - - "UXBOX_DEBUG=false" + # HTTP setup + - "UXBOX_HTTP_SERVER_DEBUG=false" + # Database setup + - "UXBOX_DATABASE_USERNAME=uxbox" + - "UXBOX_DATABASE_PASSWORD=youshouldoverwritethiswithsomethingelse" + - "UXBOX_DATABASE_NAME=uxbox" + - "UXBOX_DATABASE_SERVER=db" + - "UXBOX_DATABASE_PORT=5432" + # Mail setup + - "UXBOX_EMAIL_REPLY_TO=no-reply@uxbox.io" + - "UXBOX_EMAIL_FROM=no-reply@uxbox.io" # STMP setup - "UXBOX_SMTP_HOST=localhost" - "UXBOX_SMTP_PORT=25" @@ -39,16 +46,8 @@ services: - "UXBOX_SMTP_SSL=false" - "UXBOX_SMTP_TLS=false" - "UXBOX_SMTP_ENABLED=false" - # Mail setup - - "UXBOX_MAIL_REPLY=no-reply@uxbox.io" - - "UXBOX_MAIL_FROM=no-reply@uxbox.io" - # Database setup - - "UXBOX_DB_TYPE=postgresql" - - "UXBOX_DB_USER=uxbox" - - "UXBOX_DB_PASSWORD=youshouldoverwritethiswithsomethingelse" - - "UXBOX_DB_NAME=uxbox" - - "UXBOX_DB_HOST=db" - - "UXBOX_DB_PORT=5432" + # Security setup + - "UXBOX_SECRET=youshouldoverwritethiswithsomethingelse" frontend: build: ./frontend