mirror of
https://github.com/Viren070/docker-compose-template.git
synced 2025-12-01 23:17:00 +01:00
197 lines
10 KiB
Bash
197 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 /opt/docker, using the defaults below.
|
|
# You MUST use absolute paths, otherwise each bind mount would be created relative to each compose file, and not
|
|
# the current directory
|
|
DOCKER_DIR=/opt/docker
|
|
DOCKER_DATA_DIR=${DOCKER_DIR}/data
|
|
DOCKER_APP_DIR=${DOCKER_DIR}/apps
|
|
|
|
# The process user ID and group ID to use for applicable containers.
|
|
# Run 'id' to see your UID and GID
|
|
# On oracle, both these values should be set to 1001
|
|
# 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 1001:1001 -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 modify the domain used for specific services by editing the app specific hostname variables below.
|
|
# If you have multiple domains, I would recommend providing a second domain here (e.g. 'DOMAIN2=example.io') and then editing the app specific hostname variables to use `DOMAIN2` instead of `DOMAIN`.
|
|
# FOR DUCKDNS USERS: create only 1 record at duckdns e.g. example.duckdns.org and set the DOMAIN variable below to that value. You will access your apps via subdomains of it e.g. aiostreams.example.duckdns.org
|
|
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_APP_DIR}/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.
|
|
# If you use DuckDNS, there isn't a need to create additional records, you only need one record created e.g. example.duckdns.org
|
|
# If you use Afraid.org, it is recommended to manually set the specific domains below to the correct domains e.g. set AIOSTREAMS_HOSTNAME to aio.mooo.com
|
|
|
|
|
|
# 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?}
|
|
AIOLISTS_HOSTNAME=aiolists.${DOMAIN?}
|
|
AIOSTREAMS_HOSTNAME=aiostreams.${DOMAIN}
|
|
AIOSTREMIO_HOSTNAME=aiostremio.${DOMAIN}
|
|
ANIME_KITSU_HOSTNAME=kitsu.${DOMAIN}
|
|
ARCANE_HOSTNAME=arcane.${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}
|
|
DEBRIDAV_HOSTNAME=debridav.${DOMAIN}
|
|
DECYPHARR_HOSTNAME=decypharr.${DOMAIN}
|
|
DOCKGE_HOSTNAME=dockge.${DOMAIN}
|
|
DOZZLE_HOSTNAME=dozzle.${DOMAIN}
|
|
EASYNEWS_PLUS_HOSTNAME=easynews-plus.${DOMAIN}
|
|
EASYNEWS_PLUS_PLUS_HOSTNAME=easynews-plus-plus.${DOMAIN}
|
|
HONEY_HOSTNAME=${DOMAIN}
|
|
HUNTARR_HOSTNAME=huntarr.${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}
|
|
REDLIB_HOSTNAME=redlib.${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_ACCOUNT_BOOTSTRAPPER_HOSTNAME=stremio-account-bootstrapper.${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}
|
|
YAMTRACK_HOSTNAME=yamtrack.${DOMAIN}
|
|
ZILEAN_HOSTNAME=zilean.${DOMAIN}
|
|
ZIPLINE_HOSTNAME=zipline.${DOMAIN}
|
|
ZURG_HOSTNAME=zurg.${DOMAIN}
|
|
|
|
# ====================================================
|
|
# 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
|
|
# Defining the location of the compose file.
|
|
COMPOSE_FILE=${DOCKER_DIR}/compose.yaml
|
|
# 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
|