Docker
Multi-Platform Deployment
Our dedicated location 
Docker Compose
The Docker Compose example demonstrates how to quickly run FlowInquiry in a containerized environment, ideal for testing or local LAN use.
For more details, explore the flowinquiry-docker folder in the flowinquiry-ops 
The FlowInquiry Docker Compose setup uses Caddy localhost
and local.flowinquiry.io
local.flowinquiry.io, localhost {
# Redirect HTTP to HTTPS
@http {
protocol http
}
redir @http https://{host}{uri}
# Enable HTTPS with internal TLS
tls internal
# Match and reverse proxy for API routes (except /api/auth)
@apiNotAuth {
path /api/*
not path /api/auth/*
}
reverse_proxy @apiNotAuth back-end:8080
# Reverse proxy all other requests to the front-end
reverse_proxy /* front-end:3000
}
You can change the domain name to any name you prefer.
If you use your custom domain in your local machine, remember to add it into
the file /etc/hosts
Navigate to the flowinquiry-docker
folder and run the all.sh
script located in the scripts
directory.
âžś flowinquiry-docker git:(main) âś— scripts/all.sh
Running frontend_config.sh...
Environment variables have been written to .frontend.env
frontend_config.sh succeeded.
Running backend_create_secrets.sh...
Enter your database password:
Sensitive data has been written to ./.backend.env with restricted permissions.
backend_create_secrets.sh succeeded.
Configuration has been saved to .env.local
then run the docker compose docker compose -f services.yml up
âžś flowinquiry-docker git:(main) âś— docker compose -f services.yml up
[+] Running 5/4
âś” Container flowinquiry-postgresql-1 Created 0.0s
âś” Container caddy Runnin... 0.0s
âś” Container flowinquiry-front-end-1 Recreated 0.1s
âś” Container flowinquiry-back-end-1 Recreated 0.1s
! back-end The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 0.0s
Attaching to caddy, back-end-1, front-end-1, postgresql-1
back-end-1 | The application will start in 0s...
front-end-1 | â–˛ Next.js 14.2.16
front-end-1 | - Local: http://localhost:3000
front-end-1 | - Network: http://0.0.0.0:3000
front-end-1 |
front-end-1 | âś“ Starting...
postgresql-1 |
...
back-end-1 | 03:46:11,368 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [CONSOLE] to Logger[ROOT]
back-end-1 | 03:46:11,368 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@31064f47 - End of configuration.
back-end-1 | 03:46:11,368 |-INFO in org.springframework.boot.logging.logback.SpringBootJoranConfigurator@576dc710 - Registering current configuration as safe fallback point
back-end-1 |
back-end-1 | :: FlowInquiry 🤓 :: Running Spring Boot 3.3.5 :: Startup profile(s) prod ::
back-end-1 | :: https://www.flowinquiry.io ::
back-end-1 | 2024-11-10T03:46:32.394Z INFO 1 --- [ restartedMain] io.flowinquiry.FlowInquiryApp.logApplicationStartup:129 : ----------------------------------------------------------
back-end-1 | 2024-11-10T03:46:32.395Z INFO 1 --- [ restartedMain] io.flowinquiry.FlowInquiryApp.logApplicationStartup:130 : Application 'FlowInquiry' is running! Access URLs:
back-end-1 | 2024-11-10T03:46:32.395Z INFO 1 --- [ restartedMain] io.flowinquiry.FlowInquiryApp.logApplicationStartup:131 : Local: http://localhost:8080/
back-end-1 | 2024-11-10T03:46:32.395Z INFO 1 --- [ restartedMain] io.flowinquiry.FlowInquiryApp.logApplicationStartup:132 : External: http://172.19.0.5:8080/
back-end-1 | 2024-11-10T03:46:32.396Z INFO 1 --- [ restartedMain] io.flowinquiry.FlowInquiryApp.logApplicationStartup:133 : Profile(s): prod
Open the browser, and access to the address https://localhost 
-
Administrator:
- Username: admin@flowinquiry.io
- Password: admin
Local HTTPS
Caddy uses its local CA to issue certificates, which means that HTTP clients outside the container won’t automatically trust the TLS certificate served by Caddy. To resolve this, you may need to install Caddy’s root CA certificate in your host machine’s trust store.
The Caddy root CA certificate can be found at flowinquiry-docker/caddy/certificate-authority/root.crt. This file is only generated when you run the FlowInquiry stack
with Caddy included. For detailed steps, refer to the Caddy documentation: Local HTTPS with Docker 
Upgrade FlowInquiry
TBD