Code Monkey home page Code Monkey logo

ampache-apache-docker's Introduction

ampache-apache

Docker container for Ampache, a web based audio/video streaming application and file manager allowing you to access your music & videos from anywhere, using almost any internet enabled device.

This image ships ampache on top of mod_php on Apache. It is listening on port 80. It does not come with a database. It is suggested that you install a separate container (for instance the official mariadb image) and then either --link the container or put it on the same docker network as the ampache container. Then you can connect to it from your ampache container.

Quick usage

docker run

docker run --link mariadb:mariadb --name=ampache -d -v /path/to/your/music:/media:ro -p 80:80 zerodogg/ampache-apache

Then visit the container in a web browser to complete the setup. When prompted for database, provide the credentials for the database you --linked or that is on the same network (using the link name, or the name of the database container as the hostname).

docker-compose

Clone the git repository from https://gitlab.com/zerodogg/ampache-docker or download the docker-compose.yml file. Then run docker-compose up from the directory that you downloaded the docker-compose.yml file to.

You should probably change the MYSQL_ROOT_PASSWORD environment variable in the docker-compose file to a non-default value.

Then visit the container in a web browser to complete the setup.

Image details

The image is based upon the upstream php image (7.1 on Debian stretch at the moment). It exposes ampache (via apache and mod_php) on port 80. If you want to run it on https (or run several webapps on the same host), you can achieve this by having a reverse proxy in front of it. The nginx-proxy container paired with letsencrypt-nginx-proxy-companion works great along with this container and is simple to set up.

Volumes

All of these are marked as a volume by default.

/media is the suggested location to mount your music collection to. This can be read-only.

/var/www/html/config is where the config files reside.

/var/www/html/themes is where custom themes reside. You only need to worry about this one if you actually want to use custom themes.

Auto-updating the library

The container will auto-update the ampache library. It uses inotify to monitor for changes. If your library is larger than the number of permitted inotify watches (by default 8192), however, it will fall back to just auto-updating the library every 24 hours instead. It will output a message visible in the docker logs when the container starts if the number of inotify watches is too low.

If it is too low for your library and you want to use auto-updating, you can increase the allowed number of inotify watches by writing to /proc/sys/fs/inotify/max_user_watches or setting the sysctl fs.inotify.max_user_watches (since /proc is read-only in the container, it can't do that on its own).

Thanks to

  • @arielelkin for the initial work on this container
  • @ericfrederich for his original work
  • @velocity303 and @goldy for the other ampache-docker inspiration

ampache-apache-docker's People

Contributors

afterster avatar arielelkin avatar ericfrederich avatar juanluisbaptiste avatar lachesis avatar zerodogg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

15cm

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.