# Copy to .env and adjust. .env is git-ignored; this file is not. # # ─── READ THIS FIRST ──────────────────────────────────────────────── # This stack is different from the others in this repo. Elsewhere, .env # holds a handful of variables that Compose interpolates into # compose.yaml. Here, `env_file: .env` hands the whole file to the # application, so .env *is* Firefly III's configuration file. # # Because of that, upstream's instruction is to start from their full # file rather than write one by hand: # # wget https://raw.githubusercontent.com/firefly-iii/firefly-iii/main/.env.example -O .env # # Then change the values below. This file is the list of what to change # and why -- not a drop-in replacement for theirs. # ─── Required: the two 32-character secrets ───────────────────────── # Both must be EXACTLY 32 characters. Not "at least" -- exactly. Firefly # rejects anything else, and the cron token silently 404s. # # openssl rand -base64 24 | cut -c1-32 # APP_KEY= # The cron container authenticates with this and nothing else -- it is a # bearer token in a URL path. Treat it as a password. STATIC_CRON_TOKEN= # ─── Required: who you are ────────────────────────────────────────── # Used as the "from" address and shown in the admin pages. SITE_OWNER=you@example.com # The external URL people actually type. Firefly builds links from it, # so a wrong value breaks password resets the same way it does anywhere. APP_URL=http://localhost:8564 # Change this value to your preferred time zone. It also decides when the # cron job runs -- see the README. TZ=Europe/Paris # ─── Database ─────────────────────────────────────────────────────── # DB_HOST is the compose SERVICE name, not the container name. # DB_PASSWORD must match MYSQL_PASSWORD in .db.env, or the app boots and # then fails every request with a connection error. DB_CONNECTION=mysql DB_HOST=db DB_PORT=3306 DB_DATABASE=firefly DB_USERNAME=firefly DB_PASSWORD= # ─── Behind a reverse proxy ───────────────────────────────────────── # Upstream's own comment: "Set it to ** and reverse proxies work just # fine." Without it Firefly sees the proxy's IP as the client and builds # http:// links behind your TLS. TRUSTED_PROXIES=** # ─── Optional ─────────────────────────────────────────────────────── #DEFAULT_LANGUAGE=en_US # Defaults to `log`, which writes mail to the log instead of sending it. # Fine for a single-user install -- you never need a password reset email # if you are also the admin. #MAIL_MAILER=log