I'm cant get 443 redirection to work with firefly iii - I've tried everything and searched everywhere.
When I load the page, I get the certificate warning (self signed), accept it and the page redirects to http://firefly.xyz.xyz/login and the error displays '404 page not found'
Configuration with standard port 80 works fine.
I have 443 redirection working with a simple helloworld container
helloworld docker-compose.yml
services:
web:
build: .
ports:
- "8000:5000"
labels:
- "traefik.enable=true"
- "traefik.http.routers.web.rule=Host(`hello.chicken.local`)"
- "traefik.http.routers.web.tls=true"
- "traefik.http.routers.web.entrypoints=websecure"
- "traefik.http.routers.web.tls.certresolver=myresolver"
networks:
- traefik
redis:
image: "redis:alpine"
labels:
- "traefik.enable=false"
networks:
- traefik
networks:
traefik:
external: true
Firefly configuration:
services:
app:
image: fireflyiii/core:latest
hostname: app
container_name: firefly_iii_core
restart: always
volumes:
- firefly_iii_upload:/var/www/html/storage/upload
env_file: .env
networks:
# - firefly_iii
- traefik
ports:
- 8081:8080
depends_on:
- db
labels:
- "traefik.enable=true"
- "traefik.http.routers.app.rule=Host(`firefly.xyz.xyz`)"
- "traefik.http.routers.app.tls=true"
- "traefik.http.routers.app.entrypoints=websecure"
- "traefik.http.routers.app.tls.certresolver=myresolver"
db:
image: mariadb:lts
hostname: db
container_name: firefly_iii_db
restart: always
env_file: .db.env
networks:
# - firefly_iii
- traefik
volumes:
- firefly_iii_db:/var/lib/mysql
cron:
#
# To make this work, set STATIC_CRON_TOKEN in your .env file or as an environment variable and replace REPLACEME below
# The STATIC_CRON_TOKEN must be *exactly* 32 characters long
#
image: alpine
restart: always
container_name: firefly_iii_cron
command: sh -c "echo \"0 3 * * * wget -qO- http://app:8080/api/v1/cron/xxx\" | crontab - && crond -f -L /dev/stdout"
networks:
# - firefly_iii
- traefik
volumes:
firefly_iii_upload:
firefly_iii_db:
networks:
# firefly_iii:
# driver: bridge
traefik:
external: true
Traefik docker-compose.yml
services:
reverse-proxy:
image: traefik:v3.1
# Enables the web UI and tells Traefik to listen to docker
# command: --api.insecure=true --providers.docker
command: --configFile=/etc/traefik/traefik.yml
ports:
# The HTTP port
- "80:80"
# The Web UI (enabled by --api.insecure=true)
- "8080:8080"
# SSL port
- "443:443"
volumes:
# So that Traefik can listen to the Docker events
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik.yml:/etc/traefik/traefik.yml
- ./acme.json:/acme.json
networks:
- traefik
networks:
traefik:
external: true
Traefik.yml
entryPoints:
web:
address: ":80"
websecure:
address: ":443"
certificatesResolvers:
myresolver:
acme:
email: admin@xxx.xyz
storage: acme.json
httpChallenge:
entryPoint: web
providers:
docker:
exposedByDefault: true
api:
dashboard: true
insecure: true
acme.json
{
"myresolver": {
"Account": {
"Email": "admin@xxx.xyz",
"Registration": {
"body": {
"status": "valid",
"contact": [
"mailto:admin@xxx.xyz"
]
},
"uri": "https://acme-v02.api.letsencrypt.org/acme/acct/1731566827"
},
"PrivateKey": "xxx",
"KeyType": "4096"
},
"Certificates": null
}
}