Page MenuHomePhorge

Simple Production Docker Stack
Open, Needs TriagePublic

Description

I created a Docker Stack to work with Phorge, it's pretty lightweight and easy to setup/configure and has examples for Compose, Swarm, and SSL termination using NGINX or traefik. Not suitable for use as a devcontainer T15011: Build a Phorge Developer Environment but works well for simple deployments.

Event Timeline

For reference: I've been relying on this docker container for docker-compose as well as kubernetes based deployments and it has been a delight to work with.

I think we should strive for something that is as simple as that to deploy, at least for simpler single node deployments.

Yep! I have it setup where almost everything is configured using environment variables/docker secrets. Currently the only configuration file that needs to be passed into the Phorge container is for Configuring Outbound Email since that can vary quite a bit. NGINX has a config file but the only modifications it needs are sections to be commented/uncommented if it's used for SSL termination, otherwise everything is set using environment variables. Of course NGINX could be swapped out for your web server of choice. I might look into providing a example that uses Caddy for the web server as it has native support for ACME and should be pretty easy to do.

Caddy looks interesting - if you get it going, can you make a small instructions writeup?

The Caddyfile boils down to

{$DOMAIN:localhost} {
	root * /path/to/phorge/webroot
	rewrite * /index.php?__path__={path}&{query}
	php_fastcgi phorge:9000 {
		env HTTPS {$HTTPS:on}
	}
}

Set the two variables to change whether Caddy uses HTTP, HTTPS with a self signed certificate, or HTTPS with a certificate from Let's Encrypt or ZeroSSL.
I switched out NGINX for Caddy in my repo because boy is that much easier to configure for a number of use cases.

Thanks -- I'm curious as to what makes this not particularly suitable for development, though?