Files
docker-compose-template/apps/.env
T

182 lines
10 KiB
Bash

# This file is used to store the core configuration for this template. Filling this .env in is the minimum requirement to get the template up and running.
# It will set up Traefik and Authelia
# The timezone to use, find your timezone database name from
# https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
# Use the value from the 'TZ identifier' column
TZ=Etc/UTC
# Directory configuration. This .env file should be in $DOCKER_APP_DIR/.env
# You MUST use absolute paths, otherwise each bind mount would be created relative to each compose file, and not
# the current directory
DOCKER_DATA_DIR=/opt/docker/data
DOCKER_APP_DIR=/opt/docker/apps
# The process user ID and group ID to use for applicable containers.
# Run 'id' to see your UID and GID
# Ensure that any pre-existing folders within the DOCKER_DATA_DIR (i.e. folders that were included within the template repository)
# have the correct permissions.
# You can run
# sudo chown $PUID:$PGID -R $DOCKER_DATA_DIR
# replacing the variables with the actual values e.g sudo chown 1000:1000 -R /opt/docker/data
PUID=1000
PGID=1000
# =========================================================
# PROFILE CONFIGURATION
# =========================================================
# This compose project is split up into profiles to allow you to only run the services you want to use.
# Every single service in this project has its own profile, there are also profiles for a group of services.
# There is a 'required' profile that contains services that are considered required and you should not remove this
# profile. This profile contains authelia and traefik. These two services are the core of the template as traefik
# allows external access while authelia provides authentication.
# From there, you can add other apps by adding the relevant profile to the COMPOSE_PROFILES variable below.
# e.g. If you wanted to add aiostreams and mediaflow proxy, you would add the 'aiostreams' and 'mediaflow' profiles to the COMPOSE_PROFILES variable.
# like so: COMPOSE_PROFILES="required,aiostreams,mediaflow"
# You can also add the 'all' profile which will include every service in the template.
# This can be useful if you prefer to manually edit the root compose.yaml file to remove services from the include list or removing the profiles.
#
# If you set the COMPOSE_PROFILES variable here, all future 'docker compose' commands will abide by this variable.
# You can, however, override this variable by using the --profile flag with docker compose commands.
# This is useful when you want to run commands for a specific service e.g. restarting mediafusion only with docker compose --profile mediafusion restart
# That command will only restart mediafusion and its related services (scheduler, browserless, redis, mongo)
COMPOSE_PROFILES="required"
# Other than modifying the profiles, you may also look at the compose.yaml file in the root of $DOCKER_APP_DIR
# This file 'includes' all the other compose.yaml files. You can remove a specific file from the list to remove that from the final
# compose.yaml. e.g. you could remove the line '- gluetun/compose.yaml' and any services in that file (gluetun and gost) will not be included
# in the compose.
# Ensure that you don't remove files that other included files may rely on.
# ============================================================
# TRAEFIK
# ============================================================
# Traefik is the reverse proxy which provides external access to our apps.
# Email provided to Let's Encrypt for notifications
LETSENCRYPT_EMAIL=
# The domain name to use for all services that are going to be exposed with Traefik.
# This will be the default domain used for all services that are exposed with Traefik.
# You can override this by setting a 'DOMAIN' variable in the .env file for that service.
DOMAIN=example.com
# =========================================================
# AUTHELIA
# =========================================================
# Authelia provides authentication for our apps. It supports access control policies, passkeys, webauthn and 2FA.
# These should all be different random strings of at least 64 characters.
# You can use the following command to generate them:
# echo "$(openssl rand -base64 64 | tr -d '=/' | tr -d '\n')"
AUTHELIA_SESSION_SECRET=""
AUTHELIA_STORAGE_ENCRYPTION_KEY=""
AUTHELIA_JWT_SECRET=""
# You can find additional configuration for Authelia in Authelia's .env file which will also
# tell you how to add users
# Currently there is only one user (user1 with password 'password') and it has access to everything.
# If you would like to configure access control policies, you will need to edit the access_control key
# in the ${DOCKER_DATA_DIR}/data/authelia/config/configuration.yml file.
# ==========================================================
# CLOUDFLARE DDNS
# ==========================================================
# If you would like to use the Cloudflare DDNS service to automatically create the DNS A/AAAA records for your services,
# you must:
# - Be using your own domain (This will NOT work with services like Afraid.org and DuckDNS).
# - Have a Cloudflare account and have your domain added to it
# - Have your domain set to use Cloudflare's nameservers.
# - Add 'cloudflare-ddns' to the 'COMPOSE_PROFILES' variable above. (or use the 'all' profile)
# Then, obtain a cloudflare API token at (https://dash.cloudflare.com/profile/api-tokens) using the 'Edit zone DNS' template and
# provide it here.
CLOUDFLARE_API_TOKEN=
# WARNING: if you do not want to use Cloudflare DDNS, you must make sure to manually add the DNS A records for each subdomain you choose to use.
# The required configuration for this .env is now done, you can add other services to the COMPOSE_PROFILES variable above.
# Some apps will require additional configuration in their own .env files - which will be located in the same directory as their compose.yaml file in the app's folder
# You can optionally also edit the subdomains below
# These values are the subdomains that Traefik will use to route traffic to the services.
# You can modify these values to suit your needs, but ensure that they are unique and do not conflict with other services.
ADDON_MANAGER_HOSTNAME=addon-manager.${DOMAIN?}
AIOSTREAMS_HOSTNAME=aiostreams.${DOMAIN}
AIOSTREMIO_HOSTNAME=aiostremio.${DOMAIN}
AUTHELIA_HOSTNAME=auth.${DOMAIN}
AUTOSYNC_HOSTNAME=autosync.${DOMAIN}
BAZARR_HOSTNAME=bazarr.${DOMAIN}
BAZARR4K_HOSTNAME=4k.bazarr.${DOMAIN}
BESZEL_HOSTNAME=beszel.${DOMAIN}
COMET_HOSTNAME=comet.${DOMAIN}
DASHDOT_HOSTNAME=dash.${DOMAIN}
DOCKGE_HOSTNAME=dockge.${DOMAIN}
DOZZLE_HOSTNAME=dozzle.${DOMAIN}
EASYNEWS_PLUS_HOSTNAME=easynews-plus.${DOMAIN}
HONEY_HOSTNAME=${DOMAIN}
JACKETT_HOSTNAME=jackett.${DOMAIN}
JACKETTIO_HOSTNAME=jackettio.${DOMAIN}
JELLYFIN_HOSTNAME=jellyfin.${DOMAIN}
JELLYSEER_HOSTNAME=jellyseer.${DOMAIN}
LIBRESPEED_HOSTNAME=speedtest.${DOMAIN}
MEDIAFLOW_PROXY_HOSTNAME=mediaflow-proxy.${DOMAIN}
MEDIAFUSION_HOSTNAME=mediafusion.${DOMAIN}
MINECRAFT_HOSTNAME=mc.${DOMAIN}
NZBHYDRA2_HOSTNAME=nzbhydra2.${DOMAIN}
OMG_TV_STREMIO_ADDON_HOSTNAME=omg-tv-addon.${DOMAIN}
OVERSEERR_HOSTNAME=overseerr.${DOMAIN}
PLAUSIBLE_HOSTNAME=plausible.${DOMAIN}
PLEX_HOSTNAME=plex.${DOMAIN}
PORTAINER_HOSTNAME=portainer.${DOMAIN}
PROWLARR_HOSTNAME=prowlarr.${DOMAIN}
RADARR_HOSTNAME=radarr.${DOMAIN}
RADARR4K_HOSTNAME=4k.radarr.${DOMAIN}
RADARRANIME_HOSTNAME=anime.radarr.${DOMAIN}
SEANIME_HOSTNAME=seanime.${DOMAIN}
SEARXNG_HOSTNAME=searxng.${DOMAIN}
SONARR_HOSTNAME=sonarr.${DOMAIN}
SONARR4K_HOSTNAME=4k.sonarr.${DOMAIN}
SONARRANIME_HOSTNAME=anime.sonarr.${DOMAIN}
SPEEDTEST_TRACKER_HOSTNAME=speedtest-tracker.${DOMAIN}
STREAMYSTATS_HOSTNAME=streamystats.${DOMAIN}
STREMIO_CATALOG_PROVIDERS_HOSTNAME=stremio-catalogues.${DOMAIN}
STREMIO_JACKETT_HOSTNAME=stremio-jackett.${DOMAIN}
STREMIO_SERVER_HOSTNAME=stremio-server.${DOMAIN}
STREMIO_TRAKT_ADDON_HOSTNAME=stremio-trakt.${DOMAIN}
STREMTHRU_HOSTNAME=stremthru.${DOMAIN}
TAUTULLI_HOSTNAME=tautulli.${DOMAIN}
TMDB_ADDON_HOSTNAME=tmdb.${DOMAIN}
TORBOX_MANAGER_HOSTNAME=tbm.${DOMAIN}
TRAEFIK_HOSTNAME=traefik.${DOMAIN}
UPTIME_KUMA_HOSTNAME=status.${DOMAIN}
VAULTWARDEN_HOSTNAME=vaultwarden.${DOMAIN}
ZILEAN_HOSTNAME=zilean.${DOMAIN}
ZIPLINE_HOSTNAME=zipline.${DOMAIN}
ZURG_HOSTNAME=zurg.${DOMAIN}
# This is the list of all the domains for which Cloudflare DDNS will create A/AAAA records for.
DOMAINS=${ADDON_MANAGER_HOSTNAME},${AIOSTREAMS_HOSTNAME},${AIOSTREMIO_HOSTNAME},${AUTHELIA_HOSTNAME},${AUTOSYNC_HOSTNAME},${BAZARR_HOSTNAME},${BAZARR4K_HOSTNAME},${BESZEL_HOSTNAME},${COMET_HOSTNAME},${DASHDOT_HOSTNAME},${DOCKGE_HOSTNAME},${DOZZLE_HOSTNAME},${EASYNEWS_PLUS_HOSTNAME},${HONEY_HOSTNAME},${JACKETT_HOSTNAME},${JACKETTIO_HOSTNAME},${JELLYFIN_HOSTNAME},${JELLYSEER_HOSTNAME},${LIBRESPEED_HOSTNAME},${MEDIAFLOW_PROXY_HOSTNAME},${MEDIAFUSION_HOSTNAME},${MINECRAFT_HOSTNAME},${NZBHYDRA2_HOSTNAME},${OMG_TV_STREMIO_ADDON_HOSTNAME},${OVERSEERR_HOSTNAME},${PLAUSIBLE_HOSTNAME},${PLEX_HOSTNAME},${PORTAINER_HOSTNAME},${PROWLARR_HOSTNAME},${RADARR_HOSTNAME},${RADARR4K_HOSTNAME},${RADARRANIME_HOSTNAME},${SEANIME_HOSTNAME},${SEARXNG_HOSTNAME},${SONARR_HOSTNAME},${SONARR4K_HOSTNAME},${SONARRANIME_HOSTNAME},${SPEEDTEST_TRACKER_HOSTNAME},${STREAMYSTATS_HOSTNAME},${STREMIO_CATALOG_PROVIDERS_HOSTNAME},${STREMIO_JACKETT_HOSTNAME},${STREMIO_SERVER_HOSTNAME},${STREMIO_TRAKT_ADDON_HOSTNAME},${STREMTHRU_HOSTNAME},${TAUTULLI_HOSTNAME},${TMDB_ADDON_HOSTNAME},${TORBOX_MANAGER_HOSTNAME},${TRAEFIK_HOSTNAME},${UPTIME_KUMA_HOSTNAME},${VAULTWARDEN_HOSTNAME},${ZILEAN_HOSTNAME},${ZIPLINE_HOSTNAME},${ZURG_HOSTNAME}
# ====================================================
# DOCKER COMPOSE CONFIGURATION
# ====================================================
# This is the name of the compose project.
# Reference: https://docs.docker.com/compose/how-tos/environment-variables/envvars/#compose_project_name
COMPOSE_PROJECT_NAME=aio
# When set to true, any containers that are not defined within this compose file will be removed when the stack is stopped or removed.
# Reference: https://docs.docker.com/compose/how-tos/environment-variables/envvars/#compose_remove_orphans
COMPOSE_REMOVE_ORPHANS=true
# Delegate building to bake for improved performance.
COMPOSE_BAKE=true
# Whether to change the name of the network that all containers run on or to connect to an external network.
# Reference: https://docs.docker.com/compose/how-tos/networking/#use-a-pre-existing-network
DOCKER_NETWORK=aio_network
DOCKER_NETWORK_EXTERNAL=false