Container for a private MediaGoblin image/video sharing server.
Go to file
Dan Helfman 99b5669620
All checks were successful
continuous-integration/drone/push Build is passing
Drop use of Docker plugin.
2023-08-20 14:59:53 -07:00
scripts Remove various package pins. Also, switch to Podman for local build. 2023-08-20 14:38:42 -07:00
.drone.yml Drop use of Docker plugin. 2023-08-20 14:59:53 -07:00
dev-compose.yml Use explicit image names so that Podman will work. 2023-04-10 22:13:20 -07:00
Dockerfile Remove various package pins. Also, switch to Podman for local build. 2023-08-20 14:38:42 -07:00
mediagoblin_local.ini.template Try to fix video resolutions again. 2023-04-10 23:43:02 -07:00
nginx.conf Initial import. 2017-09-30 23:28:49 -07:00
README.md Add local dev script. 2023-04-10 22:36:50 -07:00
run.sh Waiting for database to come up. 2017-10-21 22:58:16 -07:00
uwsgi.yaml Initial import. 2017-09-30 23:28:49 -07:00
wait-for Upgrade vendored wait-for. 2023-02-23 16:01:42 -08:00

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.

Hosted 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

Example

$ sudo 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 \
    projects.torsion.org/witten/mediagoblin-docker

User management

Since this image is for running a private MediaGoblin server, user self-registration is disabled. So, to add a user, first exec into the running Docker image:

$ sudo docker exec -it mediagoblin bash

Where mediagoblin is the name of your running Docker container. If you dont know the name to use, try looking in docker ps output.

Then, add a user (follow the prompts):

# su - mediagoblin
$ gmg --conf_file /app/mediagoblin_local.ini adduser

Finally, if you want to make the new user into an admin user:

$ gmg --conf_file /app/mediagoblin_local.ini makeadmin username

Where username corresponds to the user you added above.

Local development

To build the image locally, run:

scripts/build

And then to run the image:

scripts/dev

Connect to http://localhost:8080 to view the running instance in your browser.