# MediaGoblin A basic container for a private MediaGoblin media server (https://mediagoblin.org/), including Nginx and uWSGI. Assumes a separate PostgreSQL database for persistence, and an email host for sending email notifications. Source at https://projects.torsion.org/witten/mediagoblin-docker ## Environment variables * `NOTIFICATION_EMAIL`: From address for MediaGoblin notification emails. * `EMAIL_HOSTNAME`: Hostname used to send outgoing notification emails. * `EMAIL_PORT`: Port number used to send outgoing notification emails. * `EMAIL_USERNAME`: Username used to connect to outgoing email host. * `EMAIL_PASSWORD`: Password used to connect to outgoing email host. * `EMAIL_TLS_SSL`: "true" or "false" for using TLS/SSL encryption for sending emails. * `EMAIL_STARTTLS`: "true" or "false" for using STARTTLS encryption for sending emails. * `DATABASE_URL`: Connection string for database to use for persistence, including credentials. See example below. ## Volumes * `/app/user_dev`: Location to store user media uploads. ## Ports * `80`: Only listens on port 80 for HTTP. Intended to be used in conjunction with an external reverse proxy like https://hub.docker.com/r/jwilder/nginx-proxy/ to provide HTTPS or anything else that's needed. ## Example ```console docker run --detach --name=mediagoblin \ --env NOTIFICATION_EMAIL=media@example.org \ --env EMAIL_HOSTNAME=mail.example.org \ --env EMAIL_PORT=587 \ --env EMAIL_USERNAME=bob@example.org \ --env EMAIL_PASSWORD=pass \ --env EMAIL_TLS_SSL=false \ --env EMAIL_STARTTLS=true \ --env DATABASE_URL=postgresql://mediagoblin:password@database.example.org/mediagoblin \ --volume /var/lib/mediagoblin/user_dev:/app/user_dev \ --publish 80:80 \ witten/mediagoblin:latest ```