Skip to Content
🚀 Want to try FlowInquiry? Navigate to flowinquiry.io and sign up now! .

Docker

Multi-Platform Deployment

Our dedicated location  provides all the resources needed for flexible deployment configurations. With both the frontend and backend packaged as Docker images, FlowInquiry is ready to run on any platform compatible with containerized solutions, such as Kubernetes, Docker Swarm, AWS, Azure, and more

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  repository.

The FlowInquiry Docker Compose setup uses Caddy  as a reverse proxy to serve HTTPS even for both localhost and LAN environments. Caddy is configured with a Caddyfile that supports the domains 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  or https://local.flowinquiry.io  (or your custom domain). Use the default the either following credentials:

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

Last updated on