Add .env.dist, Manticore service, and environment substitution

Introduced a new `.env.dist` template to streamline environment variable management. Added Manticore service to the `docker-compose.yml` for enhanced database querying support. Updated `docker-entrypoint.sh` to use `envsubst` for environment substitution when generating `.env`.
This commit is contained in:
PyRowMan
2024-12-18 12:01:54 +01:00
parent 8c1a6f4cd8
commit 96b95dc6ee
3 changed files with 211 additions and 4 deletions
+208
View File
@@ -0,0 +1,208 @@
DB_CONNECTION=${DB_CONNECTION}
DB_HOST=${DB_HOST}
DB_PORT=${DB_PORT}
DB_ROOTPASSWORD=${DB_ROOTPASSWORD}
DB_SOCKET=${DB_SOCKET}
DB_USERNAME=${DB_USERNAME}
DB_PASSWORD=${DB_PASSWORD}
DB_DATABASE=${DB_DATABASE}
COMPOSER_AUTH='${COMPOSER_AUTH}'
MANTICORESEARCH_HOST=${MANTICORESEARCH_HOST}
MANTICORESEARCH_PORT=${MANTICORESEARCH_PORT}
ELASTICSEARCH_HOST=${ELASTICSEARCH_HOST}
ELASTICSEARCH_PORT=${ELASTICSEARCH_PORT}
ELASTICSEARCH_SCHEME=${ELASTICSEARCH_SCHEME}
ELASTICSEARCH_USER=${ELASTICSEARCH_USER}
ELASTICSEARCH_PASS=${ELASTICSEARCH_PASS}
ELASTICSEARCH_LOGGING=${ELASTICSEARCH_LOGGING}
ELASTICSEARCH_ENABLED=${ELASTICSEARCH_ENABLED}
NNTP_COMPRESSED_HEADERS=${NNTP_COMPRESSED_HEADERS}
USE_ALTERNATE_NNTP_SERVER=${USE_ALTERNATE_NNTP_SERVER}
NNTP_USERNAME=${NNTP_USERNAME}
NNTP_PASSWORD=${NNTP_PASSWORD}
NNTP_SERVER=${NNTP_SERVER}
NNTP_PORT=${NNTP_PORT}
NNTP_CONNECTIONS=${NNTP_CONNECTIONS}
NNTP_SSLENABLED=${NNTP_SSLENABLED}
NNTP_SOCKET_TIMEOUT=${NNTP_SOCKET_TIMEOUT}
NNTP_USERNAME_A=${NNTP_USERNAME_A}
NNTP_PASSWORD_A=${NNTP_PASSWORD_A}
NNTP_SERVER_A=${NNTP_SERVER_A}
NNTP_PORT_A=${NNTP_PORT_A}
NNTP_CONNECTIONS_A=${NNTP_CONNECTIONS_A}
NNTP_SSLENABLED_A=${NNTP_SSLENABLED_A}
NNTP_SOCKET_TIMEOUT_A=${NNTP_SOCKET_TIMEOUT_A}
NN_MULTIPROCESSING_MAX_CHILD_TIME=${NN_MULTIPROCESSING_MAX_CHILD_TIME}
ADMIN_USER=${ADMIN_USER}
ADMIN_PASS=${ADMIN_PASS}
ADMIN_EMAIL=${ADMIN_EMAIL}
APP_NAME=${APP_NAME}
APP_ENV=${APP_ENV}
APP_DEBUG=${APP_DEBUG}
APP_TIMEZONE=${APP_TIMEZONE}
APP_URL=${APP_URL}
APP_LOCALE=${APP_LOCALE}
APP_FALLBACK_LOCALE=${APP_FALLBACK_LOCALE}
APP_FAKER_LOCALE=${APP_FAKER_LOCALE}
APP_MAINTENANCE_DRIVER=${APP_MAINTENANCE_DRIVER}
APP_MAINTENANCE_STORE=${APP_MAINTENANCE_STORE}
BCRYPT_ROUNDS=${BCRYPT_ROUNDS}
APP_KEY=${APP_KEY}
LOG_CHANNEL=${LOG_CHANNEL}
LOG_STACK=${LOG_STACK}
PASSWORD_HASH=${PASSWORD_HASH}
BROADCAST_CONNECTION=${BROADCAST_CONNECTION}
CACHE_STORE=${CACHE_STORE}
QUEUE_CONNECTION=${QUEUE_CONNECTION}
REDIS_HOST=${REDIS_HOST}
REDIS_PASSWORD=${REDIS_PASSWORD}
REDIS_PORT=${REDIS_PORT}
REDIS_CLIENT=${REDIS_CLIENT}
SESSION_DRIVER=${SESSION_DRIVER}
SESSION_DOMAIN=${SESSION_DOMAIN}
SESSION_SECURE_COOKIE=${SESSION_SECURE_COOKIE}
SESSION_ENCRYPT=${SESSION_ENCRYPT}
SESSION_COOKIE=${SESSION_COOKIE}
SESSION_PATH=${SESSION_PATH}
MAIL_DRIVER=${MAIL_DRIVER}
MAIL_HOST=${MAIL_HOST}
MAIL_PORT=${MAIL_PORT}
MAIL_USERNAME=${MAIL_USERNAME}
MAIL_PASSWORD=${MAIL_PASSWORD}
MAIL_ENCRYPTION=${MAIL_ENCRYPTION}
MAIL_FROM_ADDRESS=${MAIL_FROM_ADDRESS}
MAIL_FROM_NAME=${MAIL_FROM_NAME}
AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION}
AWS_BUCKET=${AWS_BUCKET}
PUSHER_APP_ID=${PUSHER_APP_ID}
PUSHER_APP_KEY=${PUSHER_APP_KEY}
PUSHER_APP_SECRET=${PUSHER_APP_SECRET}
PUSHER_APP_CLUSTER=${PUSHER_APP_CLUSTER}
MIX_PUSHER_APP_KEY=${PUSHER_APP_KEY}
MIX_PUSHER_APP_CLUSTER=${PUSHER_APP_CLUSTER}
NOCAPTCHA_ENABLED=${NOCAPTCHA_ENABLED}
NOCAPTCHA_SITEKEY=${NOCAPTCHA_SITEKEY}
NOCAPTCHA_SECRET=${NOCAPTCHA_SECRET}
SCOUT_DRIVER=${SCOUT_DRIVER}
SCOUT_QUEUE=${SCOUT_QUEUE}
ITEMS_PER_PAGE=${ITEMS_PER_PAGE}
ITEMS_PER_COVER_PAGE=${ITEMS_PER_COVER_PAGE}
MAX_PAGER_RESULTS=${MAX_PAGER_RESULTS}
ECHOCLI=${ECHOCLI}
RENAME_PAR2=${RENAME_PAR2}
ADD_PAR2=${ADD_PAR2}
RENAME_MUSIC_MEDIAINFO=${RENAME_MUSIC_MEDIAINFO}
CACHE_EXPIRY_SHORT=${CACHE_EXPIRY_SHORT}
CACHE_EXPIRY_MEDIUM=${CACHE_EXPIRY_MEDIUM}
CACHE_EXPIRY_LONG=${CACHE_EXPIRY_LONG}
SSL_CAFILE=${SSL_CAFILE}
SSL_CAPATH=${SSL_CAPATH}
SSL_VERIFY_PEER=${SSL_VERIFY_PEER}
SSL_VERIFY_HOST=${SSL_VERIFY_HOST}
SSL_ALLOW_SELF_SIGNED=${SSL_ALLOW_SELF_SIGNED}
SCRAPE_IRC_USERNAME=${SCRAPE_IRC_USERNAME}
SCRAPE_IRC_SERVER=${SCRAPE_IRC_SERVER}
SCRAPE_IRC_PORT=${SCRAPE_IRC_PORT}
SCRAPE_IRC_TLS=${SCRAPE_IRC_TLS}
SCRAPE_IRC_PASSWORD=${SCRAPE_IRC_PASSWORD}
SMARTY_DEBUG=${SMARTY_DEBUG}
SMARTY_CACHING=${SMARTY_CACHING}
SMARTY_CACHE_LIFE=${SMARTY_CACHE_LIFE}
SMARTY_COMPILE_CHECK=${SMARTY_COMPILE_CHECK}
SMARTY_FORCE_COMPILE=${SMARTY_FORCE_COMPILE}
SMARTY_CACHE_DRIVER=${SMARTY_CACHE_DRIVER}
TWITCH_CLIENT_ID=${TWITCH_CLIENT_ID}
TWITCH_CLIENT_SECRET=${TWITCH_CLIENT_SECRET}
IGDB_CACHE_LIFETIME=${IGDB_CACHE_LIFETIME}
TMDB_APIKEY=${TMDB_APIKEY}
TMDB_CACHE=${TMDB_CACHE}
TMDB_LOG=${TMDB_LOG}
TVDB_APIKEY=${TVDB_APIKEY}
TVDB_PIN=${TVDB_PIN}
GIANTBOMB_APIKEY=${GIANTBOMB_APIKEY}
ANIDB_APIKEY=${ANIDB_APIKEY}
FANARTTV_APIKEY=${FANARTTV_APIKEY}
OMDB_APIKEY=${OMDB_APIKEY}
TRAKTTV_APIKEY=${TRAKTTV_APIKEY}
TEMP_UNRAR_PATH=${TEMP_UNRAR_PATH}
TEMP_UNZIP_PATH=${TEMP_UNZIP_PATH}
VIEW_COMPILED_PATH=${VIEW_COMPILED_PATH}
ASSET_URL=${ASSET_URL}
TELESCOPE_DRIVER=${TELESCOPE_DRIVER}
TELESCOPE_ENABLED=${TELESCOPE_ENABLED}
TELESCOPE_FULL_IN_PRODUCTION=${TELESCOPE_FULL_IN_PRODUCTION}
TELESCOPE_CACHE_WATCHER=${TELESCOPE_CACHE_WATCHER}
TELESCOPE_COMMAND_WATCHER=${TELESCOPE_COMMAND_WATCHER}
TELESCOPE_DUMP_WATCHER=${TELESCOPE_DUMP_WATCHER}
TELESCOPE_EVENT_WATCHER=${TELESCOPE_EVENT_WATCHER}
TELESCOPE_EXCEPTION_WATCHER=${TELESCOPE_EXCEPTION_WATCHER}
TELESCOPE_JOB_WATCHER=${TELESCOPE_JOB_WATCHER}
TELESCOPE_LOG_WATCHER=${TELESCOPE_LOG_WATCHER}
TELESCOPE_MAIL_WATCHER=${TELESCOPE_MAIL_WATCHER}
TELESCOPE_MODEL_WATCHER=${TELESCOPE_MODEL_WATCHER}
TELESCOPE_NOTIFICATION_WATCHER=${TELESCOPE_NOTIFICATION_WATCHER}
TELESCOPE_QUERY_WATCHER=${TELESCOPE_QUERY_WATCHER}
TELESCOPE_REDIS_WATCHER=${TELESCOPE_REDIS_WATCHER}
TELESCOPE_REQUEST_WATCHER=${TELESCOPE_REQUEST_WATCHER}
TELESCOPE_RESPONSE_SIZE_LIMIT=${TELESCOPE_RESPONSE_SIZE_LIMIT}
TELESCOPE_GATE_WATCHER=${TELESCOPE_GATE_WATCHER}
TELESCOPE_SCHEDULE_WATCHER=${TELESCOPE_SCHEDULE_WATCHER}
HORIZON_PREFIX=${HORIZON_PREFIX}
POSTMARK_TOKEN=${POSTMARK_TOKEN}
PURGE_INACTIVE_USERS=${PURGE_INACTIVE_USERS}
OTP_ENABLED=${OTP_ENABLED}
FLARE_KEY=${FLARE_KEY}
UNRAR_PATH=${UNRAR_PATH}
UNZIP_PATH=${UNZIP_PATH}
CHECK_PASSWORDED_RARS=${CHECK_PASSWORDED_RARS}
DELETE_PASSWORDED_RELEASES=${DELETE_PASSWORDED_RELEASES}
DELETE_POSSIBLE_PASSWORDED_RELEASES=${DELETE_POSSIBLE_PASSWORDED_RELEASES}
EXTRACT_USING_RARINFO=${EXTRACT_USING_RARINFO}
PATH_TO_NZBS=${PATH_TO_NZBS}
PRIVATE_PROFILES=${PRIVATE_PROFILES}
STORE_USER_IP=${STORE_USER_IP}
FFMPEG_PATH=${FFMPEG_PATH}
LAME_PATH=${LAME_PATH}
MEDIAINFO_PATH=${MEDIAINFO_PATH}
TIIMEOUT_PATH=${TIIMEOUT_PATH}
MAGIC_FILE_PATH=${MAGIC_FILE_PATH}
COVERS_PATH=${COVERS_PATH}
FORUM_FRONTEND_ENABLED=${FORUM_FRONTEND_ENABLED}
+2 -3
View File
@@ -1,8 +1,7 @@
FROM composer:latest AS composer-base
#FROM php:8.3-fpm AS php-base
FROM dunglas/frankenphp:1-php8.3
LABEL maintainer="Fossil01"
LABEL maintainer="PyRowMan"
ENV SERVER_NAME=:80
ARG MYSQL_CLIENT="mariadb-client"
ARG SEVENZIP_VERSION=2407
@@ -15,7 +14,7 @@ COPY --from=composer-base --link /usr/bin/composer /usr/bin/composer
RUN apt update \
&& apt install -y --no-install-recommends \
unrar-free 7zip lame libcap2-bin python3 \
unrar-free 7zip lame libcap2-bin python3 gettext-base \
curl zip unzip git nano bash-completion sudo wget tmux time fonts-powerline \
gnupg libpng-dev dnsutils jq htop iputils-ping net-tools ffmpeg \
jpegoptim webp optipng pngquant libavif-bin watch iproute2 nmon \
+1 -1
View File
@@ -10,7 +10,7 @@ if [ "$1" != 'php' ] && [ "$1" != 'sh' ]; then
# Create .env file if it doesn't exist
if [ ! -f .env ]; then
echo "Creating .env file from environment variables..."
printenv >> .env
envsubst < .env.dist > .env
fi
# Check and wait for the database to be ready