Sign inSign up

brianlmoon/phlag

By brianlmoon

Updated 18 days ago

Feature flag management system with RESTful API and web admin interface

Image
0

5.9K

brianlmoon/phlag repository overview

Phlag Docker Deployment

Architecture

  • Base Image: Phusion Baseimage (Ubuntu 22.04 LTS)
  • Services: Nginx + PHP 8.4-FPM (managed by runit)
  • Process Manager: Runit (built into Phusion baseimage)
  • Document Root: /app/public

Quick Start

Using Docker CLI (Production)

# Run with environment variables
docker run -d \
  --name phlag \
  -p 8000:80 \
  -e DB_PHLAG_TYPE=mysql \
  -e DB_PHLAG_HOST=db.example.com \
  -e DB_PHLAG_PORT=3306 \
  -e DB_PHLAG_DB=phlag \
  -e DB_PHLAG_USER=phlag_user \
  -e DB_PHLAG_PASS=secret \
  -e [email protected] \
  brianlmoon/phlag:latest

# Run with volume-mounted config
docker run -d \
  --name phlag \
  -p 8000:80 \
  -v /path/to/config.ini:/app/etc/config.ini:ro \
  brianlmoon/phlag:latest

Environment Variables

Database Configuration (DB_PHLAG_ Prefix)
VariableRequiredDefaultDescription
DB_PHLAG_TYPEYes-Database type (mysql, pgsql, or sqlite)
DB_PHLAG_HOSTYes*-Database server hostname (*not required for SQLite)
DB_PHLAG_PORTNo3306/5432Database server port (auto-detected based on type)
DB_PHLAG_DBYes-Database name (or path for SQLite)
DB_PHLAG_USERNo-Database username
DB_PHLAG_PASSNo-Database password
Email Configuration
VariableRequiredDefaultDescription
MAILER_FROM_ADDRESSNo-Email sender address (required for password reset)
MAILER_FROM_NAMENoPhlag AdminEmail sender name
MAILER_METHODNomailEmail method (smtp or mail)
SMTP_HOSTNo*-SMTP server hostname (*required if MAILER_METHOD=smtp)
SMTP_PORTNo587SMTP server port
SMTP_ENCRYPTIONNotlsSMTP encryption (tls or ssl)
SMTP_USERNAMENo-SMTP authentication username
SMTP_PASSWORDNo-SMTP authentication password
Application Configuration
VariableRequiredDefaultDescription
SESSION_TIMEOUTNo1800Session timeout in seconds (30 minutes)
PHLAG_BASE_URL_PATHNo-Base URL path for subdirectory installs (e.g., /phlag)

Volume Mounts

Mount a custom config.ini file to /app/etc/config.ini:

docker run -d \
  -v /path/to/config.ini:/app/etc/config.ini:ro \
  brianlmoon/phlag:latest

Note: Volume-mounted config takes precedence over environment variables.

Logs (Optional)
docker run -d \
  -v phlag-nginx-logs:/var/log/nginx \
  -v phlag-php-logs:/var/log/php \
  brianlmoon/phlag:latest

License

BSD 3-Clause License - Copyright (c) 2025, Brian Moon

Tag summary

Content type

Image

Digest

sha256:c3975bd43

Size

160.2 MB

Last updated

18 days ago

docker pull brianlmoon/phlag