/ampache-administrator

Admin tools for release and build processes

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Ampache Administrator Tools

This repo containse the scripts used to build Ampache resources including:

  • Release zip files
  • Official Docker images
  • API example documentation
  • The ampache.org site
  • Generate the static html for ampache.org/api

I'm trying to formalize my Ampache tools into one repo to allow others to use them. Obviously not everyone has write access to do some of these things but by documenting this process it should be easier for anyone else to pick this up by doing it all in the open

Files for Ampache Administrators

build_release.sh & build_release6.sh

Build ampache release files from the current patch5 or patch6 branches

Release files are built from the php dirs and will create a zip file in the releases folder

e.g. releases/ampache-${a_version}_all_php7.4.zip

Script workarounds for release builds

  • Make sure the jquery-context menu map files are created
    • ./public/lib/components/jquery-contextmenu/dist/jquery.contextMenu.min.js.map
    • ./public/lib/components/jquery-contextmenu/dist/jquery.contextMenu.min.css.map
  • Copy patched gettext StringReader.php to stop all the warning messages for translations
    • ./vendor/gettext/gettext/src/Utils/StringReader.php
  • Copy missing prettyphoto images to ./public/lib/components/prettyphoto/images

build_ampache-squashed.sh & build_ampache-squashed6.sh

This script will update the squashed repo so you don't have to manually edit the files for updating that branch

  • Copy the files from ./ampache-master to ./ampache-squashed
  • Run ./squash-ampache.py to regex the strings to match the squashed structure

squashed 6 copies from ./ampache-patch6 to ./ampache-squashed6

build_docker.sh & build_docker6.sh

Build all the docker images and upload to docker hub

  • master
  • nosql
  • develop

Build single branches with branch name as an argument

sh ./build_docker6.sh master

build_www.sh

Build the api website using npm. Then copy the markdown files into the Ampache folders and the Ampache website

  • Compile the api content repo
    • ./www/ampache.org-api/content/
  • Copy api public folders to the website repo
    • ./www/ampache.github.io/api/
  • Copy doc files to the Ampache repos
    • ./ampache-develop/docs/
    • ./ampache-master/docs/

build_python.sh

This script will load up ampache-test in the /ampache-test folder and then generate the xml and json example documents against that server.

  • Build the api docs for api3
  • Build the api docs for api4
  • Build the api docs for api5

docker-release-test.sh & docker-release-test6.sh

Test Zip file releases but installing to a local docker stack. (make sure you build them using build_release first!)

Release zips must be in the ./releases/ folder. by default it will check for the latest version in ./patch6

The zips are extracted to ./release-test/ and set as a volume for the local html folder for each container

Once the containers are build the database and admin user are installed.

Finally; python/release_test.py is run to create a test user which allows running demo build scripts.

Set a custom version number in the cli adding the version string at the end

e.g. sh docker-release-test6.sh 6.1.0

Sites are then using the php* folders and creates the following container images:

  • release-test-ampache_ampache74
  • release-test-ampache_ampache74_squashed
  • release-test-ampache_ampache80
  • release-test-ampache_ampache80_squashed
  • release-test-ampache_ampache81
  • release-test-ampache_ampache81_squashed

Files for Ampache Users

setup-workspace.sh

Just want to pull down ampache code repos and start patching?

If you don't have composer installed to /usr/local/bin/composer then it will be saved to ./docker/composer

Clone Ampache develop to ./ampache-develop and then clone Ampache master to ./ampache-master

setup-python.sh

This file sets up all the api folders for building python documentation

setup-docker.sh & setup-docker6.sh

Docker-compose setup allowing you locally run Ampache on php 7.4, 8.0, 8.1, 8.2 and 8.3

Used for testing releases on each release type but an easy way for anyone to just get up and running

You can launch a container for php7.4, 8.0, 8.1, 8.2 and 8.3 by issuing the following command

docker-compose -p "ampache" \
 -f docker/docker-compose74.yml -f docker/docker-compose74_squashed.yml \
 -f docker/docker-compose80.yml -f docker/docker-compose80_squashed.yml \
 -f docker/docker-compose81.yml -f docker/docker-compose81_squashed.yml \
 -f docker/docker-compose82.yml -f docker/docker-compose82_squashed.yml \
 -f docker/docker-compose83.yml -f docker/docker-compose83_squashed.yml \
 up -d --build

If you don't have composer installed to /usr/local/bin/composer then it will be saved to ./docker/composer

Sites are then using the php* folders and creates the following container images:

Reference Repos

Official repos

Personal repos

TODO

Confirm correct data for Subsonic calls

  • createShare
  • getShares
  • getTopSongs
  • hls (is that needed as it's returning a playlist)